Bell confusion with master vs. slave devices in Xorg 1.7.6
Mark Hills
mark at pogo.org.uk
Sat Apr 17 13:53:27 PDT 2010
On Fri, 16 Apr 2010, Alan Coopersmith wrote:
> Several users have complained to me about their X server bells on
> recent builds of OpenSolaris - definitely with Xorg 1.7.x releases,
> I don't know if it affected Xorg 1.6.x before that as well.
>
> The complaints I've gotten are two-fold: the bell volume is
> uncontrollable, and when the beep sounds, it plays twice
> (stuck at the loud volume).
>
> It looks like we're seeing this because unlike the evdev driver,
> the kbd driver has a BellProc set to sound the keyboard device
> bell (if present - the Solaris kernel redirects to an audio
> device if not).
>
> When the keyboard gets associated with the Virtual Core Keyboard,
> the DeepCopyDeviceClasses copies the BellProc pointer to the
> Virtual Core Keyboard. When an XBell request comes in, the
> ProcBell function in dix/devices.c loops through all the devices,
> and calls the BellProc in the master and any associated slaves,
> resulting in the KbdBell() function from kbd_drv getting called
> twice, once off the Virtual Core Keyboard and once off the slave
> representing the physical keyboard.
I think this relates to a mail I posted recently. I don't claim to
understand the details, but maybe you will find it useful:
http://lists.x.org/archives/xorg-devel/2010-April/006860.html
More information about the xorg-devel
mailing list