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

Subject: media: v4l: cci: Add macros to obtain register width and address
Author:  Sakari Ailus <sakari.ai...@linux.intel.com>
Date:    Tue Nov 7 17:42:40 2023 +0200

Add CCI_REG_WIDTH() macro to obtain register width in bits and similarly,
CCI_REG_WIDTH_BYTES() to obtain it in bytes.

Also add CCI_REG_ADDR() macro to obtain the address of a register.

Use both macros in v4l2-cci.c, too.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Reviewed-by: Hans de Goede <hdego...@redhat.com>
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 drivers/media/v4l2-core/v4l2-cci.c | 8 ++++----
 include/media/v4l2-cci.h           | 5 +++++
 2 files changed, 9 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/v4l2-core/v4l2-cci.c 
b/drivers/media/v4l2-core/v4l2-cci.c
index bc2dbec019b0..3179160abde3 100644
--- a/drivers/media/v4l2-core/v4l2-cci.c
+++ b/drivers/media/v4l2-core/v4l2-cci.c
@@ -25,8 +25,8 @@ int cci_read(struct regmap *map, u32 reg, u64 *val, int *err)
        if (err && *err)
                return *err;
 
-       len = FIELD_GET(CCI_REG_WIDTH_MASK, reg);
-       reg = FIELD_GET(CCI_REG_ADDR_MASK, reg);
+       len = CCI_REG_WIDTH_BYTES(reg);
+       reg = CCI_REG_ADDR(reg);
 
        ret = regmap_bulk_read(map, reg, buf, len);
        if (ret) {
@@ -75,8 +75,8 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err)
        if (err && *err)
                return *err;
 
-       len = FIELD_GET(CCI_REG_WIDTH_MASK, reg);
-       reg = FIELD_GET(CCI_REG_ADDR_MASK, reg);
+       len = CCI_REG_WIDTH_BYTES(reg);
+       reg = CCI_REG_ADDR(reg);
 
        switch (len) {
        case 1:
diff --git a/include/media/v4l2-cci.h b/include/media/v4l2-cci.h
index ee469f03e440..406772a4e32e 100644
--- a/include/media/v4l2-cci.h
+++ b/include/media/v4l2-cci.h
@@ -7,6 +7,7 @@
 #ifndef _V4L2_CCI_H
 #define _V4L2_CCI_H
 
+#include <linux/bitfield.h>
 #include <linux/bits.h>
 #include <linux/types.h>
 
@@ -39,6 +40,10 @@ struct cci_reg_sequence {
 #define CCI_REG_PRIVATE_SHIFT          28U
 #define CCI_REG_PRIVATE_MASK           GENMASK(31U, CCI_REG_PRIVATE_SHIFT)
 
+#define CCI_REG_WIDTH_BYTES(x)         FIELD_GET(CCI_REG_WIDTH_MASK, x)
+#define CCI_REG_WIDTH(x)               (CCI_REG_WIDTH_BYTES(x) << 3)
+#define CCI_REG_ADDR(x)                        FIELD_GET(CCI_REG_ADDR_MASK, x)
+
 #define CCI_REG8(x)                    ((1 << CCI_REG_WIDTH_SHIFT) | (x))
 #define CCI_REG16(x)                   ((2 << CCI_REG_WIDTH_SHIFT) | (x))
 #define CCI_REG24(x)                   ((3 << CCI_REG_WIDTH_SHIFT) | (x))

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to