Hi there,
I'm looking at the following patch commited a while ago:
http://git.kernel.org/?p=linux/kerne...ec6d72cad56bcc
We have the following board: PPM_GX:
http://www.pc104plus.com/products/PPM-GX500.cfm
With kernel 2.6.13.27(prior to the patch), we had no problem adjusting line out volume via /dev/mixer and playing via /dev/dsp.
With kernel 2.6.29.6/30.5/31-rc9(therefore with the patch) we are unable to adjust volume via /dev/dsp. Playing via /dev/dsp is possible but require some trick. Here is what we have found:
Before, we were able to set output level via SOUND_MIXER_VOLUME and SOUND_MIXER_PCM of the /dev/mixer. Any modification to these level where seen on the AC97 chip via /proc/asound/card0/codec97\#0/ac97\#0-0\+regs on register 02 and 18 respectively.
On the newest kernel, modification to:
SOUND_MIXER_VOLUME does not seem to be reflected on AC97
SOUND_MIXER_PCM seems to affect reg 18(OK)
SOUND_MIXER_ALTPCM seems to affect reg 04
Trying as many as I can SOUND_MIXER combination, I can never affect regs 02 of the AC97(main out). Compiling kernel with debug for the /proc/asound/card0/codec97\#0/ac97\#0-0\+regs, I can set he regs 02 using:
Echo 02 0303 > /proc/asound/card0/codec97\#0/ac97\#0-0\+regs
But that is not very convenient.
Reverting the patch to against 2.6.29.6 solve our issue.
What would be require so that our board works with a vanilla kernel?
Whom should I contact to work on the problem with? How to get in touch with kernel driver's developer?
Thanks
Here are some dump from my /proc
[admin@ccu /home]$ cat /proc/asound/card0/codec97\#0/ac97\#0-0
0-0/0: ICEnsemble VT1616i
PCI Subsys Vendor: 0x100b
PCI Subsys Device: 0x002e
Capabilities : -headphone out-
DAC resolution : 18-bit
ADC resolution : 18-bit
3D enhancement : IC Ensemble/KS Waves
Current setup
Mic gain : +0dB [+0dB]
POP path : pre 3D
Sim. stereo : off
3D enhancement : off
Loudness : off
Mono output : MIX
Mic select : Mic1
ADC/DAC loopback : off
Extended ID : codec=0 rev=0 LDAC SDAC CDAC DSA=0 VRA
Extended status : LDAC SDAC CDAC VRA
PCM front DAC : 32000Hz
PCM Surr DAC : 32000Hz
PCM LFE DAC : 32000Hz
PCM ADC : 48000Hz
[admin@ccu /home]$ cat /proc/asound/pcm
00-00: CS5535 Audio : CS5535 Audio : playback 1 : capture 1
[admin@ccu admin]$ cat /proc/asound/cards
0 [Audio ]: cs5535audio - CS5535 Audio
CS5535 Audio cs5535audio at 0xef00, irq 11
[admin@ccu admin]$ lspci -vvv
00:01.0 Class 0600: Unknown device 100b:0028 (rev 21)
Subsystem: Unknown device 100b:0028
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: 248, Cache Line Size: 32 bytes
Region 0: I/O ports at ac1c [size=4]
00:01.1 Class 0300: Unknown device 100b:0030
Subsystem: Unknown device 100b:0030
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-
Region 0: Memory at 41000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at 40ffc000 (32-bit, non-prefetchable) [size=16K]
Region 2: Memory at 40ff8000 (32-bit, non-prefetchable) [size=16K]
Region 3: Memory at 40ff4000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at <unassigned> [disabled]
00:0d.0 Class 0200: Unknown device 8086:1209 (rev 10)
Subsystem: Unknown device 8086:000c
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 (2000ns min, 14000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 11
Region 0: Memory at efffd000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at ef80 [size=64]
Region 2: Memory at effc0000 (32-bit, non-prefetchable) [size=128K]
Expansion ROM at effb0000 [disabled] [size=64K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-
00:0f.0 Class 0601: Unknown device 100b:002b (rev 13)
Subsystem: Unknown device 100b:002b
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-
Region 0: I/O ports at 6000 [size=8]
Region 1: I/O ports at 6100 [size=256]
Region 2: I/O ports at 6200 [size=64]
Region 3: I/O ports at 1000 [size=32]
Region 4: I/O ports at 9d00 [size=128]
Region 5: I/O ports at 9c00 [size=64]
00:0f.2 Class 0101: Unknown device 100b:002d (prog-if 80 [Master])
Subsystem: Unknown device 100b:002d
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: 0, Cache Line Size: 32 bytes
Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled]
Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled]
Region 4: I/O ports at eff0 [size=16]
00:0f.3 Class 0401: Unknown device 100b:002e
Subsystem: Unknown device 100b:002e
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: 0, Cache Line Size: 32 bytes
Interrupt: pin B routed to IRQ 11
Region 0: I/O ports at ef00 [size=128]
00:0f.4 Class 0c03: Unknown device 100b:002f (rev 06) (prog-if 10)
Subsystem: Unknown device 100b:002f
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: 0 (20000ns max), Cache Line Size: 32 bytes
Interrupt: pin C routed to IRQ 11
Region 0: Memory at effff000 (32-bit, non-prefetchable) [size=4K]
00:0f.5 Class 0c03: Unknown device 100b:002f (rev 06) (prog-if 10)
Subsystem: Unknown device 100b:002f
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: 0 (20000ns max), Cache Line Size: 32 bytes
Interrupt: pin D routed to IRQ 11
Region 0: Memory at efffe000 (32-bit, non-prefetchable) [size=4K]