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

Marek Szyprowski m.szyprowski at samsung.com
Thu Dec 19 13:54:37 CET 2019


Hi Mark,

On 19.12.2019 13:37, Mark Brown wrote:
> On Thu, Dec 19, 2019 at 09:03:42AM +0100, Marek Szyprowski wrote:
>> On 18.12.2019 17:24, Mark Brown wrote:
>>
>> I've checked again the exact probe order and here is what happens in the
>> system:
>>
>> 1. first call to odroid_audio_probe() is just after:
>>
>> [    2.942428] samsung-i2s 3830000.i2s-sec: DMA channels sourced from device 3830000.i2s
>>
>> 2. That time, i2s dai and max98090 devices are already registered.
>> However the snd_soc_of_get_dai_link_codecs() return -EPROBE_DEFER,
>> because it cannot get the HDMI codec component.
>>
>> 3. HDMI codec is being registered when Exynos DRM initializes. This
>> happens later:
>>
>> [    3.127833] [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on
>> minor 0
>>
>> 4. Then odroid_audio_probe() is called again from the deferred probe
>> worker and succeeds:
>>
>> [    3.501198] ALSA device list:
>> [    3.501300]   #0: Odroid-U3
>> 5. Then userspace starts:
>> [    3.603825] Run /sbin/init as init process
>>
>> 6. when userspace init scripts (alsactl) enumerates devices in the
>> system the lockdep warning is triggered:
>>
>> [   10.068990] ======================================================
>> [   10.070970] WARNING: possible circular locking dependency detected
>> [   10.077136] 5.5.0-rc2-next-20191218 #7188 Not tainted
>> [   10.082168] ------------------------------------------------------
>> [   10.088332] alsactl/1106 is trying to acquire lock:
>>
>> 7. then alsa utils probably tries to load the saved values for the controls, what triggers the NULL ptr dereference:
>>
>> [....] Setting up ALSA...[   10.502672] 8<--- cut here ---
>> [   10.502772] Unable to handle kernel NULL pointer dereference at virtual address 000000b0
> OK, so this is probably related to some of Morimoto-san's bisections.
> Is there any chance you coudld do a bisect to try to isolate where
> things go wrong?

I can do the bisect, but please let me know exactly what to bisect.

The initial bisection I did was from v5.5-rc1 to linux-next and pointed 
to the $subject commit.

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



More information about the Alsa-devel mailing list