Re: Applied "ASoC: simple-card: Fix configuration of DAI format" to the asoc tree
From: Jon Hunter
Date: Thu May 23 2019 - 04:57:21 EST
Hi Mark,
On 21/05/2019 21:32, Mark Brown wrote:
> The patch
>
> ASoC: simple-card: Fix configuration of DAI format
>
> has been applied to the asoc tree at
>
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-5.2
>
> All being well this means that it will be integrated into the linux-next
> tree (usually sometime in the next 24 hours) and sent to Linus during
> the next merge window (or sooner if it is a bug fix), however if
> problems are discovered then the patch may be dropped or reverted.
>
> You may get further e-mails resulting from automated or manual testing
> and review of the tree, please engage with people reporting problems and
> send followup patches addressing any issues that are reported if needed.
>
> If any updates are required or you are submitting further changes they
> should be sent as incremental updates against current git, existing
> patches will not be replaced.
>
> Please add any relevant lists and maintainers to the CCs when replying
> to this mail.
>
> Thanks,
> Mark
>
> From 069d037aea98ffa64c26d4b1dc958fb8f39f5c2b Mon Sep 17 00:00:00 2001
> From: Jon Hunter <jonathanh@xxxxxxxxxx>
> Date: Thu, 16 May 2019 18:51:26 +0100
> Subject: [PATCH] ASoC: simple-card: Fix configuration of DAI format
>
> When configuring a codec to be both bit-clock and frame-master, it was
> found that the codec was always configured as bit-clock and frame-slave.
> Looking at the simple_dai_link_of() function there appears to be two
> problems with the configuration of the DAI format, which are ...
>
> 1. The function asoc_simple_parse_daifmt() is called before the function
> asoc_simple_parse_codec() and this means that the device-tree node
> for the codec has not been parsed yet, which is needed by the
> function asoc_simple_parse_daifmt() to determine who is the codec.
> 2. The phandle passed to asoc_simple_parse_daifmt() is the phandle to
> the 'codec' node and not the phandle of the actual codec defined by
> the 'sound-dai' property under the 'codec' node.
>
> Fix the above by moving the call to asoc_simple_parse_daifmt() after the
> the call to asoc_simple_parse_codec() and pass the phandle for the codec
> to asoc_simple_parse_daifmt().
Please can you drop this patch?
Per some offline review with Morimoto-san, it turns out that the actual
issue resided in my DT (which was incorrect) and not the simple-card
machine driver.
In my DT I incorrectly had ...
sound {
compatible = "simple-audio-card";
...
=> simple-audio-card,bitclock-master = <&codec>;
=> simple-audio-card,frame-master = <&codec>;
...
simple-audio-card,cpu {
sound-dai = <&xxx>;
};
simple-audio-card,codec {
=> sound-dai = <&codec>;
};
};
But I should have had ...
sound {
compatible = "simple-audio-card";
...
=> simple-audio-card,bitclock-master = <&codec>;
=> simple-audio-card,frame-master = <&codec>;
...
simple-audio-card,cpu {
sound-dai = <&xxx>;
};
=> codec: simple-audio-card,codec { /* simple-card wants here */
sound-dai = <&xxx>; /* not here */
};
};
Thanks to Morimoto-san for correcting me!
Cheers
Jon
--
nvpublic