Comment 41 for bug 1609750

Revision history for this message
In , pierre-louis.bossart (pierre-louis.bossart-linux-kernel-bugs) wrote :

The kernel oops is caused by a race condition, see logs below:

[ 7.109294] CHT_MAX98090_HEADSET_INIT
[ 7.109312] jack is NULL, detection not enabled
[ 7.109434] cht-bsw-max98090 cht-bsw-max98090: snd-soc-dummy-dai <-> media-cpu-dai mapping ok
[ 7.109499] cht-bsw-max98090 cht-bsw-max98090: snd-soc-dummy-dai <-> deepbuffer-cpu-dai mapping ok
[ 7.109542] compress asoc: snd-soc-dummy-dai <-> compress-cpu-dai mapping ok
[ 7.109549] CHT_CODEC_INIT
[ 7.112443] cht-bsw-max98090 cht-bsw-max98090: HiFi <-> ssp2-port mapping ok

Basically the ..init = cht_max98090_headset_init is called before .init = cht_codec_init, but the latter initializes the jack.

I think the soc-core framework should have a notion that an aux_dev should be initialized after the codec DAIs? The ChromeOs code is pre-component so it's really hard to figure out what needs to be done here.

Vinod, any thoughts?