[alsa-devel] cs46xx thinkpad resume fix - #bug1946
Pavel Kysilka
pavelk at bsys.cz
Wed Jul 18 00:26:42 CEST 2007
On Tue Jul 17, 2007 at 12:50:21PM +0200, Takashi Iwai wrote:
Hi Takashi,
good news below.
> At Mon, 16 Jul 2007 11:24:45 +0200,
> I wrote:
> >
> >
<cut/>
> > Oh, thanks for hunting this long-standing bug!
> >
> > I think, however, it cannot be applied as it is.
> > First, snd_cs46xx_start_dsp() calls cs46xx_dsp_load_module(), and the
> > latter function isn't designed for the PM resume. We'd need a special
> > resume function just for clearing area & reloading the dsp images
> > according to the already loaded DSP modules.
> >
> > Second, __devinit prefix for snd_cs46xx_start_dsp() has to be removed
> > if it's called from the PM handler.
>
> Looking at the code more deeply, I suspect whether it really works
> when CONFIG_SND_CS46XX_NEW_DSP=y. snd_cs46xx_start_dsp() involves
> with many calls that add SCBs and co, which will eventually overflow.
>
> I made a patch blindly to do the resume work in a saner way, but of
> course, it's totally untested. Could you check whether it works?
Patch works perfectly.
Tested option:
- kernel compiled with and without CONFIG_SND_CS46XX_NEW_DSP=y
- play pcm stream, suspend, resume and pcm stream is playing
- play pcm stream, stop playing pcm stream, suspend, resume and play pcm stream
If you need log from resume from notebook, I'll send you this log.
>
>
> thanks,
>
> Takashi
>
Many thanks
Pavel
________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail Servers.
http://www.eset.com
More information about the Alsa-devel
mailing list