Public bug reported:

**Package:** `linux` / `linux-qcom-x1e` DTB `qcom/x1e80100-dell-
latitude-7455.dtb` (and `-el2`). The node matches mainline
`arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts`, so this may
be better as a linux-arm-msm discussion. File here first and ask.

**Summary**

On this unit the touchscreen works in Windows and in BIOS setup, but
never appears in Linux. The DT declares the controller at I2C address
0x09 with the HID descriptor at register 0x0001. The controller on this
unit answers at 0x34 with its HID descriptor at register 0x0000.
Changing only those values makes touch work. This is one unit. The
controller's marketing name is unknown, and so is how many 7455s ship
with it. It may be a panel or controller variant that the DT doesn't
describe.

**Shipped DT (checked 2026-10-11)**

Identical in `7.3.0-9-generic` (`x1e80100-dell-latitude-7455.dtb`) and
`7.3.0-21-qcom-x1e` (`x1e80100-dell-latitude-7455.dtb` and `-el2.dtb`):

```dts
i2c@a80000 {
        touchscreen@9 {
                reg = <0x09>;
                hid-descr-addr = <0x01>;
```

**Observed**

* No touchscreen in `/proc/bus/input/devices`. Client `2-0009` (OF path 
`/soc@0/geniqup@ac0000/i2c@a80000/touchscreen@9`) exists but is unbound. The 
`i2c_hid_of ... supply vdd not found, using dummy regulator` message also 
appears for the working keyboard and touchpad, so it is not the cause.
* One sysfs bind of `2-0009` with dynamic debug on: `nothing at this address: 
-6` (ENXIO) before any descriptor fetch.
* A direct 30-byte descriptor read at 0x09, register 0x0001, via I2C_RDWR also 
fails with ENXIO.
* One-byte read at each non-reserved address 0x03 to 0x77, on this adapter 
only, after checking it had no bound or unexpected clients. Only 0x34 responds. 
All 116 others, including 0x09, return ENXIO.
* Bounded HID-over-I2C reads at 0x34 (no reset, set-power or feature commands):
  * Register 0x0001: invalid descriptor (length and version 0).
  * Register 0x0000: valid descriptor `1e 00 00 01 f3 02 21 00 24 00 42 00 25 
00 44 00 22 00 23 00 d2 1f 11 b0 02 01 00 00 00 00`. VID:PID `1FD2:B011`, 
version `0x0102`, report descriptor length 755 at register 0x0021.
  * The report descriptor read cleanly: top-level collection Digitizer (0x0D) / 
Touch Screen (0x04), plus a vendor collection 0xFF00/0x01.

**Workaround (tested)**

Stock DTB with only these lines changed. Interrupts, pinctrl and
supplies are unchanged:

```diff
-touchscreen@9 {
-       reg = <0x09>;
-       hid-descr-addr = <0x01>;
+touchscreen@34 {
+       reg = <0x34>;
+       hid-descr-addr = <0x00>;
```

The corrected DTB is loaded through a GRUB `devicetree` entry, with 
`stubble.dtb_override=false` on the command line (see the note below). Result:
* Live tree shows `touchscreen@34`.
* `i2c_hid_of` binds `2-0034`, and `hid-multitouch` registers `hid-over-i2c 
1FD2:B011`.
* The owner confirms finger input works.
* Survived short deep suspends (2026-10-10).
* Survived plain reboots as the default entry on 2026-10-11, after a clean 
reinstall, on 7.3.0-21-qcom-x1e, under GNOME and then COSMIC.

**Not verified:** multitouch, edge and corner mapping, behaviour on
other 7455 units, IRQ trace. The `LXST2021` description and the
`29BD:1103` ID seen in upstream discussions come from other machines.
Neither was observed here.

**Request**

A DT variant for this controller, or a detection approach that handles
both addresses. Happy to test kernels or DTBs.

**Related usability note: Stubble replaces a GRUB-supplied DT by
default**

The first test of the corrected DTB failed silently. GRUB had the
`devicetree` line and the entry was confirmed selected, yet the live
tree still showed `touchscreen@9`. `objdump -h
/boot/vmlinuz-7.3.0-21-qcom-x1e` shows a PE image with 41 `.dtbauto`
sections, and its strings include `stubble.dtb_override=`. The upstream
Stubble docs (https://github.com/ubuntu/stubble) say Stubble replaces a
supplied DT with an embedded match by compatible string, by default.
Adding `stubble.dtb_override=false` let the corrected DT reach the
kernel. That replacement happened on the failed boot is inferred from
this, not traced. Suggest documenting the option wherever DT testing or
`devicetree` in GRUB is described. This could be split into its own low-
priority bug against the kernel packaging if preferred.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2171352

Title:
  Latitude 7455 device tree: touchscreen at 0x34 / HID descriptor
  register 0 on this unit, DT says 0x09 / 1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2171352/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to