At Tue, 3 Nov 2009 12:43:17 +0100 (CET), Jaroslav Kysela wrote:
On Tue, 3 Nov 2009, Takashi Iwai wrote:
At Tue, 3 Nov 2009 12:01:57 +0100 (CET), Jaroslav Kysela wrote:
On Fri, 30 Oct 2009, Takashi Iwai wrote:
At Thu, 22 Oct 2009 17:50:10 +0200 (CEST), Jaroslav Kysela wrote:
Hi,
I'm changing the behaviour of Beep / PC Beep controls for HDA drivers (comments?):
http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=d605dbeed1b102...
Well, IMHO, the fundamental problem is that there is no logic to select the beep device in the input layer. A few line of code to drivers/char/keyboard.c would do that.
Yes, it would be good to have possibility to configure which input device will receive beep events.
I had even a patch somewhere... I need to dig down my archive.
Regarding your change: I'm afraid that too frequent attach/detach calls aren't good.
What's too frequent? The attach/detach is called only when Beep mute control is toggled. I don't think that user will toggle this control as more as once in a normal system setup. The default value is "muted" (no registration) anyway.
Heh, you can't expect how odd things users would do. I can foresee this too frequent toggling can happen simply, e.g. key auto-repeating on a mute button.
I would really like to have the HDA Beep registration to input layer configurable at runtime. The control layer seems good for this job. I can eventually add one more control with name like "Beep Register Switch", but the "Beep Playback Switch" does this job well.
Well, the biggest problem in your patch is that its re-register the input device. When you watch the kernel message, you'll find that the new input device is added at each time you toggle the beep switch, input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input6 input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input7 ... With frequent toggles, you can reach to a very high number very easily.
I don't see a problem. If you find the behaviour too risky, we can limit the register/unregister calls in time. Like one register call in one second.
Oh no, that'd be very strange behavior as an mixer element.
Also, note that there are hardwares that still beep even when the beep volume is set to zero. So, you may get a situation that you can't disable beep tone.
??? If you don't set HDA codec frequency registers, then the HDA digital beep cannot be generated.
It's a scenario like below:
- "Beep Playback Switch" off -> pcspr is activated; no way to control the beep volume -> beep always heard
Users can still disable beeps using standard I/O layer (as described in patch comment):
The user can easy disable all beeps using 'setterm -blength 0' or 'xset b off' command.
OK, setterm seems working.
I thought there is an escape sequence to change the beep length, but maybe not. I remember the esc sequence to change the beep frequency, though...
thanks,
Takashi