On Wednesday 22 August 2012 10:00:12 Simon Farnsworth wrote: > On Tuesday 21 August 2012 21:06:26 Henrik Rydberg wrote: > > Hi Simon, > > > > > We're going through our collection of touch screens, making sure that they all > > > work with current kernels, and we've found one that doesn't work with today's > > > Linus master. > > > > > > lsusb describes the screen as: > > > Bus 006 Device 002: ID 0408:3001 Quanta Computer, Inc. Optical Touch Screen > > > > What about 0408:3008, does that one work? > > > I don't have a sample of 0408:3008 to try. > > > > Any ideas on the best way to resolve this regression? > > > > What does 'cat /sys/bus/hid/devices/0003:0408:3001.0001/modalias' say? > > It's the same whether or not I revert the patch: > > # cat /sys/bus/hid/devices/0003:0408:3001.0001/modalias > hid:b0003g0000v00000408p00003001 > A look at the code said that the only way this could happen is if hid_have_special_driver is set for this device, and no special driver claimed it. I've confirmed this by setting hid.ignore_special_devices to 1; it then works unpatched. The entry in the table is: { HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_PIXART_IMAGING_INC_OPTICAL_TOUCH_SCREEN) }, This matches the device I have, and causes the problem behaviour. It looks like the right thing to do is to audit the hid_have_special_driver table, and confirm that there is an in-kernel special driver for every device that has an entry. -- Simon Farnsworth Software Engineer ONELAN Ltd http://www.onelan.com
Attachment:
signature.asc
Description: This is a digitally signed message part.