media: i2c: imx290: Properly encode registers as little-endian
authorAlexander Stein <alexander.stein@ew.tq-group.com>
Thu, 2 Nov 2023 09:50:48 +0000 (10:50 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Feb 2024 00:19:10 +0000 (16:19 -0800)
[ Upstream commit 60fc87a69523c294eb23a1316af922f6665a6f8c ]

The conversion to CCI also converted the multi-byte register access to
big-endian. Correct the register definition by using the correct
little-endian ones.

Fixes: af73323b9770 ("media: imx290: Convert to new CCI register access helpers")
Cc: stable@vger.kernel.org
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
[Sakari Ailus: Fixed the Fixes: tag.]
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/i2c/imx290.c

index 2909861..c6fea58 100644 (file)
 #define IMX290_WINMODE_720P                            (1 << 4)
 #define IMX290_WINMODE_CROP                            (4 << 4)
 #define IMX290_FR_FDG_SEL                              CCI_REG8(0x3009)
-#define IMX290_BLKLEVEL                                        CCI_REG16(0x300a)
+#define IMX290_BLKLEVEL                                        CCI_REG16_LE(0x300a)
 #define IMX290_GAIN                                    CCI_REG8(0x3014)
-#define IMX290_VMAX                                    CCI_REG24(0x3018)
+#define IMX290_VMAX                                    CCI_REG24_LE(0x3018)
 #define IMX290_VMAX_MAX                                        0x3ffff
-#define IMX290_HMAX                                    CCI_REG16(0x301c)
+#define IMX290_HMAX                                    CCI_REG16_LE(0x301c)
 #define IMX290_HMAX_MAX                                        0xffff
-#define IMX290_SHS1                                    CCI_REG24(0x3020)
+#define IMX290_SHS1                                    CCI_REG24_LE(0x3020)
 #define IMX290_WINWV_OB                                        CCI_REG8(0x303a)
-#define IMX290_WINPV                                   CCI_REG16(0x303c)
-#define IMX290_WINWV                                   CCI_REG16(0x303e)
-#define IMX290_WINPH                                   CCI_REG16(0x3040)
-#define IMX290_WINWH                                   CCI_REG16(0x3042)
+#define IMX290_WINPV                                   CCI_REG16_LE(0x303c)
+#define IMX290_WINWV                                   CCI_REG16_LE(0x303e)
+#define IMX290_WINPH                                   CCI_REG16_LE(0x3040)
+#define IMX290_WINWH                                   CCI_REG16_LE(0x3042)
 #define IMX290_OUT_CTRL                                        CCI_REG8(0x3046)
 #define IMX290_ODBIT_10BIT                             (0 << 0)
 #define IMX290_ODBIT_12BIT                             (1 << 0)
 #define IMX290_ADBIT2                                  CCI_REG8(0x317c)
 #define IMX290_ADBIT2_10BIT                            0x12
 #define IMX290_ADBIT2_12BIT                            0x00
-#define IMX290_CHIP_ID                                 CCI_REG16(0x319a)
+#define IMX290_CHIP_ID                                 CCI_REG16_LE(0x319a)
 #define IMX290_ADBIT3                                  CCI_REG8(0x31ec)
 #define IMX290_ADBIT3_10BIT                            0x37
 #define IMX290_ADBIT3_12BIT                            0x0e
 #define IMX290_REPETITION                              CCI_REG8(0x3405)
 #define IMX290_PHY_LANE_NUM                            CCI_REG8(0x3407)
 #define IMX290_OPB_SIZE_V                              CCI_REG8(0x3414)
-#define IMX290_Y_OUT_SIZE                              CCI_REG16(0x3418)
-#define IMX290_CSI_DT_FMT                              CCI_REG16(0x3441)
+#define IMX290_Y_OUT_SIZE                              CCI_REG16_LE(0x3418)
+#define IMX290_CSI_DT_FMT                              CCI_REG16_LE(0x3441)
 #define IMX290_CSI_DT_FMT_RAW10                                0x0a0a
 #define IMX290_CSI_DT_FMT_RAW12                                0x0c0c
 #define IMX290_CSI_LANE_MODE                           CCI_REG8(0x3443)
-#define IMX290_EXTCK_FREQ                              CCI_REG16(0x3444)
-#define IMX290_TCLKPOST                                        CCI_REG16(0x3446)
-#define IMX290_THSZERO                                 CCI_REG16(0x3448)
-#define IMX290_THSPREPARE                              CCI_REG16(0x344a)
-#define IMX290_TCLKTRAIL                               CCI_REG16(0x344c)
-#define IMX290_THSTRAIL                                        CCI_REG16(0x344e)
-#define IMX290_TCLKZERO                                        CCI_REG16(0x3450)
-#define IMX290_TCLKPREPARE                             CCI_REG16(0x3452)
-#define IMX290_TLPX                                    CCI_REG16(0x3454)
-#define IMX290_X_OUT_SIZE                              CCI_REG16(0x3472)
+#define IMX290_EXTCK_FREQ                              CCI_REG16_LE(0x3444)
+#define IMX290_TCLKPOST                                        CCI_REG16_LE(0x3446)
+#define IMX290_THSZERO                                 CCI_REG16_LE(0x3448)
+#define IMX290_THSPREPARE                              CCI_REG16_LE(0x344a)
+#define IMX290_TCLKTRAIL                               CCI_REG16_LE(0x344c)
+#define IMX290_THSTRAIL                                        CCI_REG16_LE(0x344e)
+#define IMX290_TCLKZERO                                        CCI_REG16_LE(0x3450)
+#define IMX290_TCLKPREPARE                             CCI_REG16_LE(0x3452)
+#define IMX290_TLPX                                    CCI_REG16_LE(0x3454)
+#define IMX290_X_OUT_SIZE                              CCI_REG16_LE(0x3472)
 #define IMX290_INCKSEL7                                        CCI_REG8(0x3480)
 
 #define IMX290_PGCTRL_REGEN                            BIT(0)