intel / intel/ipu7-drivers

[Lunar Lake] Protocol Error (-71) and I2C Speed Bottleneck on OV08X40 via Synaptics SVP7500 Bridge

Open
#51 12 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
15
Forks
34
Avg merge
21h 11m
Merged PRs (30d)
1

Description

## Hardware Environment
* **System:** Dell Lunar Lake (Core Ultra Series 2 / Ultra 7 268V)
* **Bridge:** Synaptics SVP7500 (USB-to-I2C/MIPI Bridge)
* **Sensor:** OmniVision OV08X40 (ID: `OVTI08F4:00`)
* **Driver:** `intel_ipu7` (Staging) / `i2c_usbio` / `ivsc-csi`

## Issue Description
Attempts to stream from the OV08X40 sensor result in a `Protocol error (-71)` at `STREAMON`. Following the error, the Synaptics USB bridge appears to reset or latch-up, causing the device nodes to disappear (`No such device`) until a full cold boot is performed.

## New Findings: IVSC & Firmware Gaps
Investigation with Secure Boot disabled confirms that the **Intel Vision Sensing Controller (IVSC)** stack is present but non-functional due to missing sensor-specific firmware.

1. **Missing Firmware Blobs:** `/lib/firmware/intel/vsc/` contains firmware for other sensors but lacks `ivsc_pkg_ovti08x40_0.bin` and `ivsc_skucfg_ovti08x40_0_1.bin`.
2. **IVSC Idle State:** While `ivsc-csi` and `ivsc-ace` modules load, they fail to bind to the sensor, leaving it to bind directly to `intel_ipu7_isys`. This bypasses the secure handshake/authentication required by the hardware.

## Observed Critical Failures

### 1. I2C Clock Speed Cap (The "Smoking Gun")
The `usbio-i2c` bridge driver forces a downclock from 400kHz to 100kHz. This latency appears to prevent the sensor from being configured within the IPU7's MIPI timing window.

[17.229199] i2c_usbio.usbio-i2c usbio.usbio-i2c.0: Invalid speed 400000 adjusting to bus max 100000

2. MIPI Link Timeout / Protocol Error

Even with manual resolution alignment (3856x2176), the CSI-2 receiver times out:

[17.779903] intel_ipu7_isys.isys intel_ipu7.isys.40: bind ov08x40 17-0036 nlanes is 2 port is 0
[20681.798345] intel_ipu7_isys.isys intel_ipu7.isys.40: enable streams Intel IPU7 CSI2 0 failed with -71

3. Entity Mismatch (Resolution Padding)

The sensor defaults to 3856x2176, while the ISYS pipeline defaults to a 12MP or 1080p target, leading to initial Broken pipe errors before manual alignment via media-ctl.

4. Firmware/GPIO Bug

The driver fails to map the physical reset line via the USB bridge:
Plaintext

[17.123913] gpio_usbio.usbio-gpio usbio.usbio-gpio.0: [Firmware Bug]: GPIO 4 is not in FW pins bitmap

Steps to Reproduce

(Optional) Disable Secure Boot and manually modprobe ivsc-csi.

Align pipeline to sensor native output: media-ctl -d /dev/media0 -V '"Intel IPU7 CSI2 0":0 [fmt:SGRBG10_1X10/3856x2176]'

Attempt capture: v4l2-ctl -d /dev/video0 --stream-mmap --stream-count=1 --stream-to=test.raw

Result: VIDIOC_STREAMON returned -1 (Protocol error).

Analysis

The combination of a 100kHz I2C bottleneck on the Synaptics bridge and missing IVSC sensor firmware creates a fatal race condition. The sensor cannot transition to High-Speed MIPI mode fast enough to satisfy the IPU7's watchdog timer. Furthermore, the direct binding of the sensor to ISYS (bypassing the IVSC) likely leaves the MIPI physical lanes in a low-power or locked state.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.