Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Out-of-tree ISYS driver fails to discover sensors on kernel 7.0.x (Lunar Lake / IPU7): ipu_bridge INT343E software node not reachable from ISYS fwnode graph

Aperta
#79 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
c

Direzione di ricerca

Inizia in ipu7.c, in ipu_bridge_init(), e in ipu7-isys.c, in isys_notifier_init(), quindi esamina come viene attraversato dev_fwnode() per gli endpoint del grafo. Confronta questo percorso con il comportamento di intel-ipu7-isys nel kernel e verifica il risultato con media-ctl -p e gst-launch-1.0 icamerasrc. Il lavoro è completato quando l’entità OV02C10 viene associata, il notifier trova i suoi endpoint e compare una pipeline /dev/video* funzionante.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

System

  • Hardware: Dell XPS, Intel Core Ultra 7 258V (Lunar Lake)
  • Sensor: OmniVision OV02C10 (ACPI ID: OVTI02C1) on I2C bus 16, address 0x36, 2 MIPI lanes
  • Kernel: 7.0.12-201.fc44.x86_64 (Fedora 44)
  • ipu7-drivers: latest main branch (PACKAGE_VERSION=0.0.0)
  • ipu_bridge: in-kernel (from kernel 7.0.12 staging)

Setup

Since kernel 7.0.x includes intel-ipu7.ko and intel-ipu7-isys.ko in staging, the DKMS config only builds intel-ipu7-psys. However, the out-of-tree psys module hangs indefinitely during probe when binding to the auxiliary device created by the in-kernel intel-ipu7.ko (stuck in pm_runtime_resume_and_get), indicating an ABI mismatch between the in-kernel and out-of-tree versions.

Workaround attempted: Force-build all three modules (intel-ipu7, intel-ipu7-isys, intel-ipu7-psys) from ipu7-drivers by removing the kernel version check in the Makefile/dkms.conf. This makes psys probe successfully and /dev/ipu7-psys0 appears.

Problem

With the full out-of-tree stack loaded, the ISYS driver logs:

intel_ipu7_isys.isys intel_ipu7.isys.40: no subdevice info provided

And the sensor never binds — media-ctl -p shows no OV02C10 entity, and gst-launch-1.0 icamerasrc ... reports No sensors available.

Root Cause

ipu_bridge_init() (called from ipu7_isys_init() in ipu7.c) creates a software node named INT343E with the sensor graph endpoints:

/sys/kernel/software_nodes/INT343E/port@0/endpoint@0
/sys/kernel/software_nodes/OVTI02C1-0/port@0/endpoint@0

However, this INT343E software node is not attached to the IPU7 PCI device (0000:00:05.0, ACPI path \_SB_.PC00.IPU0) as a secondary fwnode. On Lunar Lake there is no INT343E ACPI device — the IPU is exposed directly on the PCI bus.

As a result, isys_notifier_init() in ipu7-isys.c calls:

ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(dev), i, 0,
                                     FWNODE_GRAPH_ENDPOINT_NEXT);

This searches dev_fwnode(&isp->pdev->dev) which is the ACPI fwnode for \_SB_.PC00.IPU0 — it has no graph endpoints, so no sensors are found and the notifier's waiting list stays empty.

The in-kernel staging intel-ipu7-isys.ko does not have this problem (sensor binds correctly at boot), suggesting the in-kernel version handles this differently.

Kernel log (boot with out-of-tree full stack)

intel-ipu7 0000:00:05.0: Found supported sensor OVTI02C1:00   ← bridge works
intel-ipu7 0000:00:05.0: Connected 1 cameras
ov02c10 i2c-OVTI02C1:00: supply dovdd not found, using dummy regulator
intel_ipu7_isys.isys intel_ipu7.isys.40: no subdevice info provided  ← spdata NULL (expected)
                                                                        ← no sensor bind

Expected behavior

  • isys_notifier_init() should find the sensor endpoints created by ipu_bridge and register the async notifier
  • ov02c10 should bind to the ISYS
  • /dev/video* should show a working camera pipeline

Questions for maintainers

  1. How does the in-kernel staging intel-ipu7-isys.ko (kernel 7.0.12) discover sensors — does it use a different fwnode traversal or a different code path?
  2. Should ipu7_isys_init() in ipu7.c call set_secondary_fwnode(dev, software_node_fwnode(swnode)) after ipu_bridge_init() to attach the INT343E node to the PCI device?
  3. Should isys_notifier_init() in ipu7-isys.c fall back to software_node_find_by_name(NULL, IPU_HID) when dev_fwnode(dev) has no graph endpoints?
  4. Is the psys probe hang with the in-kernel intel-ipu7.ko (kernel 7.0.x) a known issue? Is using the full out-of-tree stack the intended path on these kernels?
Lingua principale
C
Stelle
14
Fork
39
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di intel/ipu7-drivers

Tutte le issue di intel/ipu7-drivers

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.