Files
openwrt-master/target/linux/bcm27xx/patches-6.6/950-0641-media-rp1-csi2-Fix-missing-reg-writes.patch
domenico c06fb25d1f
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Initial commit
2025-06-24 14:35:53 +02:00

37 lines
1.3 KiB
Diff

From cf07ba1d72b121f15281c3fd02dbc45144e83b80 Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Date: Thu, 28 Sep 2023 10:42:22 +0300
Subject: [PATCH 0641/1085] media: rp1: csi2: Fix missing reg writes
The driver has two places where it writes a register based on a
condition, and when that condition is false, the driver presumes that
the register has the reset value. This is not a good idea, so fix those
places to always write the register.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/media/platform/raspberrypi/rp1_cfe/csi2.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/media/platform/raspberrypi/rp1_cfe/csi2.c
+++ b/drivers/media/platform/raspberrypi/rp1_cfe/csi2.c
@@ -253,6 +253,7 @@ void csi2_start_channel(struct csi2_devi
*/
set_field(&ctrl, 0x3ff, LC_MASK);
set_field(&ctrl, 0x00, CH_MODE_MASK);
+ csi2_reg_write(csi2, CSI2_CH_FRAME_SIZE(channel), 0);
}
set_field(&ctrl, dt, DT_MASK);
@@ -277,8 +278,8 @@ void csi2_open_rx(struct csi2_device *cs
{
dphy_start(&csi2->dphy);
- if (!csi2->multipacket_line)
- csi2_reg_write(csi2, CSI2_CTRL, EOP_IS_EOL);
+ csi2_reg_write(csi2, CSI2_CTRL,
+ csi2->multipacket_line ? 0 : EOP_IS_EOL);
}
void csi2_close_rx(struct csi2_device *csi2)