Message ID | 20240704154932.6686-3-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | f1463972738f6849b6ac4454c37ae2785094a700 |
Headers | show |
Series | media: rkisp1: Add support for the companding block | expand |
On Thu, Jul 04, 2024 at 06:49:29PM GMT, Laurent Pinchart wrote: > Future ISP parameter blocks for i.MX8MP-specific features will not > support on Rockchip platforms as they lack the corresponding hardware. > Introduce a features mask in the extensible block handlers to indicate > which device features a block require, and ignore blocks that require > unavailable features. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > --- > Changes since v1: > > - Expand comment > - Fix feature check test > --- > drivers/media/platform/rockchip/rkisp1/rkisp1-params.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > index c56365c7c51f..d3a7c7f55db0 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > @@ -1845,6 +1845,7 @@ static const struct rkisp1_ext_params_handler { > size_t size; > rkisp1_block_handler handler; > unsigned int group; > + unsigned int features; > } rkisp1_ext_params_handlers[] = { > [RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS] = { > .size = sizeof(struct rkisp1_ext_params_bls_config), > @@ -1951,11 +1952,18 @@ static void rkisp1_ext_params_config(struct rkisp1_params *params, > &cfg->data[block_offset]; > block_offset += block->header.size; > > - /* Make sure the block is in the list of groups to configure. */ > + /* > + * Make sure the block is supported by the platform and in the > + * list of groups to configure. > + */ > block_handler = &rkisp1_ext_params_handlers[block->header.type]; > if (!(block_handler->group & block_group_mask)) > continue; > > + if ((params->rkisp1->info->features & block_handler->features) != > + block_handler->features) > + continue; > + > block_handler->handler(params, block); > > if (block->header.enable == RKISP1_EXT_PARAMS_BLOCK_DISABLE) > -- > Regards, > > Laurent Pinchart >
On Thu, Jul 04, 2024 at 06:49:29PM +0300, Laurent Pinchart wrote: > Future ISP parameter blocks for i.MX8MP-specific features will not > support on Rockchip platforms as they lack the corresponding hardware. > Introduce a features mask in the extensible block handlers to indicate > which device features a block require, and ignore blocks that require > unavailable features. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > Changes since v1: > > - Expand comment > - Fix feature check test > --- > drivers/media/platform/rockchip/rkisp1/rkisp1-params.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > index c56365c7c51f..d3a7c7f55db0 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c > @@ -1845,6 +1845,7 @@ static const struct rkisp1_ext_params_handler { > size_t size; > rkisp1_block_handler handler; > unsigned int group; > + unsigned int features; > } rkisp1_ext_params_handlers[] = { > [RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS] = { > .size = sizeof(struct rkisp1_ext_params_bls_config), > @@ -1951,11 +1952,18 @@ static void rkisp1_ext_params_config(struct rkisp1_params *params, > &cfg->data[block_offset]; > block_offset += block->header.size; > > - /* Make sure the block is in the list of groups to configure. */ > + /* > + * Make sure the block is supported by the platform and in the > + * list of groups to configure. > + */ > block_handler = &rkisp1_ext_params_handlers[block->header.type]; > if (!(block_handler->group & block_group_mask)) > continue; > > + if ((params->rkisp1->info->features & block_handler->features) != > + block_handler->features) > + continue; > + > block_handler->handler(params, block); > > if (block->header.enable == RKISP1_EXT_PARAMS_BLOCK_DISABLE)
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c index c56365c7c51f..d3a7c7f55db0 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c @@ -1845,6 +1845,7 @@ static const struct rkisp1_ext_params_handler { size_t size; rkisp1_block_handler handler; unsigned int group; + unsigned int features; } rkisp1_ext_params_handlers[] = { [RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS] = { .size = sizeof(struct rkisp1_ext_params_bls_config), @@ -1951,11 +1952,18 @@ static void rkisp1_ext_params_config(struct rkisp1_params *params, &cfg->data[block_offset]; block_offset += block->header.size; - /* Make sure the block is in the list of groups to configure. */ + /* + * Make sure the block is supported by the platform and in the + * list of groups to configure. + */ block_handler = &rkisp1_ext_params_handlers[block->header.type]; if (!(block_handler->group & block_group_mask)) continue; + if ((params->rkisp1->info->features & block_handler->features) != + block_handler->features) + continue; + block_handler->handler(params, block); if (block->header.enable == RKISP1_EXT_PARAMS_BLOCK_DISABLE)
Future ISP parameter blocks for i.MX8MP-specific features will not support on Rockchip platforms as they lack the corresponding hardware. Introduce a features mask in the extensible block handlers to indicate which device features a block require, and ignore blocks that require unavailable features. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- Changes since v1: - Expand comment - Fix feature check test --- drivers/media/platform/rockchip/rkisp1/rkisp1-params.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)