diff options
| author | Please <please@forget.me.uk> | 2026-09-17 09:08:43 +0000 |
|---|---|---|
| committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2026-09-17 09:08:43 +0000 |
| commit | e75f61962ca47f0b0ae4aed89c8416e6544d9845 (patch) | |
| tree | 665432d21dc83794e121a88d86c8cb675ef4d3ef /include/lldb/Core/Communication.h | |
| parent | b9cee186b83ecb531a6d4b4421230acfd5314c16 (diff) | |
Intel LPSS I2C controllers enumerated through ACPI rather than PCI never
attach on Haswell and Broadwell, so every device behind those buses is
lost. On a Dell XPS 13 9343 that hides the I2C HID touchpad and leaves
only the PS/2 fallback, which the firmware does not restore after S3.
Three causes, all on the ACPI path:
Firmware may leave an LPSS function in D3, where its registers read as
all-ones and set_controller() fails with "controller error during
attach-1". Run _PS0 before mapping them. The PCI path does not need
this, which is why the gap went unnoticed.
INT33C2, INT33C3, INT3432 and INT3433 are Lynx Point-LP and Wildcat
Point-LP, which ig4_pci.c already classifies as IG4_HASWELL; the ACPI
path called everything but APMC0D0F an Atom SoC.
The functional clock stays gated until bit 0 of IG4_REG_CLK_PARMS is
set. Until then the controller accepts writes into the TX FIFO, never
drives the bus, raises no interrupts, and every transfer ends in
IIC_ETIMEOUT. Linux ungates the same bit in acpi_lpss.c. Doing it in
ig4iic_set_config() covers resume as well as attach.
With all three in place the touchpad attaches as iichid0/hmt1 with
multi-touch and survives suspend and resume.
PR: 298558
Tested by: Please (XPS 13 9343, Broadwell-U, 15.1-RELEASE-p3)
Reviewed by: wulf
MFC after: 1 week
Diffstat (limited to 'include/lldb/Core/Communication.h')
0 files changed, 0 insertions, 0 deletions
