HM1092 IR sensor driver — probes but no MIPI data (need I2C trace from Windows)
- Dominant language
- C
- Stars
- 15
- Forks
- 34
- Avg merge
- 21h 11m
- Merged PRs (30d)
- 1
Description
## Hardware
- Dell XPS 16 (2026, Panther Lake)
- ACPI: `HIMX1092:00` at `\_SB_.LNK0`
- I2C address: 0x24 on USBIO bus (Synaptics SVP7500)
- CSI-2 port 2, 1 lane
- Chip ID: 0x1091 (confirmed via I2C read)
- CVS SoC: INTC10E1 (Synaptics) at I2C 0x76
## What works
- Custom V4L2 sensor driver probes successfully
- Patched `ipu-bridge` adds HIMX1092 to `ipu_supported_sensors[]`
- Patched INT3472 handles GPIO type 0x02 (IR flood LED) and adds SSDB `controllogicid` fallback for USBIO platforms where `_DEP` references non-existent `\_SB.PC00.I2Cx`
- Clock enabled (19.2 MHz from INT3472:00)
- CSI-2 clock lane active (`PHY_RX = 0x00010000`)
- 60 register init sequence extracted from Dell Windows `hm1092.sys` binary (offset 0x26B34 in .rdata)
## What doesn't work
- CSI-2 data lane stays in stop state (`PHY_STOPSTATE` data bit = 1)
- `PHY_CAL = 0x00000000` (HS calibration never completes)
- No frame data despite `STREAMON` succeeding
- `stream stop time out` in ISYS firmware
## Root cause analysis
The Synaptics CVS SoC (INTC10E1, I2C address 0x76) sits in the MIPI data path between sensor and IPU7. Its device capability `0xD200` has `HOST_MIPI_CONFIG_REQUIRED` (bit 15) set. The Windows `Vision.sys` driver sends `HOST_SET_MIPI_CONFIG` (command 0x0830) with **176 bytes** of config data in an unknown format. Without this config, the CVS blocks the data lane.
The `intel_cvs` Linux driver (`intel/vision-drivers`) handles I2C ownership transfer but does NOT send `HOST_SET_MIPI_CONFIG`. We added it but the data format is unknown — Intel IVSC uses a 16-byte `csi_link_cfg` structure but Synaptics CVS protocol v2.2 appears to use a different 176-byte format.
## Request
If anyone has a Dell XPS/Latitude/Pro with Panther Lake running Windows, a **USB I2C capture** (USBPcap + Wireshark) during IR camera startup would provide the exact CVS MIPI config data. Steps:
1. Install [USBPcap](https://desowin.org/usbpcap/)
2. Capture the USB bus with Synaptics device (`06cb:0701`)
3. Open Camera app or trigger Windows Hello
4. Stop capture, share the `.pcap` file
Check Device Manager → System → "Camera Sensor HM1092" to confirm your laptop has it.
## Patches developed
1. `int3472-discrete.c` — GPIO type 0x02 (IR flood/strobe LED) mapped to sensor as `"ir-led"` GPIO
2. `int3472-common.c` — SSDB `controllogicid` fallback: walks ACPI namespace to find sensor when `acpi_dev_get_next_consumer_dev()` fails (broken `_DEP` on USBIO platforms)
3. `ipu-bridge.c` — `IPU_SENSOR_CONFIG("HIMX1092", 1, 360960000)` added to `ipu_supported_sensors[]`
4. `hm1092.c` — V4L2 sensor driver with clock enable, regulator support, and Windows-extracted 60-register init sequence
## Relevant files
- Windows driver: `Intel-2D-Imaging-USB-IO-Vision-Driver-for-Camera` from Dell support (contains `hm1092.sys` and `Vision.sys`)
- CVS driver: https://github.com/intel/vision-drivers
- Sensor datasheet: NDA (Himax HM1092, 1280x720 NIR, 1-lane CSI-2)
## System info
- Kernel: 7.0.0-rc7-3-cachyos-rc
- libcamera: custom pipeline handler for IPU7
- CachyOS (Arch-based)
Contributor guide
Assessment
This issue has not been assessed yet.