[PATCH v5 00/16] media: Add Lenovo Yoga Book YB1-X91 camera support
From: Maurizio Casciano
Date: Mon Aug 31 2026 - 17:32:16 EST
The Lenovo Yoga Book YB1-X91L exposes an OV2740 front sensor and an
OV8858 rear sensor through the Cherry Trail AtomISP. Its firmware does
not provide enough information for the existing sensor and IPU bridge
drivers to construct the complete camera links.
Add the ACPI IDs and bridge data, describe both AtomISP camera links,
support the Yoga Book sensor clocks and modes, expose raw Bayer capture,
add per-channel white-balance controls, and add the WV517S rear-camera
lens actuator.
Raw capture is selected through the normal V4L2 raw pixel formats. There
is no module parameter or separate private ABI. Raw formats expose the
complete sensor transport frame required by the ISP2401 copy pipeline;
selecting a smaller crop remains a userspace decision.
Changes since v4:
- retain the HZ_PER_MHZ conversions requested during review, including
the canonical 24 MHz OV8858 clock constant;
- retain ACPI_PTR() for the OV8858 match table as Sakari requested; Andy
subsequently confirmed that Sakari's media-maintainer guidance should
decide this point;
- add Andy's Reviewed-by tags to the unchanged patches he accepted;
- move the existing OV2740 group-hold error-unwinding correction into a
separate preparatory patch before the white-balance controls;
- complete the AtomISP struct v4l2_area conversion for persistent sink
padding, padding helpers, frame-size tables and all callers;
- keep the OV8858 digital-gain extraction a pure refactoring, preserving
the original register packing and explanatory comment;
- use the existing OV8858_XVCLK_FREQ name for 24 MHz and keep a distinct
constant only for 19.2 MHz; and
- standardize the Assisted-by trailers without changing authorship or
Signed-off-by certification.
v4:
https://lore.kernel.org/linux-media/cover.1787933456.git.mauriziocasciano7@xxxxxxxxx/
The tablet DSDT contains the sensor objects requested during review:
Device (CA11)
{
Name (_HID, "INT3477")
Name (_CID, "OVTI8858")
Name (_DDN, "OV8858")
}
Device (CA01)
{
Name (_HID, "OVTI2740")
Name (_CID, "OVTI2740")
Name (_DDN, "OV2740")
}
All sixteen patches pass strict checkpatch. Integration commit
780663f0af3b contains the exact v5 media series and passed olddefconfig,
focused W=1 C=2 CHECK=sparse builds, and a full x86_64 Debian package
build. The full build log contains no warning in a touched file.
Runtime testing used a Lenovo Yoga Book YB1-X91L booted with
7.2.0-yogabook-20260831-153058. OV2740, OV8858, WV517S and AtomISP bound,
and AtomISP reported two connected cameras. Processed front and rear
streams completed and actual switching was confirmed through distinct
BA10/GRBG and BG10/BGGR sensor paths.
Direct raw capture produced five complete OV2740 BA10 frames
(22,364,160 bytes) and five complete OV8858 BG10 frames (20,377,600
bytes). The OV2740 red/blue balance controls were set to 1200/1300,
read back and exercised during a five-frame raw capture, then restored to
1024/1024. WV517S focus was set to 448 during rear raw streaming and
restored to 300.
During rear streaming, OV8858 and AtomISP were runtime active while
OV2740 remained suspended; all returned to runtime suspended after idle.
A 15-second s2idle cycle with RTC wake resumed successfully on the same
kernel. Front processed capture, SOF playback/capture, and both DRV2604
force-feedback devices were rechecked after resume without regression.
With Best Regards,
Maurizio Casciano
Maurizio Casciano (16):
media: ov8858: Extract digital gain programming
media: ov8858: support 19.2 MHz clock and CHT gain setup
media: ov2740: Use C99 initializers for ACPI IDs
media: ov2740: Add OVTI2740 ACPI ID
media: ov8858: Add INT3477 ACPI ID
media: intel: ipu-bridge: Add Yoga Book camera sensors
media: atomisp: Add Yoga Book camera configuration
media: ov2740: support 288 MHz link frequency
media: intel: ipu-bridge: allow sensor-specific link frequencies
media: atomisp: derive CSI-2 timing from sensor link frequency
media: atomisp: provide Yoga Book OV2740 link frequency
media: ov2740: release group hold after gain write errors
media: ov2740: add manual white balance controls
media: atomisp: Use struct v4l2_area for padding
media: atomisp: allow raw Bayer capture
media: i2c: Add WV517S lens actuator driver
MAINTAINERS | 1 +
drivers/media/i2c/Kconfig | 11 +
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/ov2740.c | 114 +++++++---
drivers/media/i2c/ov8858.c | 166 ++++++++++++--
drivers/media/i2c/wv517s.c | 206 ++++++++++++++++++
drivers/media/pci/intel/ipu-bridge.c | 19 +-
.../staging/media/atomisp/pci/atomisp_cmd.c | 80 ++++---
.../staging/media/atomisp/pci/atomisp_cmd.h | 6 +-
.../staging/media/atomisp/pci/atomisp_csi2.c | 20 +-
.../media/atomisp/pci/atomisp_csi2_bridge.c | 30 ++-
.../staging/media/atomisp/pci/atomisp_ioctl.c | 34 ++-
.../media/atomisp/pci/atomisp_subdev.c | 4 +-
.../media/atomisp/pci/atomisp_subdev.h | 3 +-
include/media/ipu-bridge.h | 3 +
15 files changed, 588 insertions(+), 110 deletions(-)
create mode 100644 drivers/media/i2c/wv517s.c
--
With Best Regards,
Maurizio Casciano