which handlers should bind to a device

3 messages, 2 authors, 2011-03-11 · open the first message on its own page

which handlers should bind to a device

From: Oliver Neukum <hidden>
Date: 2011-03-11 15:24:39

Hi,

I have a set of USB speakers which also implement HID:

bDescriptorType        34 Report
          wDescriptorLength      59
          Report Descriptor: (length is 59)
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0x01 ] 1
                            Consumer Control
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0xe9 ] 233
                            Volume Increment
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0xea ] 234
                            Volume Decrement
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0xe2 ] 226
                            Mute
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x42 ] 66
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State Null_State Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Unassigned
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Unassigned
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Output, data= [ 0x06 ] 6
                            Data Variable Relative No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x06 ] 6
            Item(Main  ): Output, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none

According to the Usage Page the device is not a keyboard, yet the keyboard handler
binds. Is this really sensible?
I: Bus=0003 Vendor=0471 Product=0104 Version=0100
N: Name="Philips Electronics Philips USB Digital Speaker System"
P: Phys=usb-0000:00:1d.0-1/input2
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/input/input15
U: Uniq=
H: Handlers=kbd event11 
B: PROP=0
B: EV=13
B: KEY=e000000000000 0
B: MSC=10

	Regards
		Oliver

Re: which handlers should bind to a device

From: Bastien Nocera <hadess@hadess.net>
Date: 2011-03-11 15:39:07

On Fri, 2011-03-11 at 16:24 +0100, Oliver Neukum wrote:
Hi,

I have a set of USB speakers which also implement HID:
<snip>
According to the Usage Page the device is not a keyboard, yet the keyboard handler
binds. Is this really sensible?
I: Bus=0003 Vendor=0471 Product=0104 Version=0100
N: Name="Philips Electronics Philips USB Digital Speaker System"
P: Phys=usb-0000:00:1d.0-1/input2
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/input/input15
U: Uniq=
H: Handlers=kbd event11 
B: PROP=0
B: EV=13
B: KEY=e000000000000 0
B: MSC=10
As long as it's not the only thing that binds. We're just missing udev
level information to be able to match the audio device and the sound
device, so that pressing the buttons would change the volume on that
device. See:
https://bugzilla.gnome.org/show_bug.cgi?id=340720

Cheers

Re: which handlers should bind to a device

From: Oliver Neukum <hidden>
Date: 2011-03-11 15:43:19

Am Freitag, 11. März 2011, 16:39:02 schrieb Bastien Nocera:
On Fri, 2011-03-11 at 16:24 +0100, Oliver Neukum wrote:
quoted
Hi,

I have a set of USB speakers which also implement HID:
<snip>
quoted
According to the Usage Page the device is not a keyboard, yet the keyboard handler
binds. Is this really sensible?
I: Bus=0003 Vendor=0471 Product=0104 Version=0100
N: Name="Philips Electronics Philips USB Digital Speaker System"
P: Phys=usb-0000:00:1d.0-1/input2
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/input/input15
U: Uniq=
H: Handlers=kbd event11 
B: PROP=0
B: EV=13
B: KEY=e000000000000 0
B: MSC=10
As long as it's not the only thing that binds. We're just missing udev
level information to be able to match the audio device and the sound
device, so that pressing the buttons would change the volume on that
device. See:
https://bugzilla.gnome.org/show_bug.cgi?id=340720
Well then it would seem than binding to only an event interface should
make things easier for X.

	Regards
		Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help