This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: rkisp1: Add features mask to extensible block handlers
Author:  Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Date:    Thu Aug 8 22:41:02 2024 +0200

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.

Reviewed-by: Jacopo Mondi <jacopo.mo...@ideasonboard.com>
Reviewed-by: Paul Elder <paul.el...@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mo...@ideasonboard.com>
Tested-by: Kieran Bingham <kieran.bing...@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>

 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 43df8079cf8f..095f0189941e 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c
@@ -1856,6 +1856,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),
@@ -1962,11 +1963,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.flags & RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE)

Reply via email to