[alsa-devel] [PATCH v2] ASoC: max98090: save and restore SHDN when changing sensitive registers

Marek Szyprowski m.szyprowski at samsung.com
Wed Dec 18 15:48:14 CET 2019


Hi Mark,

On 18.12.2019 14:26, Mark Brown wrote:
> On Fri, Dec 13, 2019 at 02:05:32AM +0800, Tzung-Bi Shih wrote:
>> I have no enough resources to test and trace the code temporarily.
>> But is it possible:
>> - snd_card_new( ) succeed in snd_soc_bind_card( ), so that userspace
>> can see the control
> This feels like snd_card_new() is being overly enthusiastic here, I'd
> expect that we might have other problems elsewhere with that.  I'd not
> expect userspace to see things until snd_card_register() since between
> _new() and that we're in the process of building the card up.  Given
> this we *will* need to handle partially constructed cards after all,
> unless we change the ALSA core.  Takashi?

I'm not sure if this is an issue about partially registered card. Here 
is the boot log:

https://paste.debian.net/1121543/

This oops happens when udev tries to do its job. The card is earlier 
fully registered and advertised by alsa:

[    3.501198] ALSA device list:
[    3.501300]   #0: Odroid-U3

If there are any useful logs for tracking this issue, let me know how to 
enable them, so I will provide more logs.

>
>> - code in later snd_soc_bind_card( ) decided to defer the probe
>> - soc_cleanup_card_resources( ) may forget to clean the control?  (not
>> sure about this)
> There's going to be a race condition where userspace can see the control
> on the partially built card regardless of if it gets cleaned up or not.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



More information about the Alsa-devel mailing list