Re: [RFC PATCH] ASoC: au1x: platform driver restructuring

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jun 13, 2009 at 05:00:00PM +0200, Manuel Lauss wrote:

> -static int au1xpsc_ac97_suspend(struct snd_soc_dai *dai)
> +static int au1xpsc_ac97_suspend(struct platform_device *pdev, pm_message_t m)
>  {
>  	/* save interesting registers and disable PSC */
>  	au1xpsc_ac97_workdata->pm[0] =
> @@ -328,7 +366,7 @@ static int au1xpsc_ac97_suspend(struct snd_soc_dai *dai)
>  	return 0;
>  }

I'm don't think this is a good idea - it will remove any sequencing
between the suspend of the various ASoC device components, meaning that
the AC97 controller could suspend before the rest of ASoC.  This would
break if ASoC then comes along and tries to suspend the CODEC over an
AC97 link which has been disabled.  With I2S it's probably less serious
but there's a risk of audio issues if the hardware does something dodgy
when suspending or if the SoC is the clock master and the CODEC gets
upset about having clocks stopping when it's using them.

In order to do this properly I have a plan to add a calls into the ASoC
core that the individual drivers can call when they get suspend and
resume calls.  The core will suspend the entire ASoC device when it gets
the first suspend call and will wait for all the suspended devices to
resume before it resumes the ASoC device.  I've not actually added those
calls yet, though.  I can add stubs quickly enough, though - I should
probably do that just now so that we don't need a separate driver
conversion step.

One other thing I'd say is that before registering the DAIs you should
assign the dev field in the DAI structure to be the struct device that
was used to probe the DAI.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux