[Bug 282588] [i2c] ThinkBook 6G touchpad unrecognized

[email protected]
Newsgroups gmane.os.freebsd.bugs
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282588

--- Comment #2 from Rodrigo Osorio <[email protected]> ---
I continue the investigation on this issue with Claude LLM
and that's what he discovers:

The motherboard supports several touchpad models (Synaptics, Elan, Cirque,
Focaltech, Goodix).
Consequently, the firmware defers the selection until runtime:
the _INI method queries the embedded controller (EC),
determines the actual model installed, and then writes
the correct _HID and I²C address to the namespace. 

If the _INI method does not complete execution,
_HID remains XXXX0000 and BADR remains zero.
This corresponds exactly to the symptom.

There is no driver issue here, but a wrong ECDT Namepath

```
devinfo -v | grep -i -B2 ELAN
        ig4iic0 <Intel Alder Lake-P I2C Controller-0> pnpinfo vendor=0x8086
device=0x51e8 subvendor=0x17aa subdevice=0x384b class=0x0c8000 at slot=21
function=0 dbsf=pci0:0:21:0 handle=\_SB_.PC00.I2C0
          iicbus14 <Philips I2C bus (ACPI-hinted)>
            iichid0 <ELAN06FA:00 04F3:327E I2C HID device> pnpinfo
_HID=ELAN06FA _UID=0 _CID=PNP0C50 at addr=0x15 handle=\_SB_.PC00.I2C0.TPD0
              hidbus4 <HID bus>
                hms1 <ELAN06FA:00 04F3:327E Mouse> pnpinfo page=0x0001
usage=0x0002 bus=0x18 vendor=0x04f3 product=0x327e version=0x0004 _HID=ELAN06FA
at index=0
                unknown pnpinfo page=0xff00 usage=0x0001 bus=0x18 vendor=0x04f3
product=0x327e version=0x0004 _HID=ELAN06FA at index=1
                hmt0 <ELAN06FA:00 04F3:327E TouchPad> pnpinfo page=0x000d
usage=0x0005 bus=0x18 vendor=0x04f3 product=0x327e version=0x0004 _HID=ELAN06FA
at index=2
                hconf0 <ELAN06FA:00 04F3:327E Configuration> pnpinfo
page=0x000d usage=0x000e bus=0x18 vendor=0x04f3 product=0x327e version=0x0004
_HID=ELAN06FA at index=3
```

```
sudo i2c -f /dev/iic14 -s -v
Scanning I2C devices on /dev/iic14:
15
```

Dumping the ECDT table

```
sudo acpidump -b -n ECDT && iasl -d ecdt.dat
 grep Namepath ecdt.dsl
Namepath : "_SB.PC00.LPCB.EC0"
```

The initial \ is missing from the Namepath.

I was able to make it work on my computer using a the following sequence
```
sudo kenv acpiprobe.run_ini=1
sudo kldload ./acpiprobe.ko    # custom module who execute
AcpiEvaluateObject(TPD0, "_INI")
sudo kldunload acpiprobe && sudo kenv -u acpiprobe.run_ini
sudo kldunload ig4 && sudo kldload ig4
```

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.