[PATCH 00/21] media: i2c: it6625: address review feedback and adopt subdev state

From: Hermes Wu via B4 Relay

Date: Fri Sep 18 2026 - 05:10:32 EST


Sakari Ailus reviewed "[PATCH v10 2/2] media: i2c: add driver for ITE
IT6625/IT6626" and, separately, "[PATCH v1 1/2]" (the dt-bindings patch)
after both had already been merged into next. This series addresses
that feedback as a follow-up, since the original commits can no longer
be amended.

Scope of this series:
- one dt-bindings fix documenting the CSI-2 bus-type default;
- one control-update error-handling fix;
- mechanical and style cleanups (declaration ordering, unsigned loop
indices, redundant boilerplate, unaligned-access helpers, an early
return conversion);
- a link-frequency reporting fix for one-/two-trio C-PHY configurations,
found while implementing a related style request;
- tightening DT endpoint parsing to require the documented endpoint
instead of silently defaulting;
- folding subdev initialization into probe() for explicit error
handling;
- adopting the subdev active-state model: sharing the driver mutex as
both the subdev state lock and the control handler lock, moving the
current format out of driver-private fields and into the pad format,
and calling v4l2_subdev_init_finalize()/v4l2_subdev_cleanup();
- converting from the deprecated s_stream video op to the
enable_streams/disable_streams pad ops, keeping
v4l2_subdev_s_stream_helper for legacy callers.

The locking-model change is the one part of this series most likely to
need another look: it changes what the driver's own mutex protects and
who else already holds it by the time driver code runs. It's isolated
to its own commit with an explicit trace of every lock acquisition site
against the actual core locking contract, kept separate from the
mechanical/bug-fix commits that precede it.

Signed-off-by: Hermes Wu <Hermes.wu@xxxxxxxxxx>
---
Hermes Wu (21):
media: dt-bindings: ite,it6625: document the default CSI-2 bus type
media: i2c: it6625: propagate control-update errors
media: i2c: it6625: default the debug module parameter to 0
media: i2c: it6625: drop unused bus field from struct it6625
media: i2c: it6625: drop stale GCC < 4.4.6 workaround
media: i2c: it6625: use unsigned int loop indices in table lookups
media: i2c: it6625: drop redundant parentheses in status helpers
media: i2c: it6625: make the audio sampling-rate table static const
media: i2c: it6625: tidy CEC buffer init and a continuation line
media: i2c: it6625: clean up it6625_wait_for_status()
media: i2c: it6625: use unsigned int indices in EDID read/write
media: i2c: it6625: use unaligned/units helpers to decode pixel clock
media: i2c: it6625: decode detected timings via typed register structs
media: i2c: it6625: fix link-frequency reporting for one-/two-trio C-PHY
media: i2c: it6625: use early returns in it6625_update_timings_if_changed()
media: i2c: it6625: drop the private CSI-format name table
media: i2c: it6625: require a DT endpoint and simplify endpoint parsing
media: i2c: it6625: finish reverse fir-tree declaration order
media: i2c: it6625: fold subdev initialization into probe
media: i2c: it6625: use centrally managed active state
media: i2c: it6625: use enable_streams and disable_streams

.../devicetree/bindings/media/i2c/ite,it6625.yaml | 2 +
drivers/media/i2c/it6625.c | 519 +++++++++++----------
2 files changed, 282 insertions(+), 239 deletions(-)
---
base-commit: b38d06ad1e13c32970d58039c154f009b81a3368
change-id: 20260917-upstream-it6625-follow-up-patch-b81b34266c43

Best regards,
--
Hermes Wu <Hermes.wu@xxxxxxxxxx>