Touch screen shifted position , USB driver issue?

I have this issue that when plug in the touch screen it will fall into this 4 possible outcome. 1) works perfectly 2) cursor shift to left for small range pixels 3) cursor shift to left more than half the screen 4) cursor shift left out of the screen.

I have narrow down it’s not the xinput issue. By using xinput_calibrator, I see the resolution does change when it’s in good or bad state.

I have two jetson XAVIER NX boards one is dev kit from nvidia, second is from brand called LEETOP TECH. Software wise they both have identical image. Official Jetpack 4.6, Ubuntu 18.04. The issue always happen to the LEETOP NX by just unplug and replug the USB. The issue only can manually introduce to NVIDIA NX by unbind and bind USB ports.

I see the difference in USB controller manufacture.That LEETOP has Microchip Technology USB5744 and USB2744, And Nivdia say Generic, 4-Port USB 2.0 Hub, 4-Port USB 3.0 Hub

When a USB device is attached, data exchange happen at initial handshake to identify the device and capabilities. Is possible somehow this handshake has miss communication? Any tip on how to look into the issue and possible solution?

Please check if you see any error prints in dmesg when the issue happens. And may try to connect to a USB hub with external power supply and then connect to Xavier NX developer kit. See if the issue is not seen with external power supply.

Also would like to suggest check with vendor of the touch panel. To make sure the driver is correctly enabled.

The dmesg didn’t show any error when this issue happens.
And dmesg is the same when in good state and bad state:

[11176.768969] usb 1-2.1: new full-speed USB device number 59 using tegra-xusb
[11176.790415] usb 1-2.1: New USB device found, idVendor=27c0, idProduct=0818
[11176.790425] usb 1-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[11176.796009] input: HID 27c0:0818 as /devices/3610000.xhci/usb1/1-2/1-2.1/1-2.1:1.0/0003:27C0:0818.0029/input/input49
[11176.796482] hid-multitouch 0003:27C0:0818.0029: input,hidraw0: USB HID v1.10 Device [HID 27c0:0818] on usb-3610000.xhci-2.1/input0
[11176.799152] hid-generic 0003:27C0:0818.002A: hidraw1: USB HID v1.10 Device [HID 27c0:0818] on usb-3610000.xhci-2.1/input1

However interesting found that when an external powered USB hub were used:

  1. in good state, unplug and replug the cable between power hub and jetson NX, will always stay in good state.
  2. in bad state, unplug and replug the cable between power hub and jetson NX, will alway stay in bad state.
  3. in good or bad state, unplug and replug the cable between power hub and touch screen, will result in random outcomes that could be good or bad state.

This enforces the speculation that when touch screen boot up the handshake is not stable. When touch screen already boot up, handshake is stable-ly good or stable-ly bad.