[alsa-devel] Applied "ASoC: simple-card: Fix configuration of DAI format" to the asoc tree

Jon Hunter jonathanh at nvidia.com
Thu May 23 10:54:25 CEST 2019


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 at nvidia.com>
> 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


More information about the Alsa-devel mailing list