[PATCH v4 07/15] media: atomisp: Add Yoga Book camera configuration
From: Maurizio Casciano
Date: Fri Aug 28 2026 - 12:22:44 EST
The Yoga Book YB1-X91 firmware lacks usable AtomISP configuration for
both cameras. Rear INT3477 OV8858 uses four CSI-2 lanes and a WV517S
actuator, while the front OVTI2740 firmware reports the wrong lane
count.
Add the rear sensor configuration and a DMI-scoped two-lane override
for OVTI2740:00. Add the front sensor configuration separately once
its link frequency can be supplied at the same time.
Link: https://lore.kernel.org/linux-media/apFzAc5XfV9gQpXS@kekkonen.localdomain/
Signed-off-by: Maurizio Casciano <mauriziocasciano7@xxxxxxxxx>
Assisted-by: Codex:gpt-5.6-sol sparse
---
.../media/atomisp/pci/atomisp_csi2_bridge.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c b/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
index cca91c6d71a5..56da454f0d9e 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
@@ -74,6 +74,12 @@ static struct gmin_cfg_var lenovo_ideapad_miix_310_vars[] = {
{}
};
+static struct gmin_cfg_var lenovo_yogabook_x91_vars[] = {
+ /* The vendor driver and sensor modes use two CSI data lanes. */
+ { "OVTI2740:00", "CsiLanes", "2" },
+ {}
+};
+
static struct gmin_cfg_var xiaomi_mipad2_vars[] = {
/* _DSM contains the wrong CsiPort for the front facing OV5693 sensor */
{ "INT33BE:00", "CsiPort", "0" },
@@ -83,6 +89,14 @@ static struct gmin_cfg_var xiaomi_mipad2_vars[] = {
};
static const struct dmi_system_id gmin_cfg_dmi_overrides[] = {
+ {
+ /* Lenovo Yoga Book X91L */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91L"),
+ },
+ .driver_data = lenovo_yogabook_x91_vars,
+ },
{
/* Lenovo Ideapad Miix 310 */
.matches = {
@@ -359,7 +373,10 @@ static const struct acpi_device_id atomisp_sensor_configs[] = {
* the sensor fails to start streaming when instantiating
* an i2c-client for the VCM, so it is disabled for now.
*/
- ATOMISP_SENSOR_CONFIG("INT33BE", 2, false), /* OV5693 */
+ /* OV5693 */
+ ATOMISP_SENSOR_CONFIG("INT33BE", 2, false),
+ /* OV8858 */
+ ATOMISP_SENSOR_CONFIG("INT3477", 4, true),
{}
};
--
2.53.0