[alsa-devel] Aureal issues on resume

Raymond Yau superquad.vortex2 at gmail.com
Fri Sep 16 04:16:11 CEST 2011


2011/9/12 Takashi Iwai <tiwai at suse.de>:
> At Mon, 12 Sep 2011 09:53:28 +0200,
> Takashi Iwai wrote:
>>
>> At Sun, 04 Sep 2011 22:32:44 +0200,
>> Clemens Ladisch wrote:
>> >
>> > Raymond Yau wrote:
>> > > The possible way is to save the contents of 128K memory mapped I/O
>> > > ports before suspend to non-volatile memory and restore them after
>> > > resume
>> > >
>> > > Is there any way for alsa driver to allocate non-volatile memory ?
>> >
>> > 'Normal' memory is saved over suspend.  Just use {k|v}malloc.
>>
>> If it's a 128kB bulk memory, vmalloc() is a more sensible choice.
>
> BTW, in many cases, you don't have to save/restore the whole mmio
> region.  Instead, stop the stream, save / restore some important
> registers and do the similar procedure for the normal prepare callback
> in the resume, and restart the stream again.
>
>
> Takashi
>

The current au8830 alsa driver seem use less than 192Kbytes out of
256Kbytes mmio

http://thread.gmane.org/gmane.linux.kernel/564963/focus=47907

your patch seem initialse the request queue in figure 16 of pat 6167465

and the driver need to restore mixer and equalizer mmio for au8830 in figure 13


04:02.0 Multimedia audio controller: Aureal Semiconductor Vortex 2 (rev fe)
	Subsystem: Aureal Semiconductor AU8830 Vortex 3D Digital Audio Processor
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (1000ns min, 3000ns max), Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 23
	Region 0: Memory at ff7c0000 (32-bit, non-prefetchable) [size=256K]
	Region 1: I/O ports at bc00 [size=8]
	Region 2: I/O ports at b880 [size=8]
	Capabilities: [dc] Power Management version 1
		Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: au8830
	Kernel modules: snd-au8830


More information about the Alsa-devel mailing list