[alsa-devel] [PATCH] ASoC: OMAP machines: Fix kernel crash due to changes in core

Mark Brown broonie at opensource.wolfsonmicro.com
Fri Oct 7 13:47:49 CEST 2011

On Fri, Oct 07, 2011 at 02:12:43PM +0300, Péter Ujfalusi wrote:
> On Friday 07 October 2011 11:48:01 Mark Brown wrote:

> > > This might be true for machines, which adds jack functionality. We are
> > > now calling snd_soc_dapm_new_widgets before adding jack pins.
> > > Also machines passing their DAPM widgets/routes via snd_soc_card are
> > > safe from this issue.

> > No, it should never be needed by anything.

> Could be, but day before yesterday the sdp4430 was fine.
> I've pulled yesterday morning, and welcomed me with a kernel crash at boot 
> time.

You're missing the point here.  A crash has been introduced but doing
the syncs during startup should have been and should continue to be a
waste of time with no useful impact on the behaviour of the system.

> > > in soc-core.c: soc_post_component_init() the dai->init called, but
> > > there's no additional snd_soc_dapm_new_widgets call to make sure that
> > > the new widgets added by the machine driver are instantiated.

> > We could either go round every single machine driver in the kernel
> > modifying them or we could make sure it's handled in the core - I know
> > which of those seems better to me!

> For sure fixing this in core is the best place.
> Try to boot smartq_wm8987, s3c24xx_simtec_tlv320aic23, s3c24xx_simtec_hermes,
> jive_wm8750, h1940_uda1380, etc.
> Lots of the machine drivers are calling soc_dapm_sync after adding widgets.
> They will crash.
> If we want to fix this in core we need to remove the soc_dapm_sync from _init
> calls, and add the snd_soc_dapm_new_widgets post dai_link->init call in
> soc_post_component_init of soc-core.c.

Removing the calls is a totally sensible thing to do, like I say they
should at best be a waste of time.  The problem with your patch was that
weren't just removing them, you were replacing them with calls to
new_widgets() which should be equally pointless.  If we have to do that
we're clearly failing at something.

More information about the Alsa-devel mailing list