NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/57446: The uts driver reports "touchscreen has no range report" and fails to attach device
>Number: 57446
>Category: kern
>Synopsis: The uts driver reports "touchscreen has no range report" and fails to attach device
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon May 29 22:25:00 +0000 2023
>Originator: Dave Tyson
>Release: NetBSD 10.0_BETA
>Organization:
Anduin
>Environment:
System: NetBSD samsung.anduin.org.uk 10.0_BETA NetBSD 10.0_BETA (GENERIC) #2: Mon May 29 21:57:30 BST 2023 root%samsung.anduin.org.uk@localhost:/usr/obj/amd64/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
This problem seems to affect various touchscreens on different devices. The
test systems were a Samsung DP700A3D all-in-one PC i(amd64) and a Raspberry Pi Zero 2 W
with a 7" Chinese HDMI displayi (arm7).
The issue is that the uts driver tries to attach the touch controller and fails with
a message "touchscreen has no range report". The device does not attach correctly
>How-To-Repeat:
Boot the hardware with the appropriate NetBSD-10 BETA kernel,
note that the device fails to attach.
For the amd64 system booting with uts disabled leads to the device being visible
as a uhid and the descriptors are listed below:
[ 5.215221] uhidev3 at uhub5 port 6 configuration 1 interface 0
[ 5.215221] uhidev3: ILITEK (0x222a) ILITEK Multi-Touch (0x0011), rev 1.10/0.02, addr 6, iclass 3/0
[ 5.215221] uhidev3: 6 report ids
[ 5.215221] uhid2 at uhidev3 reportid 2: input=0, output=0, feature=1
[ 5.215221] uhid3 at uhidev3 reportid 3: input=63, output=63, feature=0
[ 5.215221] uhid4 at uhidev3 reportid 4: input=55, output=0, feature=0
[ 5.215221] uhid5 at uhidev3 reportid 6: input=0, output=0, feature=256
dtyson(samsung)dtyson$ usbhidctl -f /dev/uhid2 -v -r
Report descriptor:
Feature size=8 count=1 page=Digitizer usage=Contact_Count_Maximum, logical range 0..10, physical range 0..2932
Total input size 0 bytes
Total output size 0 bytes
Total feature size 1 bytes
dtyson(samsung)dtyson$ usbhidctl -f /dev/uhid3 -v -r
Report descriptor:
Collection page=Microsoft usage=0x0001
Input size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
Input size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
--- lots of duplicate lines deleted ---
Input size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
Input size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
Output size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
Output size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
--- lots of duplicate lines deleted ---
Output size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
Output size=8 count=1 page=Microsoft usage=0x0001, logical range 0..255, physical range 0..2932
End collection
Total input size 63 bytes
Total output size 63 bytes
Total feature size 0 bytes
dtyson(samsung)dtyson$ usbhidctl -f /dev/uhid4 -v -r
Report descriptor:
Collection page=Digitizer usage=Touch_Screen
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=6 count=1 page=Digitizer usage=Contact_Identifier, logical range 0..63, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=1 count=1 Const page=0x0000 usage=0x0000, logical range 0..1, physical range 0..2932, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range 0..11388, physical range 0..5212, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range 0..6272, physical range 0..2932, unit=0x11 exp=-2
End collection
Input size=32 count=1 page=Digitizer usage=0x0056, logical range 0..2147483647, physical range 0..2932
Input size=8 count=1 page=Digitizer usage=Contact_Count, logical range 0..127, physical range 0..2932
Total input size 55 bytes
Total output size 0 bytes
Total feature size 0 bytes
dtyson(samsung)dtyson$ usbhidctl -f /dev/uhid5 -v -r
Report descriptor:
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..2932
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..2932
--- lots of duplicate lines deleted ---
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..2932
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..2932
usbhidctl: Excessive collection ends
In the case of the RPI system a custom kernel with the uts device disabled resulted in:
[ 2.232302] uhidev0: wch.cn (0x1a86) USB2IIC_CTP_CONTROL (0xe5e3),
rev 0.01/0.00, addr 2, iclass 3/0
[ 2.242305] uhidev0: 3 report ids
[ 2.252305] uhid0 at uhidev0 reportid 1: input=51, output=0,
feature=0
[ 2.252305] uhid1 at uhidev0 reportid 2: input=0, output=0,
feature=1
[ 2.262308] uhid2 at uhidev0 reportid 3: input=0, output=0,
feature=256
armv7# usbhidctl -f /dev/uhid0 -v -r
Report descriptor:
Collection page=Digitizer usage=Touch_Screen
Collection page=Digitizer usage=Finger
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range
0..1
Input size=1 count=7 Const page=0x0000 usage=0x0000, logical range
0..1
Input size=8 count=1 page=Digitizer usage=Contact_Identifier, logical
range 0..1
Input size=16 count=1 page=Generic_Desktop usage=X, logical range
0..2048, physical range 0..2169, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Digitizer usage=Width, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=1 count=7 Const page=0x0000 usage=0x0000, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=8 count=1 page=Digitizer usage=Contact_Identifier, logical
range 0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range
0..2048, physical range 0..2169, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Digitizer usage=Width, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=1 count=7 Const page=0x0000 usage=0x0000, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=8 count=1 page=Digitizer usage=Contact_Identifier, logical
range 0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range
0..2048, physical range 0..2169, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Digitizer usage=Width, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=1 count=7 Const page=0x0000 usage=0x0000, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=8 count=1 page=Digitizer usage=Contact_Identifier, logical
range 0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range
0..2048, physical range 0..2169, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Digitizer usage=Width, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=1 count=7 Const page=0x0000 usage=0x0000, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=8 count=1 page=Digitizer usage=Contact_Identifier, logical
range 0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range
0..2048, physical range 0..2169, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Digitizer usage=Width, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
End collection
Collection page=Digitizer usage=Finger
Input size=1 count=1 page=Digitizer usage=Tip_Switch, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=1 count=7 Const page=0x0000 usage=0x0000, logical range
0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=8 count=1 page=Digitizer usage=Contact_Identifier, logical
range 0..1, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=X, logical range
0..2048, physical range 0..2169, unit=0x11 exp=-2
Input size=16 count=1 page=Generic_Desktop usage=Y, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
Input size=16 count=1 page=Digitizer usage=Width, logical range
0..2048, physical range 0..1356, unit=0x11 exp=-2
End collection
Input size=16 count=1 page=Digitizer usage=0x0056, logical range
0..65535, physical range 0..1356, unit=0x11 exp=-2
Input size=8 count=1 page=Digitizer usage=Contact_Count, logical
range 0..127, physical range 0..1356, unit=0x11 exp=-2
Total input size 51 bytes
Total output size 0 bytes
Total feature size 0 bytes
armv7# usbhidctl -f /dev/uhid1 -v -r
Report descriptor:
Feature size=8 count=1 page=Digitizer usage=Contact_Count_Maximum,
logical range 0..10, physical range 0..1356, unit=0x11 exp=-2
Total input size 0 bytes
Total output size 0 bytes
Total feature size 1 bytes
armv7# usbhidctl -f /dev/uhid2 -v -r
Report descriptor:
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..1356, unit=0x11 exp=-2
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..1356, unit=0x11 exp=-2
---- lots of identical lines deleted ----
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..1356, unit=0x11 exp=-2
Feature size=8 count=1 page=Microsoft usage=0x00c5, logical range 0..255, physical range 0..1356, unit=0x11 exp=-2
usbhidctl: Excessive collection ends
>Fix:
Following a suggestion from Michael van Elst <mlelstvr%serpens.de@localhost> I compiled a patched version
if uts.c with the error return commented out:
diff -p -u -r1.16 uts.c
--- uts.c 10 May 2023 00:12:44 -0000 1.16
+++ uts.c 29 May 2023 08:38:50 -0000
@@ -215,7 +215,7 @@ uts_attach(device_t parent, device_t sel
} else {
aprint_error_dev(sc->sc_dev,
"touchscreen has no range report\n");
- return;
+ // return;
}
}
This may fix the problems on both systems. I have only been able to fully test the amd64 system
so far, but can report that the touch screen seems to work perfectly - the only downside being the standard mouse seems a bit slower than normal. I think this just needs a tweak to the X config.
On the RPI system the wsmouse device is associated with the touchscreen and X comes up OK, but testing is awkward as I only have a serial console. I have not been able to move the cursor or select items in the default window manager, but further testing will need an adaptor to connect the touchscreen to s usb hub.
>Unformatted:
Source dated approx 16th May 2023 with minor local changes to get
the RPI zero 2 w wifi to attach
Home |
Main Index |
Thread Index |
Old Index