* Re: QUANTA touchscreen controller integrated in HP2310ti no longer recognised (regression in 3.5 and later as compared to 3.3)
[not found] <1700293.Y8yBuPUG33@f17simon>
@ 2012-08-21 19:06 ` Henrik Rydberg
2012-08-22 9:00 ` Simon Farnsworth
0 siblings, 1 reply; 4+ messages in thread
From: Henrik Rydberg @ 2012-08-21 19:06 UTC (permalink / raw)
To: Simon Farnsworth
Cc: linux-input, Benjamin Tissoires, Benjamin Tissoires, Jiri Kosina
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?
> Any ideas on the best way to resolve this regression?
What does 'cat /sys/bus/hid/devices/0003:0408:3001.0001/modalias' say?
The patch below ought to be enough to make it work, although it is
still unclear why it is needed.
Thanks,
Henrik
---
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index bd4bc3c..2b775c3 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -963,7 +963,7 @@ static const struct hid_device_id mt_devices[] = {
MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
{ .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
- MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
+ HID_USB_DEVICE(USB_VENDOR_ID_QUANTA,
USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001) },
{ .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: QUANTA touchscreen controller integrated in HP2310ti no longer recognised (regression in 3.5 and later as compared to 3.3)
2012-08-21 19:06 ` QUANTA touchscreen controller integrated in HP2310ti no longer recognised (regression in 3.5 and later as compared to 3.3) Henrik Rydberg
@ 2012-08-22 9:00 ` Simon Farnsworth
2012-08-22 9:40 ` Simon Farnsworth
2012-08-22 17:04 ` Henrik Rydberg
0 siblings, 2 replies; 4+ messages in thread
From: Simon Farnsworth @ 2012-08-22 9:00 UTC (permalink / raw)
To: Henrik Rydberg
Cc: linux-input, Benjamin Tissoires, Benjamin Tissoires, Jiri Kosina
[-- Attachment #1: Type: text/plain, Size: 2156 bytes --]
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
If I've understood hid-code.c correctly, this means that
hdev->group == HID_GROUP_ANY, implying that neither hid_scan_usage nor
hid_scan_report have run.
>
> The patch below ought to be enough to make it work, although it is
> still unclear why it is needed.
>
I'd like to get to the bottom of why this patch is needed - the patch I
reverted covered 71 touchscreen controllers, and the fact that hdev->group is
set to HID_GROUP_ANY worries me - I'm concerned that there's something
deeper wrong that's causing the USB HID core to not be able to get the report
descriptor reliably.
> Thanks,
> Henrik
>
> ---
>
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index bd4bc3c..2b775c3 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -963,7 +963,7 @@ static const struct hid_device_id mt_devices[] = {
> MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
> USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
> { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
> - MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
> + HID_USB_DEVICE(USB_VENDOR_ID_QUANTA,
> USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001) },
> { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
> MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
--
Simon Farnsworth
Software Engineer
ONELAN Ltd
http://www.onelan.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: QUANTA touchscreen controller integrated in HP2310ti no longer recognised (regression in 3.5 and later as compared to 3.3)
2012-08-22 9:00 ` Simon Farnsworth
@ 2012-08-22 9:40 ` Simon Farnsworth
2012-08-22 17:04 ` Henrik Rydberg
1 sibling, 0 replies; 4+ messages in thread
From: Simon Farnsworth @ 2012-08-22 9:40 UTC (permalink / raw)
To: Henrik Rydberg
Cc: linux-input, Benjamin Tissoires, Benjamin Tissoires, Jiri Kosina
[-- Attachment #1: Type: text/plain, Size: 1531 bytes --]
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 #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: QUANTA touchscreen controller integrated in HP2310ti no longer recognised (regression in 3.5 and later as compared to 3.3)
2012-08-22 9:00 ` Simon Farnsworth
2012-08-22 9:40 ` Simon Farnsworth
@ 2012-08-22 17:04 ` Henrik Rydberg
1 sibling, 0 replies; 4+ messages in thread
From: Henrik Rydberg @ 2012-08-22 17:04 UTC (permalink / raw)
To: Simon Farnsworth
Cc: Henrik Rydberg, linux-input, Benjamin Tissoires,
Benjamin Tissoires, Jiri Kosina
> > 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
>
> If I've understood hid-code.c correctly, this means that
> hdev->group == HID_GROUP_ANY, implying that neither hid_scan_usage nor
> hid_scan_report have run.
Correct, and your subsequent patch is spot on.
Thanks,
Henrik
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-08-22 16:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1700293.Y8yBuPUG33@f17simon>
2012-08-21 19:06 ` QUANTA touchscreen controller integrated in HP2310ti no longer recognised (regression in 3.5 and later as compared to 3.3) Henrik Rydberg
2012-08-22 9:00 ` Simon Farnsworth
2012-08-22 9:40 ` Simon Farnsworth
2012-08-22 17:04 ` Henrik Rydberg
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.