]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: rkisp1: Fix filter mode register configuration
authorRui Wang <rui.wang@ideasonboard.com>
Mon, 5 Jan 2026 17:11:42 +0000 (12:11 -0500)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Wed, 21 Jan 2026 07:25:45 +0000 (08:25 +0100)
The rkisp1_flt_config() function performs an initial direct write to
RKISP1_CIF_ISP_FILT_MODE without including the RKISP1_CIF_ISP_FLT_ENA
bit, which clears the filter enable bit in the hardware.

The subsequent read/modify/write sequence then reads back the register
with the enable bit already cleared and cannot restore it, resulting in
the filter being inadvertently disabled.

Remove the redundant direct write. The read/modify/write sequence alone
correctly preserves the existing enable bit state while updating the
DNR mode and filter configuration bits.

Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>
Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patch.msgid.link/20260105171142.147792-2-rui.wang@ideasonboard.com
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/rockchip/rkisp1/rkisp1-params.c

index c9f88635224cc64e6b25802a4bbac9b3f907f96e..6442436a5e428fdc72a33aae8700b189237a0479 100644 (file)
@@ -411,12 +411,6 @@ static void rkisp1_flt_config(struct rkisp1_params *params,
        rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_FILT_LUM_WEIGHT,
                     arg->lum_weight);
 
-       rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_FILT_MODE,
-                    (arg->mode ? RKISP1_CIF_ISP_FLT_MODE_DNR : 0) |
-                    RKISP1_CIF_ISP_FLT_CHROMA_V_MODE(arg->chr_v_mode) |
-                    RKISP1_CIF_ISP_FLT_CHROMA_H_MODE(arg->chr_h_mode) |
-                    RKISP1_CIF_ISP_FLT_GREEN_STAGE1(arg->grn_stage1));
-
        /* avoid to override the old enable value */
        filt_mode = rkisp1_read(params->rkisp1, RKISP1_CIF_ISP_FILT_MODE);
        filt_mode &= RKISP1_CIF_ISP_FLT_ENA;