[alsa-devel] Regression on alsa-driver-1.0.18a on HDA for Dell Inspiron 1521
Hello guys,
I just upgraded my alsa from 1.0.16 to 1.0.18a (actually I tried 1.0.18 for some days, and got lots of kernel crashes, which apparently 1.0.18a fixes). Thing is that when I try to use my headphones with 1.0.18a they don't work.
I'm attaching alsa-info.sh outputs for both 1.0.16 and 1.0.18a too see if this helps.
Headphones detection works pretty well, when ever I plug the jack internal speakers stop working but nothing is coming from the jack. I can hear an static sounds, so it seems like the headphones are getting the bias current, but not the signal itself.
Please let me know how can I help you to debug this problem.
Regards, Manuel
At Wed, 12 Nov 2008 12:06:51 -0200, Manuel Naranjo wrote:
Hello guys,
I just upgraded my alsa from 1.0.16 to 1.0.18a (actually I tried 1.0.18 for some days, and got lots of kernel crashes, which apparently 1.0.18a fixes). Thing is that when I try to use my headphones with 1.0.18a they don't work.
I'm attaching alsa-info.sh outputs for both 1.0.16 and 1.0.18a too see if this helps.
I guess this has been fixed on my tree. Try the snapshot tarball below ftp://ftp.kernel.org/pub/kernel/linux/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
Takashi
I guess this has been fixed on my tree. Try the snapshot tarball below ftp://ftp.kernel.org/pub/kernel/linux/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
Takashi
The URL should be: ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
Thanks it works!
Takashi Iwai wrote:
At Wed, 12 Nov 2008 12:06:51 -0200, Manuel Naranjo wrote:
Hello guys,
I just upgraded my alsa from 1.0.16 to 1.0.18a (actually I tried 1.0.18 for some days, and got lots of kernel crashes, which apparently 1.0.18a fixes). Thing is that when I try to use my headphones with 1.0.18a they don't work.
I'm attaching alsa-info.sh outputs for both 1.0.16 and 1.0.18a too see if this helps.
I guess this has been fixed on my tree. Try the snapshot tarball below
I took a look at your tree(git.kernel/sound-2.6) but I couldn't see any commits above 1.0.18a tag which fixes this problem. Am I looking to the right place?
At Wed, 12 Nov 2008 21:05:52 +0200, Ozan Çağlayan wrote:
Takashi Iwai wrote:
At Wed, 12 Nov 2008 12:06:51 -0200, Manuel Naranjo wrote:
Hello guys,
I just upgraded my alsa from 1.0.16 to 1.0.18a (actually I tried 1.0.18 for some days, and got lots of kernel crashes, which apparently 1.0.18a fixes). Thing is that when I try to use my headphones with 1.0.18a they don't work.
I'm attaching alsa-info.sh outputs for both 1.0.16 and 1.0.18a too see if this helps.
I guess this has been fixed on my tree. Try the snapshot tarball below
I took a look at your tree(git.kernel/sound-2.6) but I couldn't see any commits above 1.0.18a tag which fixes this problem. Am I looking to the right place?
The v1.0.18a commit in the main branch is just for updating the file. release/v1.0.18a branch shows what really it contains.
Takashi
Hello guys,
I just upgraded my alsa from 1.0.16 to 1.0.18a (actually I tried 1.0.18 for some days, and got lots of kernel crashes, which apparently 1.0.18a fixes). Thing is that when I try to use my headphones with 1.0.18a they don't work.
I'm attaching alsa-info.sh outputs for both 1.0.16 and 1.0.18a too see if this helps.
Headphones detection works pretty well, when ever I plug the jack internal speakers stop working but nothing is coming from the jack. I can hear an static sounds, so it seems like the headphones are getting the bias current, but not the signal itself.
Please let me know how can I help you to debug this problem.
Regards, Manuel
Ohh btw, 1.0.18a connects the hardwar beeper, which can only be disabled at compile time, just as a suggestion, isn't there any way to create a way to mute this on runtime? For advanced users like us this is no trouble, but for newbies this is an issue, and might scare them, the beep on a dell laptop is quite annoying (you can't image how annoying it's comming out of the headphones)
At Wed, 12 Nov 2008 12:11:14 -0200, Manuel Naranjo wrote:
Hello guys,
I just upgraded my alsa from 1.0.16 to 1.0.18a (actually I tried 1.0.18 for some days, and got lots of kernel crashes, which apparently 1.0.18a fixes). Thing is that when I try to use my headphones with 1.0.18a they don't work.
I'm attaching alsa-info.sh outputs for both 1.0.16 and 1.0.18a too see if this helps.
Headphones detection works pretty well, when ever I plug the jack internal speakers stop working but nothing is coming from the jack. I can hear an static sounds, so it seems like the headphones are getting the bias current, but not the signal itself.
Please let me know how can I help you to debug this problem.
Regards, Manuel
Ohh btw, 1.0.18a connects the hardwar beeper, which can only be disabled at compile time, just as a suggestion, isn't there any way to create a way to mute this on runtime? For advanced users like us this is no trouble, but for newbies this is an issue, and might scare them, the beep on a dell laptop is quite annoying (you can't image how annoying it's comming out of the headphones)
Don't you have "PC Beep" mixer control?
Takashi
Ohh btw, 1.0.18a connects the hardwar beeper, which can only be disabled at compile time, just as a suggestion, isn't there any way to create a way to mute this on runtime? For advanced users like us this is no trouble, but for newbies this is an issue, and might scare them, the beep on a dell laptop is quite annoying (you can't image how annoying it's comming out of the headphones)
Don't you have "PC Beep" mixer control?
Takashi
I do have it, but there's no mute option. And even at the lowest level option it keeps beeping at a very loud level.
I'm attaching alsa-info.sh output at lowest level possible, and I tell you it hearts when it beeps in the headphones.
upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.4.52 !!################################
!!Script ran on: mié nov 12 12:27:27 ARST 2008
!!Linux Distribution !!------------------
Mandriva Linux release 2009.0 (Official) for i586 LSB_VERSION=lsb-3.1-ia32:lsb-3.1-noarch DISTRIB_ID=MandrivaLinux DISTRIB_DESCRIPTION="Mandriva Linux 2009.0" Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586
!!Kernel Information !!------------------
Kernel release: 2.6.27.4-desktop586-1mnb Operating System: GNU/Linux Architecture: i686 Processor: AMD Turion(tm) 64 X2 Mobile Technology TL-56 SMP Enabled: Yes
!!ALSA Version !!------------
Driver version: 1.0.18a Library version: 1.0.18 Utilities version: 1.0.18
!!Loaded ALSA modules !!-------------------
snd_hda_intel
!!Soundcards recognised by ALSA !!-----------------------------
0 [SB ]: HDA-Intel - HDA ATI SB HDA ATI SB at 0xfebfc000 irq 16
!!PCI Soundcards installed in the system !!--------------------------------------
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
!!Advanced information - PCI Vendor/Device/Susbsystem ID's !!--------------------------------------------------------
00:14.2 0403: 1002:4383 Subsystem: 1028:01fc
!!Modprobe options (Sound related) !!--------------------------------
snd-ac97-codec: power_save=1
!!HDA-Intel Codec information !!--------------------------- --startcollapse--
Codec: SigmaTel STAC9205 Address: 0 Vendor Id: 0x838476a0 Subsystem Id: 0x102801fc Revision Id: 0x100204 No Modem Function Group found Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=0 Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1 GPIO: io=5, o=0, i=0, unsolicited=1, wake=1 IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0 Node 0x0a [Pin Complex] wcaps 0x400181: Stereo Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=3a, enabled=1 Connection: 2 0x10* 0x11 Node 0x0b [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x03a11020: [Jack] Mic at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=1b, enabled=1 Connection: 2 0x10* 0x11 Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x400003fa: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xa Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x11 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x0000003f: IN OUT HP Detect Trigger ImpSense Pin Default 0x90170310: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 1 0x10 Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x400003fb: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xb Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x10 Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x400003fc: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xc Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x11 Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L Amp-Out caps: N/A Amp-Out vals: [0x48 0x48] Converter: stream=0, channel=0 Power: setting=D0, actual=D0 Delay: 13 samples Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L Amp-Out caps: N/A Amp-Out vals: [0xff 0xff] Converter: stream=0, channel=0 Power: setting=D0, actual=D0 Delay: 13 samples Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo Converter: stream=0, channel=0 SDI-Select: 0 Power: setting=D0, actual=D0 Delay: 13 samples Connection: 1 0x1d Processing caps: benign=0, ncoeff=0 Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo Converter: stream=0, channel=0 SDI-Select: 0 Power: setting=D0, actual=D0 Delay: 13 samples Connection: 1 0x1e Processing caps: benign=0, ncoeff=0 Node 0x14 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00] Pincap 0x00000010: OUT Pin Default 0x400003fd: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xd Misc = NO_PRESENCE Pin-ctls: 0x00: Connection: 1 0x15 Node 0x15 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x40f000f9: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x9 Pin-ctls: 0x00: Node 0x17 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x90a60330: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x18 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x400003ff: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xf Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x19 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x04 0x04] Connection: 7 0x0e 0x16 0x0f 0x0b* 0x0c 0x0d 0x0a Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x04 0x04] Connection: 7 0x0e 0x16 0x0f 0x0b* 0x0c 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x0c 0x0c] Connection: 1 0x19 Node 0x1c [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x0c 0x0c] Connection: 1 0x1a Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Connection: 3 0x1b 0x17* 0x18 Node 0x1e [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Connection: 3 0x1c* 0x17 0x18 Node 0x1f [Audio Output] wcaps 0x40211: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Delay: 4 samples Node 0x20 [Audio Input] wcaps 0x140311: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Digital category: 0x0 PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Delay: 4 samples Connection: 1 0x22 Node 0x21 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x0144131f: [Jack] SPDIF Out at Ext Rear Conn = RCA, Color = Black DefAssociation = 0x1, Sequence = 0xf Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Connection: 3 0x1f* 0x1d 0x1e Node 0x22 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x00010024: IN EAPD Detect EAPD 0x0: Pin Default 0x40c003fe: [N/A] SPDIF In at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xe Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power: setting=D0, actual=D0 Delay: 3 samples Node 0x23 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 Amp-Out vals: [0x00] Node 0x24 [Volume Knob Widget] wcaps 0x600000: Mono Volume-Knob: delta=1, steps=127, direct=1, val=127 Connection: 2 0x10* 0x11 Node 0x25 [Vendor Defined Widget] wcaps 0xf00001: Stereo Codec: Conexant ID 2c06 Address: 1 Vendor Id: 0x14f12c06 Subsystem Id: 0x14f1000f Revision Id: 0x100000 Modem Function Group: 0x2 --endcollapse--
!!ALSA Device nodes !!-----------------
crw-rw----+ 1 root audio 116, 0 2008-11-12 12:25 /dev/snd/controlC0 crw-rw----+ 1 root audio 116, 24 2008-11-12 12:25 /dev/snd/pcmC0D0c crw-rw----+ 1 root audio 116, 16 2008-11-12 12:25 /dev/snd/pcmC0D0p crw-rw----+ 1 root audio 116, 17 2008-11-12 12:25 /dev/snd/pcmC0D1p crw-rw----+ 1 root audio 116, 1 2008-11-12 12:25 /dev/snd/seq crw-rw----+ 1 root audio 116, 33 2008-11-12 12:25 /dev/snd/timer
!!ALSA configuration files !!------------------------
!!User specific config file (~/.asoundrc)
#pcm.bluetooth { # type bluetooth # device 00:12:0E:06:C5:8A # profile "voice" #}
pcm.pulse { type pulse }
ctl.pulse { type pulse }
!!Aplay/Arecord output !!------------
APLAY
**** List of PLAYBACK Hardware Devices **** card 0: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 1: STAC92xx Digital [STAC92xx Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices **** card 0: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1
!!Amixer output !!-------------
!!-------Mixer controls for card 0 [SB]
Card hw:0 'SB'/'HDA ATI SB at 0xfebfc000 irq 16' Mixer name : 'SigmaTel STAC9205' Components : 'HDA:838476a0,102801fc,00100204 HDA:14f12c06,14f1000f,00100000' Controls : 23 Simple ctrls : 16 Simple mixer control 'Master',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback 0 - 127 Mono: Playback 101 [80%] [-19.50dB] [on] Simple mixer control 'PCM',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 204 [80%] [-10.20dB] Front Right: Playback 204 [80%] [-10.20dB] Simple mixer control 'Front',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 127 Mono: Front Left: Playback 98 [77%] [-21.75dB] [on] Front Right: Playback 98 [77%] [-21.75dB] [on] Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'IEC958 Default PCM',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958 Playback Source',0 Capabilities: enum Items: 'Digital Playback' 'Analog Mux 1' 'Analog Mux 2' Item0: 'Digital Playback' Simple mixer control 'Capture',0 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 15 Front Left: Capture 12 [80%] [18.00dB] [on] Front Right: Capture 12 [80%] [18.00dB] [on] Simple mixer control 'Capture',1 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 15 Front Left: Capture 12 [80%] [18.00dB] [on] Front Right: Capture 12 [80%] [18.00dB] [on] Simple mixer control 'Analog Loopback',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Digital',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 120 Front Left: Capture 120 [100%] [30.00dB] Front Right: Capture 120 [100%] [30.00dB] Simple mixer control 'Digital Input Source',0 Capabilities: enum Items: 'Analog Inputs' 'Digital Mic 1' Item0: 'Digital Mic 1' Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Mic' Item0: 'Mic' Simple mixer control 'Input Source',1 Capabilities: cenum Items: 'Mic' Item0: 'Mic' Simple mixer control 'Mux',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 4 Front Left: Capture 4 [100%] [40.00dB] Front Right: Capture 4 [100%] [40.00dB] Simple mixer control 'Mux',1 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 4 Front Left: Capture 4 [100%] [40.00dB] Front Right: Capture 4 [100%] [40.00dB] Simple mixer control 'PC Beep',0 Capabilities: pvolume pvolume-joined Playback channels: Mono Limits: Playback 0 - 3 Mono: Playback 0 [0%] [-18.00dB]
!!Alsactl output !!-------------
--startcollapse-- state.SB { control.1 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic iface MIXER name 'Input Source' value Mic } control.2 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic iface MIXER name 'Input Source' index 1 value Mic } control.3 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Analog Loopback' value false } control.4 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' comment.dbmin 0 comment.dbmax 2250 iface MIXER name 'Capture Volume' value.0 12 value.1 12 } control.5 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' value.0 true value.1 true } control.6 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' comment.dbmin 0 comment.dbmax 2250 iface MIXER name 'Capture Volume' index 1 value.0 12 value.1 12 } control.7 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' index 1 value.0 true value.1 true } control.8 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 127' comment.dbmin -9525 comment.dbmax 0 iface MIXER name 'Front Playback Volume' value.0 98 value.1 98 } control.9 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Front Playback Switch' value.0 true value.1 true } control.10 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 3' comment.dbmin -1800 comment.dbmax 0 iface MIXER name 'PC Beep Playback Volume' value 0 } control.11 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 4' comment.dbmin 0 comment.dbmax 4000 iface MIXER name 'Mux Capture Volume' value.0 4 value.1 4 } control.12 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 4' comment.dbmin 0 comment.dbmax 4000 iface MIXER name 'Mux Capture Volume' index 1 value.0 4 value.1 4 } control.13 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Analog Inputs' comment.item.1 'Digital Mic 1' iface MIXER name 'Digital Input Source' value 'Digital Mic 1' } control.14 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Digital Playback' comment.item.1 'Analog Mux 1' comment.item.2 'Analog Mux 2' iface MIXER name 'IEC958 Playback Source' value 'Digital Playback' } control.15 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.16 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.17 { comment.access 'read write' comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Default' value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.18 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Playback Switch' value false } control.19 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Default PCM Playback Switch' value true } control.20 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 127' comment.dbmin -9525 comment.dbmax 0 iface MIXER name 'Master Playback Volume' value 101 } control.21 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Master Playback Switch' value true } control.22 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 255' comment.tlv '0000000100000008ffffec1400000014' comment.dbmin -5100 comment.dbmax 0 iface MIXER name 'PCM Playback Volume' value.0 204 value.1 204 } control.23 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 120' comment.tlv '0000000100000008fffff44800000032' comment.dbmin -3000 comment.dbmax 3000 iface MIXER name 'Digital Capture Volume' value.0 120 value.1 120 } } --endcollapse--
!!All Loaded Modules !!------------------
Module snd_hda_intel snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore hidp rfcomm bridge stp bnep l2cap btusb bluetooth usbhid ff_memless fglrx ipv6 vboxdrv binfmt_misc loop vfat fat dm_mod cpufreq_ondemand cpufreq_conservative cpufreq_powersave powernow_k8 freq_table nvram i8k af_packet b44 ssb sdhci_pci uvcvideo pcmcia compat_ioctl32 mmc_block pcmcia_core videodev sdhci v4l1_compat ricoh_mmc mii ndiswrapper mmc_core ohci1394 i2c_piix4 thermal battery wmi video processor button ac ieee1394 k8temp output ati_agp dcdbas shpchp agpgart i2c_core pci_hotplug rtc_cmos joydev evdev sg sr_mod pata_atiixp ata_piix ahci libata dock sd_mod scsi_mod crc_t10dif ext3 jbd uhci_hcd ohci_hcd ehci_hcd usbcore
At Wed, 12 Nov 2008 12:28:03 -0200, Manuel Naranjo wrote:
Ohh btw, 1.0.18a connects the hardwar beeper, which can only be disabled at compile time, just as a suggestion, isn't there any way to create a way to mute this on runtime? For advanced users like us this is no trouble, but for newbies this is an issue, and might scare them, the beep on a dell laptop is quite annoying (you can't image how annoying it's comming out of the headphones)
Don't you have "PC Beep" mixer control?
Takashi
I do have it, but there's no mute option. And even at the lowest level option it keeps beeping at a very loud level.
OK, then there should be a software switch. Could you try the patch below? Apply it on alsa-kernel via -p2 patch option.
Takashi
diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c index 9b77b3e..b1796ae 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c @@ -37,6 +37,9 @@ static void snd_hda_generate_beep(struct work_struct *work) container_of(work, struct hda_beep, beep_work); struct hda_codec *codec = beep->codec;
+ if (!beep->enabled) + return; + /* generate tone */ snd_hda_codec_write_cache(codec, beep->nid, 0, AC_VERB_SET_BEEP_CONTROL, beep->tone); @@ -115,6 +118,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) beep->nid = nid; beep->dev = input_dev; beep->codec = codec; + beep->enabled = 1; codec->beep = beep;
INIT_WORK(&beep->beep_work, &snd_hda_generate_beep); diff --git a/sound/pci/hda/hda_beep.h b/sound/pci/hda/hda_beep.h index de4036e..b9679f0 100644 --- a/sound/pci/hda/hda_beep.h +++ b/sound/pci/hda/hda_beep.h @@ -31,6 +31,7 @@ struct hda_beep { char phys[32]; int tone; int nid; + int enabled; struct work_struct beep_work; /* scheduled task for beep event */ };
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index ec8f5ab..a150330 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -2608,8 +2608,10 @@ static struct snd_kcontrol_new stac92xx_control_templates[] = { };
/* add dynamic controls */ -static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, - int idx, const char *name, unsigned long val) +static int stac92xx_add_control_temp(struct sigmatel_spec *spec, + struct snd_kcontrol_new *ktemp, + int idx, const char *name, + unsigned long val) { struct snd_kcontrol_new *knew;
@@ -2617,19 +2619,28 @@ static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, knew = snd_array_new(&spec->kctls); if (!knew) return -ENOMEM; - *knew = stac92xx_control_templates[type]; + *knew = *ktemp; knew->index = idx; knew->name = kstrdup(name, GFP_KERNEL); - if (! knew->name) + if (!knew->name) return -ENOMEM; knew->private_value = val; return 0; }
+static inline int stac92xx_add_control_idx(struct sigmatel_spec *spec, + int type, int idx, const char *name, + unsigned long val) +{ + return stac92xx_add_control_temp(spec, + &stac92xx_control_templates[type], + idx, name, val); +} +
/* add dynamic controls */ -static int stac92xx_add_control(struct sigmatel_spec *spec, int type, - const char *name, unsigned long val) +static inline int stac92xx_add_control(struct sigmatel_spec *spec, int type, + const char *name, unsigned long val) { return stac92xx_add_control_idx(spec, type, 0, name, val); } @@ -3071,6 +3082,44 @@ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec, return 0; }
+#ifdef CONFIG_SND_HDA_INPUT_BEEP +#define stac92xx_dig_beep_switch_info snd_ctl_boolean_mono_info + +static int stac92xx_dig_beep_switch_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + ucontrol->value.integer.value[0] = codec->beep->enabled; + return 0; +} + +static int stac92xx_dig_beep_switch_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + int enabled = !!ucontrol->value.integer.value[0]; + if (codec->beep->enabled != enabled) { + codec->beep->enabled = enabled; + return 1; + } + return 0; +} + +static struct snd_kcontrol_new stac92xx_dig_beep_ctrl = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "PC Bepp Playback Switch", + .info = stac92xx_dig_beep_switch_info, + .get = stac92xx_dig_beep_switch_get, + .put = stac92xx_dig_beep_switch_put, +}; + +static int stac92xx_beep_switch_ctl(struct hda_codec *codec) +{ + return stac92xx_add_control_temp(codec->spec, &stac92xx_dig_beep_ctrl, + 0, "PC Beep Playback Volume", 0); +} +#endif + static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -3377,6 +3426,7 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out #ifdef CONFIG_SND_HDA_INPUT_BEEP if (spec->digbeep_nid > 0) { hda_nid_t nid = spec->digbeep_nid; + unsigned int caps;
err = stac92xx_auto_create_beep_ctls(codec, nid); if (err < 0) @@ -3384,6 +3434,14 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out err = snd_hda_attach_beep_device(codec, nid); if (err < 0) return err; + /* if no beep switch is available, make its own one */ + caps = query_amp_caps(codec, nid, HDA_OUTPUT); + if (codec->beep && + !((caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT)) { + err = stac92xx_beep_switch_ctl(codec); + if (err < 0) + return err; + } } #endif
On Wed, 12 Nov 2008, Takashi Iwai wrote:
- .name = "PC Bepp Playback Switch",
Typo here.
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.
At Wed, 12 Nov 2008 16:04:24 +0100 (CET), Jaroslav Kysela wrote:
On Wed, 12 Nov 2008, Takashi Iwai wrote:
- .name = "PC Bepp Playback Switch",
Typo here.
Yep, thanks.
The fixed patch below.
Takashi
--- diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c index 9b77b3e..b1796ae 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c @@ -37,6 +37,9 @@ static void snd_hda_generate_beep(struct work_struct *work) container_of(work, struct hda_beep, beep_work); struct hda_codec *codec = beep->codec;
+ if (!beep->enabled) + return; + /* generate tone */ snd_hda_codec_write_cache(codec, beep->nid, 0, AC_VERB_SET_BEEP_CONTROL, beep->tone); @@ -115,6 +118,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) beep->nid = nid; beep->dev = input_dev; beep->codec = codec; + beep->enabled = 1; codec->beep = beep;
INIT_WORK(&beep->beep_work, &snd_hda_generate_beep); diff --git a/sound/pci/hda/hda_beep.h b/sound/pci/hda/hda_beep.h index de4036e..b9679f0 100644 --- a/sound/pci/hda/hda_beep.h +++ b/sound/pci/hda/hda_beep.h @@ -31,6 +31,7 @@ struct hda_beep { char phys[32]; int tone; int nid; + int enabled; struct work_struct beep_work; /* scheduled task for beep event */ };
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index ec8f5ab..a150330 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -2608,8 +2608,10 @@ static struct snd_kcontrol_new stac92xx_control_templates[] = { };
/* add dynamic controls */ -static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, - int idx, const char *name, unsigned long val) +static int stac92xx_add_control_temp(struct sigmatel_spec *spec, + struct snd_kcontrol_new *ktemp, + int idx, const char *name, + unsigned long val) { struct snd_kcontrol_new *knew;
@@ -2617,19 +2619,28 @@ static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, knew = snd_array_new(&spec->kctls); if (!knew) return -ENOMEM; - *knew = stac92xx_control_templates[type]; + *knew = *ktemp; knew->index = idx; knew->name = kstrdup(name, GFP_KERNEL); - if (! knew->name) + if (!knew->name) return -ENOMEM; knew->private_value = val; return 0; }
+static inline int stac92xx_add_control_idx(struct sigmatel_spec *spec, + int type, int idx, const char *name, + unsigned long val) +{ + return stac92xx_add_control_temp(spec, + &stac92xx_control_templates[type], + idx, name, val); +} +
/* add dynamic controls */ -static int stac92xx_add_control(struct sigmatel_spec *spec, int type, - const char *name, unsigned long val) +static inline int stac92xx_add_control(struct sigmatel_spec *spec, int type, + const char *name, unsigned long val) { return stac92xx_add_control_idx(spec, type, 0, name, val); } @@ -3071,6 +3082,44 @@ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec, return 0; }
+#ifdef CONFIG_SND_HDA_INPUT_BEEP +#define stac92xx_dig_beep_switch_info snd_ctl_boolean_mono_info + +static int stac92xx_dig_beep_switch_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + ucontrol->value.integer.value[0] = codec->beep->enabled; + return 0; +} + +static int stac92xx_dig_beep_switch_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + int enabled = !!ucontrol->value.integer.value[0]; + if (codec->beep->enabled != enabled) { + codec->beep->enabled = enabled; + return 1; + } + return 0; +} + +static struct snd_kcontrol_new stac92xx_dig_beep_ctrl = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "PC Beep Playback Switch", + .info = stac92xx_dig_beep_switch_info, + .get = stac92xx_dig_beep_switch_get, + .put = stac92xx_dig_beep_switch_put, +}; + +static int stac92xx_beep_switch_ctl(struct hda_codec *codec) +{ + return stac92xx_add_control_temp(codec->spec, &stac92xx_dig_beep_ctrl, + 0, "PC Beep Playback Volume", 0); +} +#endif + static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -3377,6 +3426,7 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out #ifdef CONFIG_SND_HDA_INPUT_BEEP if (spec->digbeep_nid > 0) { hda_nid_t nid = spec->digbeep_nid; + unsigned int caps;
err = stac92xx_auto_create_beep_ctls(codec, nid); if (err < 0) @@ -3384,6 +3434,14 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out err = snd_hda_attach_beep_device(codec, nid); if (err < 0) return err; + /* if no beep switch is available, make its own one */ + caps = query_amp_caps(codec, nid, HDA_OUTPUT); + if (codec->beep && + !((caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT)) { + err = stac92xx_beep_switch_ctl(codec); + if (err < 0) + return err; + } } #endif
Typo here.
Yep, thanks.
The fixed patch below.
Takashi
Sorry but for some reason it doesn't work at all.
I'm getting this in dmegs:- HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 input: HDA Digital PCBeep as /class/input/input10 HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel: probe of 0000:00:14.2 failed with error -16 HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 input: HDA Digital PCBeep as /class/input/input11 HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel: probe of 0000:00:14.2 failed with error -16 HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16
I also attach alsa-info.sh output.
upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.4.52 !!################################
!!Script ran on: mié nov 12 16:47:00 ARST 2008
!!Linux Distribution !!------------------
Mandriva Linux release 2009.0 (Official) for i586 LSB_VERSION=lsb-3.1-ia32:lsb-3.1-noarch DISTRIB_ID=MandrivaLinux DISTRIB_DESCRIPTION="Mandriva Linux 2009.0" Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586
!!Kernel Information !!------------------
Kernel release: 2.6.27.4-desktop586-1mnb Operating System: GNU/Linux Architecture: i686 Processor: AMD Turion(tm) 64 X2 Mobile Technology TL-56 SMP Enabled: Yes
!!ALSA Version !!------------
Driver version: 1.0.18a Library version: 1.0.18 Utilities version: 1.0.18
!!Loaded ALSA modules !!-------------------
!!Soundcards recognised by ALSA !!-----------------------------
--- no soundcards ---
!!PCI Soundcards installed in the system !!--------------------------------------
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
!!Advanced information - PCI Vendor/Device/Susbsystem ID's !!--------------------------------------------------------
00:14.2 0403: 1002:4383 Subsystem: 1028:01fc
!!Modprobe options (Sound related) !!--------------------------------
snd_hda_intel: model=dell-m42 snd-ac97-codec: power_save=1
!!ALSA Device nodes !!-----------------
crw-rw----+ 1 root audio 116, 1 2008-11-12 16:43 /dev/snd/seq crw-rw----+ 1 root audio 116, 33 2008-11-12 16:43 /dev/snd/timer
!!ALSA configuration files !!------------------------
!!User specific config file (~/.asoundrc)
#pcm.bluetooth { # type bluetooth # device 00:12:0E:06:C5:8A # profile "voice" #}
pcm.pulse { type pulse }
ctl.pulse { type pulse }
!!Aplay/Arecord output !!------------
APLAY
aplay: device_list:217: no soundcards found...
ARECORD
arecord: device_list:217: no soundcards found...
!!Amixer output !!-------------
!!Alsactl output !!-------------
--startcollapse-- state.SB { control.1 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic iface MIXER name 'Input Source' value Mic } control.2 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic iface MIXER name 'Input Source' index 1 value Mic } control.3 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Analog Loopback' value false } control.4 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' comment.dbmin 0 comment.dbmax 2250 iface MIXER name 'Capture Volume' value.0 12 value.1 12 } control.5 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' value.0 true value.1 true } control.6 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' comment.dbmin 0 comment.dbmax 2250 iface MIXER name 'Capture Volume' index 1 value.0 12 value.1 12 } control.7 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' index 1 value.0 true value.1 true } control.8 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 127' comment.dbmin -9525 comment.dbmax 0 iface MIXER name 'Front Playback Volume' value.0 98 value.1 98 } control.9 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Front Playback Switch' value.0 true value.1 true } control.10 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 3' comment.dbmin -1800 comment.dbmax 0 iface MIXER name 'PC Beep Playback Volume' value 0 } control.11 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 4' comment.dbmin 0 comment.dbmax 4000 iface MIXER name 'Mux Capture Volume' value.0 4 value.1 4 } control.12 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 4' comment.dbmin 0 comment.dbmax 4000 iface MIXER name 'Mux Capture Volume' index 1 value.0 4 value.1 4 } control.13 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Analog Inputs' comment.item.1 'Digital Mic 1' iface MIXER name 'Digital Input Source' value 'Digital Mic 1' } control.14 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Digital Playback' comment.item.1 'Analog Mux 1' comment.item.2 'Analog Mux 2' iface MIXER name 'IEC958 Playback Source' value 'Digital Playback' } control.15 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.16 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.17 { comment.access 'read write' comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Default' value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.18 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Playback Switch' value false } control.19 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Default PCM Playback Switch' value true } control.20 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 127' comment.dbmin -9525 comment.dbmax 0 iface MIXER name 'Master Playback Volume' value 101 } control.21 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Master Playback Switch' value true } control.22 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 255' comment.tlv '0000000100000008ffffec1400000014' comment.dbmin -5100 comment.dbmax 0 iface MIXER name 'PCM Playback Volume' value.0 204 value.1 204 } control.23 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 120' comment.tlv '0000000100000008fffff44800000032' comment.dbmin -3000 comment.dbmax 3000 iface MIXER name 'Digital Capture Volume' value.0 120 value.1 120 } } --endcollapse--
!!All Loaded Modules !!------------------
Module snd_hda_intel snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore af_packet fglrx ipv6 vboxdrv binfmt_misc loop vfat fat dm_mod cpufreq_ondemand cpufreq_conservative cpufreq_powersave powernow_k8 freq_table nvram i8k b44 ssb thermal pcmcia k8temp video usbhid processor pcmcia_core ohci1394 ac i2c_piix4 shpchp sdhci_pci ieee1394 output wmi pci_hotplug uvcvideo battery button compat_ioctl32 joydev i2c_core rtc_cmos evdev videodev mmc_block v4l1_compat sdhci mii mmc_core dcdbas ndiswrapper ff_memless ati_agp agpgart sr_mod sg pata_atiixp ata_piix ahci libata dock sd_mod scsi_mod crc_t10dif ext3 jbd uhci_hcd ohci_hcd ehci_hcd usbcore
At Wed, 12 Nov 2008 16:52:51 -0200, Manuel Naranjo wrote:
Typo here.
Yep, thanks.
The fixed patch below.
Takashi
Sorry but for some reason it doesn't work at all.
I'm getting this in dmegs:- HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 input: HDA Digital PCBeep as /class/input/input10 HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel: probe of 0000:00:14.2 failed with error -16 HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 input: HDA Digital PCBeep as /class/input/input11 HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel: probe of 0000:00:14.2 failed with error -16 HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16
You should build with debug option when you are debugging something.
Anyway, there was another typo. Try the patch below.
thanks,
Takashi
--- diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c index 9b77b3e..b1796ae 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c @@ -37,6 +37,9 @@ static void snd_hda_generate_beep(struct work_struct *work) container_of(work, struct hda_beep, beep_work); struct hda_codec *codec = beep->codec;
+ if (!beep->enabled) + return; + /* generate tone */ snd_hda_codec_write_cache(codec, beep->nid, 0, AC_VERB_SET_BEEP_CONTROL, beep->tone); @@ -115,6 +118,7 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) beep->nid = nid; beep->dev = input_dev; beep->codec = codec; + beep->enabled = 1; codec->beep = beep;
INIT_WORK(&beep->beep_work, &snd_hda_generate_beep); diff --git a/sound/pci/hda/hda_beep.h b/sound/pci/hda/hda_beep.h index de4036e..b9679f0 100644 --- a/sound/pci/hda/hda_beep.h +++ b/sound/pci/hda/hda_beep.h @@ -31,6 +31,7 @@ struct hda_beep { char phys[32]; int tone; int nid; + int enabled; struct work_struct beep_work; /* scheduled task for beep event */ };
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index ec8f5ab..58d832c 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -2608,8 +2608,10 @@ static struct snd_kcontrol_new stac92xx_control_templates[] = { };
/* add dynamic controls */ -static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, - int idx, const char *name, unsigned long val) +static int stac92xx_add_control_temp(struct sigmatel_spec *spec, + struct snd_kcontrol_new *ktemp, + int idx, const char *name, + unsigned long val) { struct snd_kcontrol_new *knew;
@@ -2617,19 +2619,28 @@ static int stac92xx_add_control_idx(struct sigmatel_spec *spec, int type, knew = snd_array_new(&spec->kctls); if (!knew) return -ENOMEM; - *knew = stac92xx_control_templates[type]; + *knew = *ktemp; knew->index = idx; knew->name = kstrdup(name, GFP_KERNEL); - if (! knew->name) + if (!knew->name) return -ENOMEM; knew->private_value = val; return 0; }
+static inline int stac92xx_add_control_idx(struct sigmatel_spec *spec, + int type, int idx, const char *name, + unsigned long val) +{ + return stac92xx_add_control_temp(spec, + &stac92xx_control_templates[type], + idx, name, val); +} +
/* add dynamic controls */ -static int stac92xx_add_control(struct sigmatel_spec *spec, int type, - const char *name, unsigned long val) +static inline int stac92xx_add_control(struct sigmatel_spec *spec, int type, + const char *name, unsigned long val) { return stac92xx_add_control_idx(spec, type, 0, name, val); } @@ -3071,6 +3082,43 @@ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec, return 0; }
+#ifdef CONFIG_SND_HDA_INPUT_BEEP +#define stac92xx_dig_beep_switch_info snd_ctl_boolean_mono_info + +static int stac92xx_dig_beep_switch_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + ucontrol->value.integer.value[0] = codec->beep->enabled; + return 0; +} + +static int stac92xx_dig_beep_switch_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct hda_codec *codec = snd_kcontrol_chip(kcontrol); + int enabled = !!ucontrol->value.integer.value[0]; + if (codec->beep->enabled != enabled) { + codec->beep->enabled = enabled; + return 1; + } + return 0; +} + +static struct snd_kcontrol_new stac92xx_dig_beep_ctrl = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .info = stac92xx_dig_beep_switch_info, + .get = stac92xx_dig_beep_switch_get, + .put = stac92xx_dig_beep_switch_put, +}; + +static int stac92xx_beep_switch_ctl(struct hda_codec *codec) +{ + return stac92xx_add_control_temp(codec->spec, &stac92xx_dig_beep_ctrl, + 0, "PC Beep Playback Switch", 0); +} +#endif + static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -3377,6 +3425,7 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out #ifdef CONFIG_SND_HDA_INPUT_BEEP if (spec->digbeep_nid > 0) { hda_nid_t nid = spec->digbeep_nid; + unsigned int caps;
err = stac92xx_auto_create_beep_ctls(codec, nid); if (err < 0) @@ -3384,6 +3433,14 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out err = snd_hda_attach_beep_device(codec, nid); if (err < 0) return err; + /* if no beep switch is available, make its own one */ + caps = query_amp_caps(codec, nid, HDA_OUTPUT); + if (codec->beep && + !((caps & AC_AMPCAP_MUTE) >> AC_AMPCAP_MUTE_SHIFT)) { + err = stac92xx_beep_switch_ctl(codec); + if (err < 0) + return err; + } } #endif
At Thu, 13 Nov 2008 13:03:16 +0100, I wrote:
At Wed, 12 Nov 2008 16:52:51 -0200, Manuel Naranjo wrote:
Typo here.
Yep, thanks.
The fixed patch below.
Takashi
Sorry but for some reason it doesn't work at all.
I'm getting this in dmegs:- HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 input: HDA Digital PCBeep as /class/input/input10 HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel: probe of 0000:00:14.2 failed with error -16 HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 input: HDA Digital PCBeep as /class/input/input11 HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel: probe of 0000:00:14.2 failed with error -16 HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16
You should build with debug option when you are debugging something.
Anyway, there was another typo. Try the patch below.
FWIW, I already merged the patches to my git tree. So the latest snapshot should have already this.
Takashi
FWIW, I already merged the patches to my git tree. So the latest snapshot should have already this.
Takashi, Sorry for the delayed answer. I tried both by patching my yesterday snapshot, and by using the new snapshot, neither of them worked completly right.
Good part is that now I can decide if I either want to turn on or off the bloody beep. But result is the same on both cases, no matter if it's on or off it doesn't make a beep (which is pretty good for my ears, but not for the code purspose).
I now compiled with --with-debug=full (sorry I didn't do it before, actually I compiled with -O0 -g to figure out the memory leak, but forgot to enable printk debugging), I send two dmesg logs, one is without telling hda-intel which model to use, the other one is by passing model=dell-m42. I'm also attaching alsa-info.sh output for model=dell-m42.
I'll take a look at the code tomorrow too see if I can figure out why it doesn't beep at all.
Cheers, Manuel
upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.4.52 !!################################
!!Script ran on: vie nov 14 00:12:27 ARST 2008
!!Linux Distribution !!------------------
Mandriva Linux release 2009.0 (Official) for i586 LSB_VERSION=lsb-3.1-ia32:lsb-3.1-noarch DISTRIB_ID=MandrivaLinux DISTRIB_DESCRIPTION="Mandriva Linux 2009.0" Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586 Mandriva Linux release 2009.0 (Official) for i586
!!Kernel Information !!------------------
Kernel release: 2.6.27.4-desktop586-1mnb Operating System: GNU/Linux Architecture: i686 Processor: AMD Turion(tm) 64 X2 Mobile Technology TL-56 SMP Enabled: Yes
!!ALSA Version !!------------
Driver version: 1.0.18a Library version: 1.0.18 Utilities version: 1.0.18
!!Loaded ALSA modules !!-------------------
snd_hda_intel
!!Soundcards recognised by ALSA !!-----------------------------
0 [SB ]: HDA-Intel - HDA ATI SB HDA ATI SB at 0xfebfc000 irq 16
!!PCI Soundcards installed in the system !!--------------------------------------
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
!!Advanced information - PCI Vendor/Device/Susbsystem ID's !!--------------------------------------------------------
00:14.2 0403: 1002:4383 Subsystem: 1028:01fc
!!Modprobe options (Sound related) !!--------------------------------
snd_hda_intel: model=dell-m42 snd-ac97-codec: power_save=1
!!HDA-Intel Codec information !!--------------------------- --startcollapse--
Codec: SigmaTel STAC9205 Address: 0 Vendor Id: 0x838476a0 Subsystem Id: 0x102801fc Revision Id: 0x100204 No Modem Function Group found Default PCM: rates [0x7e0]: 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=0 Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1 GPIO: io=5, o=0, i=0, unsolicited=1, wake=1 IO[0]: enable=1, dir=1, wake=0, sticky=0, data=1 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0 Node 0x0a [Pin Complex] wcaps 0x400181: Stereo Pincap 0x0000173f: IN OUT HP Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x0321101f: [Jack] HP Out at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=3a, enabled=1 Connection: 2 0x10* 0x11 Node 0x0b [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x03a11020: [Jack] Mic at Ext Left Conn = 1/8, Color = Black DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=1b, enabled=1 Connection: 2 0x10* 0x11 Node 0x0c [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x400003fa: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xa Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x11 Node 0x0d [Pin Complex] wcaps 0x400181: Stereo Pincap 0x0000003f: IN OUT HP Detect Trigger ImpSense Pin Default 0x90170310: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 1 0x10 Node 0x0e [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x400003fb: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xb Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x10 Node 0x0f [Pin Complex] wcaps 0x400181: Stereo Pincap 0x00001737: IN OUT Detect Trigger ImpSense Vref caps: HIZ 50 GRD 80 Pin Default 0x400003fc: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xc Misc = NO_PRESENCE Pin-ctls: 0x00: VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x11 Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L Amp-Out caps: N/A Amp-Out vals: [0x4f 0x4f] Converter: stream=0, channel=0 Power: setting=D0, actual=D0 Delay: 13 samples Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L Amp-Out caps: N/A Amp-Out vals: [0xff 0xff] Converter: stream=0, channel=0 Power: setting=D0, actual=D0 Delay: 13 samples Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo Converter: stream=0, channel=0 SDI-Select: 0 Power: setting=D0, actual=D0 Delay: 13 samples Connection: 1 0x1d Processing caps: benign=0, ncoeff=0 Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo Converter: stream=0, channel=0 SDI-Select: 0 Power: setting=D0, actual=D0 Delay: 13 samples Connection: 1 0x1e Processing caps: benign=0, ncoeff=0 Node 0x14 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00] Pincap 0x00000010: OUT Pin Default 0x400003fd: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xd Misc = NO_PRESENCE Pin-ctls: 0x00: Connection: 1 0x15 Node 0x15 [Audio Mixer] wcaps 0x200100: Mono Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x40f000f9: [N/A] Other at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x9 Pin-ctls: 0x00: Node 0x17 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x90a60330: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x18 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x00000020: IN Pin Default 0x400003ff: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xf Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x19 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x04 0x04] Connection: 7 0x0e 0x16 0x0f 0x0b* 0x0c 0x0d 0x0a Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 Amp-Out vals: [0x04 0x04] Connection: 7 0x0e 0x16 0x0f 0x0b* 0x0c 0x0d 0x0a Node 0x1b [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x0c 0x0c] Connection: 1 0x19 Node 0x1c [Audio Selector] wcaps 0x300103: Stereo Amp-In Amp-In caps: N/A Amp-In vals: [0x0c 0x0c] Connection: 1 0x1a Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Connection: 3 0x1b* 0x17 0x18 Node 0x1e [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Connection: 3 0x1c* 0x17 0x18 Node 0x1f [Audio Output] wcaps 0x40211: Stereo Digital Converter: stream=0, channel=0 Digital: Enabled Digital category: 0x0 PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Delay: 4 samples Node 0x20 [Audio Input] wcaps 0x140311: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Digital category: 0x0 PCM: rates [0x160]: 44100 48000 96000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Delay: 4 samples Connection: 1 0x22 Node 0x21 [Pin Complex] wcaps 0x400301: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x0144131f: [Jack] SPDIF Out at Ext Rear Conn = RCA, Color = Black DefAssociation = 0x1, Sequence = 0xf Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Connection: 3 0x1f* 0x1d 0x1e Node 0x22 [Pin Complex] wcaps 0x430681: Stereo Digital Pincap 0x00010024: IN EAPD Detect EAPD 0x0: Pin Default 0x40c003fe: [N/A] SPDIF In at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0xe Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power: setting=D0, actual=D0 Delay: 3 samples Node 0x23 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 Amp-Out vals: [0x00] Node 0x24 [Volume Knob Widget] wcaps 0x600000: Mono Volume-Knob: delta=1, steps=127, direct=1, val=127 Connection: 2 0x10* 0x11 Node 0x25 [Vendor Defined Widget] wcaps 0xf00001: Stereo Codec: Conexant ID 2c06 Address: 1 Vendor Id: 0x14f12c06 Subsystem Id: 0x14f1000f Revision Id: 0x100000 Modem Function Group: 0x2 --endcollapse--
!!ALSA Device nodes !!-----------------
crw-rw----+ 1 root audio 116, 0 2008-11-14 00:09 /dev/snd/controlC0 crw-rw----+ 1 root audio 116, 24 2008-11-14 00:12 /dev/snd/pcmC0D0c crw-rw----+ 1 root audio 116, 16 2008-11-14 00:12 /dev/snd/pcmC0D0p crw-rw----+ 1 root audio 116, 17 2008-11-14 00:09 /dev/snd/pcmC0D1p crw-rw----+ 1 root audio 116, 1 2008-11-14 00:09 /dev/snd/seq crw-rw----+ 1 root audio 116, 33 2008-11-14 00:09 /dev/snd/timer
!!ALSA configuration files !!------------------------
!!User specific config file (~/.asoundrc)
#pcm.bluetooth { # type bluetooth # device 00:12:0E:06:C5:8A # profile "voice" #}
pcm.pulse { type pulse }
ctl.pulse { type pulse }
!!Aplay/Arecord output !!------------
APLAY
**** List of PLAYBACK Hardware Devices **** card 0: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 1: STAC92xx Digital [STAC92xx Digital] Subdevices: 1/1 Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices **** card 0: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1
!!Amixer output !!-------------
!!-------Mixer controls for card 0 [SB]
Card hw:0 'SB'/'HDA ATI SB at 0xfebfc000 irq 16' Mixer name : 'SigmaTel STAC9205' Components : 'HDA:838476a0,102801fc,00100204 HDA:14f12c06,14f1000f,00100000' Controls : 24 Simple ctrls : 16 Simple mixer control 'Master',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback 0 - 127 Mono: Playback 79 [62%] [-36.00dB] [on] Simple mixer control 'PCM',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 255 [100%] [0.00dB] Front Right: Playback 255 [100%] [0.00dB] Simple mixer control 'Front',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 127 Mono: Front Left: Playback 127 [100%] [0.00dB] [on] Front Right: Playback 127 [100%] [0.00dB] [on] Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958 Default PCM',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958 Playback Source',0 Capabilities: enum Items: 'Digital Playback' 'Analog Mux 1' 'Analog Mux 2' Item0: 'Digital Playback' Simple mixer control 'Capture',0 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 15 Front Left: Capture 12 [80%] [18.00dB] [on] Front Right: Capture 12 [80%] [18.00dB] [on] Simple mixer control 'Capture',1 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 15 Front Left: Capture 12 [80%] [18.00dB] [on] Front Right: Capture 12 [80%] [18.00dB] [on] Simple mixer control 'Analog Loopback',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Digital',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 120 Front Left: Capture 120 [100%] [30.00dB] Front Right: Capture 120 [100%] [30.00dB] Simple mixer control 'Digital Input Source',0 Capabilities: enum Items: 'Analog Inputs' 'Digital Mic 1' Item0: 'Analog Inputs' Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Mic' Item0: 'Mic' Simple mixer control 'Input Source',1 Capabilities: cenum Items: 'Mic' Item0: 'Mic' Simple mixer control 'Mux',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 4 Front Left: Capture 4 [100%] [40.00dB] Front Right: Capture 4 [100%] [40.00dB] Simple mixer control 'Mux',1 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 4 Front Left: Capture 4 [100%] [40.00dB] Front Right: Capture 4 [100%] [40.00dB] Simple mixer control 'PC Beep',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback 0 - 3 Mono: Playback 3 [100%] [0.00dB] [on]
!!Alsactl output !!-------------
--startcollapse-- state.SB { control.1 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic iface MIXER name 'Input Source' value Mic } control.2 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic iface MIXER name 'Input Source' index 1 value Mic } control.3 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Analog Loopback' value false } control.4 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' comment.dbmin 0 comment.dbmax 2250 iface MIXER name 'Capture Volume' value.0 12 value.1 12 } control.5 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' value.0 true value.1 true } control.6 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 15' comment.dbmin 0 comment.dbmax 2250 iface MIXER name 'Capture Volume' index 1 value.0 12 value.1 12 } control.7 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' index 1 value.0 true value.1 true } control.8 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 127' comment.dbmin -9525 comment.dbmax 0 iface MIXER name 'Front Playback Volume' value.0 127 value.1 127 } control.9 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Front Playback Switch' value.0 true value.1 true } control.10 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 3' comment.dbmin -1800 comment.dbmax 0 iface MIXER name 'PC Beep Playback Volume' value 3 } control.11 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'PC Beep Playback Switch' value true } control.12 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 4' comment.dbmin 0 comment.dbmax 4000 iface MIXER name 'Mux Capture Volume' value.0 4 value.1 4 } control.13 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 4' comment.dbmin 0 comment.dbmax 4000 iface MIXER name 'Mux Capture Volume' index 1 value.0 4 value.1 4 } control.14 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Analog Inputs' comment.item.1 'Digital Mic 1' iface MIXER name 'Digital Input Source' value 'Analog Inputs' } control.15 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Digital Playback' comment.item.1 'Analog Mux 1' comment.item.2 'Analog Mux 2' iface MIXER name 'IEC958 Playback Source' value 'Digital Playback' } control.16 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.17 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.18 { comment.access 'read write' comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Default' value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.19 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Playback Switch' value true } control.20 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Default PCM Playback Switch' value true } control.21 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 127' comment.dbmin -9525 comment.dbmax 0 iface MIXER name 'Master Playback Volume' value 79 } control.22 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Master Playback Switch' value true } control.23 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 255' comment.tlv '0000000100000008ffffec1400000014' comment.dbmin -5100 comment.dbmax 0 iface MIXER name 'PCM Playback Volume' value.0 255 value.1 255 } control.24 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 120' comment.tlv '0000000100000008fffff44800000032' comment.dbmin -3000 comment.dbmax 3000 iface MIXER name 'Digital Capture Volume' value.0 120 value.1 120 } } --endcollapse--
!!All Loaded Modules !!------------------
Module snd_hda_intel snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd soundcore af_packet fglrx ipv6 vboxdrv binfmt_misc loop vfat fat dm_mod cpufreq_ondemand cpufreq_conservative cpufreq_powersave powernow_k8 freq_table nvram i8k b44 ssb pcmcia uvcvideo pcmcia_core sdhci_pci video compat_ioctl32 mmc_block output mii i2c_piix4 ohci1394 videodev sdhci v4l1_compat ricoh_mmc mmc_core battery rtc_cmos ieee1394 wmi thermal ac i2c_core button processor k8temp dcdbas ati_agp sr_mod agpgart ndiswrapper shpchp pci_hotplug joydev evdev sg pata_atiixp ata_piix ahci libata dock sd_mod scsi_mod crc_t10dif ext3 jbd uhci_hcd ohci_hcd ehci_hcd usbcore
ALSA /home/manuel/tmp/alsa/alsa-driver/acore/../alsa-kernel/core/device.c:102: device free dc3fd81c (from stac92xx_free+0x56/0x90 [snd_hda_intel]), not found ALSA /home/manuel/tmp/alsa/alsa-driver/acore/../alsa-kernel/core/device.c:102: device free dc3fd828 (from stac92xx_free+0x56/0x90 [snd_hda_intel]), not found HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3312: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3316: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3320: hp_outs=1 (0xa/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3321: mono: mono_out=0x0 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3329: inputs: mic=0xb, fmic=0x0, line=0x0, fline=0x0, cd=0x0, aux=0x0 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2786: dac_nids=1 (0x10/0x0/0x0/0x0/0x0) input: HDA Digital PCBeep as /class/input/input18 input: HDA ATI SB at 0xfebfc000 irq 16 Mic at Ext Left Jack as /class/input/input19 input: HDA ATI SB at 0xfebfc000 irq 16 HP Out at Ext Left Jack as /class/input/input20 hda-intel: Invalid position buffer, using LPIB read method instead.
ALSA /home/manuel/tmp/alsa/alsa-driver/acore/../alsa-kernel/core/device.c:102: device free dc3fcc1c (from stac92xx_free+0x56/0x90 [snd_hda_intel]), not found ALSA /home/manuel/tmp/alsa/alsa-driver/acore/../alsa-kernel/core/device.c:102: device free dc3fcc28 (from stac92xx_free+0x56/0x90 [snd_hda_intel]), not found HDA Intel 0000:00:14.2: PCI INT A disabled HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:2596: hda_codec: model 'dell-m42' is selected ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3312: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3316: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3320: hp_outs=1 (0xa/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3321: mono: mono_out=0x0 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3329: inputs: mic=0xb, fmic=0x0, line=0x0, fline=0x0, cd=0x0, aux=0x0 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2786: dac_nids=1 (0x10/0x0/0x0/0x0/0x0) input: HDA Digital PCBeep as /class/input/input21 input: HDA ATI SB at 0xfebfc000 irq 16 Mic at Ext Left Jack as /class/input/input22 input: HDA ATI SB at 0xfebfc000 irq 16 HP Out at Ext Left Jack as /class/input/input23 hda-intel: Invalid position buffer, using LPIB read method instead.
At Fri, 14 Nov 2008 00:16:41 -0200, Manuel Naranjo wrote:
FWIW, I already merged the patches to my git tree. So the latest snapshot should have already this.
Takashi, Sorry for the delayed answer. I tried both by patching my yesterday snapshot, and by using the new snapshot, neither of them worked completly right.
Good part is that now I can decide if I either want to turn on or off the bloody beep. But result is the same on both cases, no matter if it's on or off it doesn't make a beep (which is pretty good for my ears, but not for the code purspose).
Could you check the debug messages with the patch below?
thanks,
Takashi
--- diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c index 3ecd7e7..6693602 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c @@ -37,6 +37,8 @@ static void snd_hda_generate_beep(struct work_struct *work) container_of(work, struct hda_beep, beep_work); struct hda_codec *codec = beep->codec;
+ printk(KERN_DEBUG "XXX GENERATE BEEP %d\n", beep->enabled); + if (!beep->enabled) return;
@@ -50,6 +52,8 @@ static int snd_hda_beep_event(struct input_dev *dev, unsigned int type, { struct hda_beep *beep = input_get_drvdata(dev);
+ printk(KERN_DEBUG "XXX BEEP EVENT code=0x%x, hz=%d\n", code, hz); + switch (code) { case SND_BELL: if (hz) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 58d832c..bb23c04 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -3100,6 +3100,7 @@ static int stac92xx_dig_beep_switch_put(struct snd_kcontrol *kcontrol, int enabled = !!ucontrol->value.integer.value[0]; if (codec->beep->enabled != enabled) { codec->beep->enabled = enabled; + printk(KERN_DEBUG "XXX BEEP SW %d\n", codec->beep->enabled); return 1; } return 0;
Could you check the debug messages with the patch below?
thanks,
Takash
Sure no problem. I'm not getting any GENERATE BEEP, or BEEP EVENT on dmesg, just the enable disable when I press the enable disable button. The switch reflects the correct state.
I've gone through the patch over and over, but I can't figure out why would it stop working. Shouldn't the switch alert the beep part about changes?
Also how should I test? I tried with 'echo -e "\a"', beep and the old way that was driving me crazy (pressing del in pidgin when there's no more text).
Anyway here's the log just in case: snd: Not freed snd_alloc_kmalloc = 18 snd: kmalloc(9) from f8ed1d9a not freed snd: kmalloc(9) from f8ed1d9a not freed HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:2596: hda_codec: model 'dell-m42' is selected ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3312: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3316: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3320: hp_outs=1 (0xa/0x0/0x0/0x0/0x0) ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3321: mono: mono_out=0x0 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/hda_codec.c:3329: inputs: mic=0xb, fmic=0x0, line=0x0, fline=0x0, cd=0x0, aux=0x0 ALSA /home/manuel/tmp/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2786: dac_nids=1 (0x10/0x0/0x0/0x0/0x0) input: HDA Digital PCBeep as /class/input/input18 input: HDA ATI SB at 0xfebfc000 irq 16 Mic at Ext Left Jack as /class/input/input19 input: HDA ATI SB at 0xfebfc000 irq 16 HP Out at Ext Left Jack as /class/input/input20 hda-intel: Invalid position buffer, using LPIB read method instead. XXX BEEP SW 0 XXX BEEP SW 1
participants (4)
-
Jaroslav Kysela
-
Manuel Naranjo
-
Ozan Çağlayan
-
Takashi Iwai