lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4D5023A4.3020209@metafoo.de>
Date:	Mon, 07 Feb 2011 17:53:56 +0100
From:	Lars-Peter Clausen <lars@...afoo.de>
To:	Mark Brown <broonie@...nsource.wolfsonmicro.com>
CC:	Liam Girdwood <lrg@...mlogic.co.uk>, alsa-devel@...a-project.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 6/7] ASoC: Samsung: neo1973_gta02: Fix bluetooth DAI registration

On 02/07/2011 12:59 PM, Mark Brown wrote:
> On Mon, Feb 07, 2011 at 12:04:22AM +0100, Lars-Peter Clausen wrote:
>> This patch fixes two issues with the bluethooth DAI registration:
>> * The DAI has to be registered only after the sound device has been added.
> 
> This isn't a problem, components in the system can be registered in any
> order.

By device I mean the soc-core platform device, which has to exist before a dai can be
registered with that device.

> 
>> * Currently the DAI is registered with snd_soc_register_dai which causes it to
>>   be named after the device it was registered for. Which is in this case the
>>   "soc-audio" device. (Ab)use snd_soc_register_dais which causes the DAI to be
>>   named after the DAI driver, which is what we want in this case.
> 
> This doesn't tie up with your change which...
> 
>> -	/* register bluetooth DAI here */
>> -	ret = snd_soc_register_dai(&neo1973_gta02_snd_device->dev, &bt_dai);
>> -	if (ret)
>> -		goto err_put_device;
> 
>> +	/* register bluetooth DAI here */
>> +	ret = snd_soc_register_dais(&neo1973_gta02_snd_device->dev, &bt_dai, 1);
>>  	if (ret)
>> -		goto err_unregister_dai;
>> +		goto err_unregister_device;
> 
> ...uses the same device in both cases and looking briefly at the code
> both register functions just use the dev that was passed in.

The difference between the two is that snd_soc_register_dais calls fmt_multiple_name,
but snd_soc_register_dai uses fmt_single_name. The later uses the name of device for
which the dai is registered to generate the dai_device name, while the former uses
the name of the dai_driver.
So by calling snd_soc_register_dai the bluetooth dai_device will be name "soc-core"
instead of "bluetooth-dai". So currently there is no match between the dai_link and
the dai_device, as a result the sound card is not instantiated.

> In any
> case, we clearly shouldn't be applying patches which bodge around the
> core.

Well the alternative would be a patch looking like this:

-	.cpu_dai_name = "bluetooth-dai",
+	.cpu_dai_name = "soc-core",

Which isn't really nice either.

- Lars
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ