Message ID | 20220616160456.21549-2-laurent.pinchart@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: rkisp1: Improve DPCC configuration | expand |
Hi Laurent, On Thu, Jun 16, 2022 at 07:04:54PM +0300, Laurent Pinchart wrote: > The rkisp1_dpcc_config() function looks over methods sets to configure > them, but sets the RKISP1_CIF_ISP_DPCC_METHODS_SET_* registers outside > of the loop with hand-unrolled code. Move this to the loop to simplify > the code. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > drivers/media/platform/rockchip/rkisp1/rkisp1-params.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > index c88a9c0fa86e..140012fa18f0 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > @@ -18,6 +18,8 @@ > #define RKISP1_ISP_PARAMS_REQ_BUFS_MIN 2 > #define RKISP1_ISP_PARAMS_REQ_BUFS_MAX 8 > > +#define RKISP1_ISP_DPCC_METHODS_SET(n) \ > + (RKISP1_CIF_ISP_DPCC_METHODS_SET_1 + 0x4 * (n)) > #define RKISP1_ISP_DPCC_LINE_THRESH(n) \ > (RKISP1_CIF_ISP_DPCC_LINE_THRESH_1 + 0x14 * (n)) > #define RKISP1_ISP_DPCC_LINE_MAD_FAC(n) \ > @@ -66,13 +68,9 @@ static void rkisp1_dpcc_config(struct rkisp1_params *params, > rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_SET_USE, > arg->set_use); > > - rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_1, > - arg->methods[0].method); > - rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_2, > - arg->methods[1].method); > - rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_3, > - arg->methods[2].method); > for (i = 0; i < RKISP1_CIF_ISP_DPCC_METHODS_MAX; i++) { > + rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_METHODS_SET(i), > + arg->methods[i].method); > rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_LINE_THRESH(i), > arg->methods[i].line_thresh); > rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_LINE_MAD_FAC(i),
hi, On 16.06.2022 19:04, Laurent Pinchart wrote: >The rkisp1_dpcc_config() function looks over methods sets to configure >them, but sets the RKISP1_CIF_ISP_DPCC_METHODS_SET_* registers outside >of the loop with hand-unrolled code. Move this to the loop to simplify >the code. > >Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com> >--- > drivers/media/platform/rockchip/rkisp1/rkisp1-params.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > >diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c >index c88a9c0fa86e..140012fa18f0 100644 >--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c >+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c >@@ -18,6 +18,8 @@ > #define RKISP1_ISP_PARAMS_REQ_BUFS_MIN 2 > #define RKISP1_ISP_PARAMS_REQ_BUFS_MAX 8 > >+#define RKISP1_ISP_DPCC_METHODS_SET(n) \ >+ (RKISP1_CIF_ISP_DPCC_METHODS_SET_1 + 0x4 * (n)) > #define RKISP1_ISP_DPCC_LINE_THRESH(n) \ > (RKISP1_CIF_ISP_DPCC_LINE_THRESH_1 + 0x14 * (n)) > #define RKISP1_ISP_DPCC_LINE_MAD_FAC(n) \ >@@ -66,13 +68,9 @@ static void rkisp1_dpcc_config(struct rkisp1_params *params, > rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_SET_USE, > arg->set_use); > >- rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_1, >- arg->methods[0].method); >- rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_2, >- arg->methods[1].method); >- rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_3, >- arg->methods[2].method); > for (i = 0; i < RKISP1_CIF_ISP_DPCC_METHODS_MAX; i++) { >+ rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_METHODS_SET(i), >+ arg->methods[i].method); > rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_LINE_THRESH(i), > arg->methods[i].line_thresh); > rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_LINE_MAD_FAC(i), >-- >Regards, > >Laurent Pinchart >
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c index c88a9c0fa86e..140012fa18f0 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c @@ -18,6 +18,8 @@ #define RKISP1_ISP_PARAMS_REQ_BUFS_MIN 2 #define RKISP1_ISP_PARAMS_REQ_BUFS_MAX 8 +#define RKISP1_ISP_DPCC_METHODS_SET(n) \ + (RKISP1_CIF_ISP_DPCC_METHODS_SET_1 + 0x4 * (n)) #define RKISP1_ISP_DPCC_LINE_THRESH(n) \ (RKISP1_CIF_ISP_DPCC_LINE_THRESH_1 + 0x14 * (n)) #define RKISP1_ISP_DPCC_LINE_MAD_FAC(n) \ @@ -66,13 +68,9 @@ static void rkisp1_dpcc_config(struct rkisp1_params *params, rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_SET_USE, arg->set_use); - rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_1, - arg->methods[0].method); - rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_2, - arg->methods[1].method); - rkisp1_write(params->rkisp1, RKISP1_CIF_ISP_DPCC_METHODS_SET_3, - arg->methods[2].method); for (i = 0; i < RKISP1_CIF_ISP_DPCC_METHODS_MAX; i++) { + rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_METHODS_SET(i), + arg->methods[i].method); rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_LINE_THRESH(i), arg->methods[i].line_thresh); rkisp1_write(params->rkisp1, RKISP1_ISP_DPCC_LINE_MAD_FAC(i),
The rkisp1_dpcc_config() function looks over methods sets to configure them, but sets the RKISP1_CIF_ISP_DPCC_METHODS_SET_* registers outside of the loop with hand-unrolled code. Move this to the loop to simplify the code. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- drivers/media/platform/rockchip/rkisp1/rkisp1-params.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)