Comment 44 for bug 1609750

Revision history for this message
In , vinod.koul (vinod.koul-linux-kernel-bugs) wrote :

(In reply to Pierre Bossart from comment #17)
> 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?

Use late_probe?

This seems to be called after all DAIs are init, That will guarantee
that aux codecs are init too :)