* [PATCH 0/2] v4l2-cci: little-endian registers
@ 2023-11-01 11:17 Alexander Stein
2023-11-01 11:17 ` [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers Alexander Stein
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Alexander Stein @ 2023-11-01 11:17 UTC (permalink / raw)
To: Mauro Carvalho Chehab, Sakari Ailus, Manivannan Sadhasivam,
Laurent Pinchart, Hans de Goede
Cc: Alexander Stein, linux-media, Alain Volmat
Hi,
after the discussions at [1] and [2], this series adds proper support for
little-endian encoded registers.
Patch 1 adds the infrastructure and patch 2 fixes imx290 driver.
As v6.6 was released with imx290 broken, both should be added to stable. But
I'm not sure if adding a Fixes tag to Patch 1 is correct, because it adds a
new feature patch 2 requires. Any suggestion is welcomed.
Best regards,
Alexander
[1] https://lore.kernel.org/linux-media/20231030173637.GA2977515@gnbcxd0016.gnb.st.com/
[2] https://lore.kernel.org/linux-media/ZUIuNDTJAN_fz3q6@kekkonen.localdomain/
Alexander Stein (2):
media: v4l2-cci: Add support for little-endian encoded registers
media: i2c: imx290: Properly encode registers as little-endian
drivers/media/i2c/imx290.c | 42 +++++++++++++++---------------
drivers/media/v4l2-core/v4l2-cci.c | 22 +++++++++++++---
include/media/v4l2-cci.h | 5 ++++
3 files changed, 44 insertions(+), 25 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers 2023-11-01 11:17 [PATCH 0/2] v4l2-cci: little-endian registers Alexander Stein @ 2023-11-01 11:17 ` Alexander Stein 2023-11-01 11:27 ` Hans de Goede 2023-11-01 11:28 ` Sakari Ailus 2023-11-01 11:17 ` [PATCH 2/2] media: i2c: imx290: Properly encode registers as little-endian Alexander Stein 2023-11-01 11:28 ` [PATCH 0/2] v4l2-cci: little-endian registers Hans de Goede 2 siblings, 2 replies; 6+ messages in thread From: Alexander Stein @ 2023-11-01 11:17 UTC (permalink / raw) To: Mauro Carvalho Chehab, Sakari Ailus, Manivannan Sadhasivam, Laurent Pinchart, Hans de Goede Cc: Alexander Stein, linux-media, Alain Volmat Some sensors, e.g. Sony, are using little-endian registers. Add support for those by encoding the endianess into Bit 20 of the register address. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> --- drivers/media/v4l2-core/v4l2-cci.c | 22 ++++++++++++++++++---- include/media/v4l2-cci.h | 5 +++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/media/v4l2-core/v4l2-cci.c b/drivers/media/v4l2-core/v4l2-cci.c index bc2dbec019b04..ea33cfd77d895 100644 --- a/drivers/media/v4l2-core/v4l2-cci.c +++ b/drivers/media/v4l2-core/v4l2-cci.c @@ -68,6 +68,7 @@ EXPORT_SYMBOL_GPL(cci_read); int cci_write(struct regmap *map, u32 reg, u64 val, int *err) { + bool little_endian; unsigned int len; u8 buf[8]; int ret; @@ -75,6 +76,7 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err) if (err && *err) return *err; + little_endian = reg & CCI_REG_LE; len = FIELD_GET(CCI_REG_WIDTH_MASK, reg); reg = FIELD_GET(CCI_REG_ADDR_MASK, reg); @@ -83,16 +85,28 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err) buf[0] = val; break; case 2: - put_unaligned_be16(val, buf); + if (little_endian) + put_unaligned_le16(val, buf); + else + put_unaligned_be16(val, buf); break; case 3: - put_unaligned_be24(val, buf); + if (little_endian) + put_unaligned_le24(val, buf); + else + put_unaligned_be24(val, buf); break; case 4: - put_unaligned_be32(val, buf); + if (little_endian) + put_unaligned_le32(val, buf); + else + put_unaligned_be32(val, buf); break; case 8: - put_unaligned_be64(val, buf); + if (little_endian) + put_unaligned_le64(val, buf); + else + put_unaligned_be64(val, buf); break; default: dev_err(regmap_get_device(map), "Error invalid reg-width %u for reg 0x%04x\n", diff --git a/include/media/v4l2-cci.h b/include/media/v4l2-cci.h index 0f6803e4b17e9..ef3faf0c9d44d 100644 --- a/include/media/v4l2-cci.h +++ b/include/media/v4l2-cci.h @@ -32,12 +32,17 @@ struct cci_reg_sequence { #define CCI_REG_ADDR_MASK GENMASK(15, 0) #define CCI_REG_WIDTH_SHIFT 16 #define CCI_REG_WIDTH_MASK GENMASK(19, 16) +#define CCI_REG_LE BIT(20) #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)) #define CCI_REG32(x) ((4 << CCI_REG_WIDTH_SHIFT) | (x)) #define CCI_REG64(x) ((8 << CCI_REG_WIDTH_SHIFT) | (x)) +#define CCI_REG16_LE(x) ((2 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) +#define CCI_REG24_LE(x) ((3 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) +#define CCI_REG32_LE(x) ((4 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) +#define CCI_REG64_LE(x) ((8 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) /** * cci_read() - Read a value from a single CCI register -- 2.34.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers 2023-11-01 11:17 ` [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers Alexander Stein @ 2023-11-01 11:27 ` Hans de Goede 2023-11-01 11:28 ` Sakari Ailus 1 sibling, 0 replies; 6+ messages in thread From: Hans de Goede @ 2023-11-01 11:27 UTC (permalink / raw) To: Alexander Stein, Mauro Carvalho Chehab, Sakari Ailus, Manivannan Sadhasivam, Laurent Pinchart Cc: linux-media, Alain Volmat Hi Alexander, On 11/1/23 12:17, Alexander Stein wrote: > Some sensors, e.g. Sony, are using little-endian registers. Add support for > those by encoding the endianess into Bit 20 of the register address. > > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Thank you very much for working on this. However it looks like you forgot to add support for the LE flag to cci_read(). Regards, Hans > --- > drivers/media/v4l2-core/v4l2-cci.c | 22 ++++++++++++++++++---- > include/media/v4l2-cci.h | 5 +++++ > 2 files changed, 23 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-cci.c b/drivers/media/v4l2-core/v4l2-cci.c > index bc2dbec019b04..ea33cfd77d895 100644 > --- a/drivers/media/v4l2-core/v4l2-cci.c > +++ b/drivers/media/v4l2-core/v4l2-cci.c > @@ -68,6 +68,7 @@ EXPORT_SYMBOL_GPL(cci_read); > > int cci_write(struct regmap *map, u32 reg, u64 val, int *err) > { > + bool little_endian; > unsigned int len; > u8 buf[8]; > int ret; > @@ -75,6 +76,7 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err) > if (err && *err) > return *err; > > + little_endian = reg & CCI_REG_LE; > len = FIELD_GET(CCI_REG_WIDTH_MASK, reg); > reg = FIELD_GET(CCI_REG_ADDR_MASK, reg); > > @@ -83,16 +85,28 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err) > buf[0] = val; > break; > case 2: > - put_unaligned_be16(val, buf); > + if (little_endian) > + put_unaligned_le16(val, buf); > + else > + put_unaligned_be16(val, buf); > break; > case 3: > - put_unaligned_be24(val, buf); > + if (little_endian) > + put_unaligned_le24(val, buf); > + else > + put_unaligned_be24(val, buf); > break; > case 4: > - put_unaligned_be32(val, buf); > + if (little_endian) > + put_unaligned_le32(val, buf); > + else > + put_unaligned_be32(val, buf); > break; > case 8: > - put_unaligned_be64(val, buf); > + if (little_endian) > + put_unaligned_le64(val, buf); > + else > + put_unaligned_be64(val, buf); > break; > default: > dev_err(regmap_get_device(map), "Error invalid reg-width %u for reg 0x%04x\n", > diff --git a/include/media/v4l2-cci.h b/include/media/v4l2-cci.h > index 0f6803e4b17e9..ef3faf0c9d44d 100644 > --- a/include/media/v4l2-cci.h > +++ b/include/media/v4l2-cci.h > @@ -32,12 +32,17 @@ struct cci_reg_sequence { > #define CCI_REG_ADDR_MASK GENMASK(15, 0) > #define CCI_REG_WIDTH_SHIFT 16 > #define CCI_REG_WIDTH_MASK GENMASK(19, 16) > +#define CCI_REG_LE BIT(20) > > #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)) > #define CCI_REG32(x) ((4 << CCI_REG_WIDTH_SHIFT) | (x)) > #define CCI_REG64(x) ((8 << CCI_REG_WIDTH_SHIFT) | (x)) > +#define CCI_REG16_LE(x) ((2 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > +#define CCI_REG24_LE(x) ((3 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > +#define CCI_REG32_LE(x) ((4 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > +#define CCI_REG64_LE(x) ((8 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > > /** > * cci_read() - Read a value from a single CCI register ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers 2023-11-01 11:17 ` [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers Alexander Stein 2023-11-01 11:27 ` Hans de Goede @ 2023-11-01 11:28 ` Sakari Ailus 1 sibling, 0 replies; 6+ messages in thread From: Sakari Ailus @ 2023-11-01 11:28 UTC (permalink / raw) To: Alexander Stein Cc: Mauro Carvalho Chehab, Manivannan Sadhasivam, Laurent Pinchart, Hans de Goede, linux-media, Alain Volmat Hi Alexander, On Wed, Nov 01, 2023 at 12:17:46PM +0100, Alexander Stein wrote: > Some sensors, e.g. Sony, are using little-endian registers. Add support for > those by encoding the endianess into Bit 20 of the register address. Thank you for the patchset. The set seems good to me except that I think you're missing the corresponding cci_read() changes here. > > Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > drivers/media/v4l2-core/v4l2-cci.c | 22 ++++++++++++++++++---- > include/media/v4l2-cci.h | 5 +++++ > 2 files changed, 23 insertions(+), 4 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-cci.c b/drivers/media/v4l2-core/v4l2-cci.c > index bc2dbec019b04..ea33cfd77d895 100644 > --- a/drivers/media/v4l2-core/v4l2-cci.c > +++ b/drivers/media/v4l2-core/v4l2-cci.c > @@ -68,6 +68,7 @@ EXPORT_SYMBOL_GPL(cci_read); > > int cci_write(struct regmap *map, u32 reg, u64 val, int *err) > { > + bool little_endian; > unsigned int len; > u8 buf[8]; > int ret; > @@ -75,6 +76,7 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err) > if (err && *err) > return *err; > > + little_endian = reg & CCI_REG_LE; > len = FIELD_GET(CCI_REG_WIDTH_MASK, reg); > reg = FIELD_GET(CCI_REG_ADDR_MASK, reg); > > @@ -83,16 +85,28 @@ int cci_write(struct regmap *map, u32 reg, u64 val, int *err) > buf[0] = val; > break; > case 2: > - put_unaligned_be16(val, buf); > + if (little_endian) > + put_unaligned_le16(val, buf); > + else > + put_unaligned_be16(val, buf); > break; > case 3: > - put_unaligned_be24(val, buf); > + if (little_endian) > + put_unaligned_le24(val, buf); > + else > + put_unaligned_be24(val, buf); > break; > case 4: > - put_unaligned_be32(val, buf); > + if (little_endian) > + put_unaligned_le32(val, buf); > + else > + put_unaligned_be32(val, buf); > break; > case 8: > - put_unaligned_be64(val, buf); > + if (little_endian) > + put_unaligned_le64(val, buf); > + else > + put_unaligned_be64(val, buf); > break; > default: > dev_err(regmap_get_device(map), "Error invalid reg-width %u for reg 0x%04x\n", > diff --git a/include/media/v4l2-cci.h b/include/media/v4l2-cci.h > index 0f6803e4b17e9..ef3faf0c9d44d 100644 > --- a/include/media/v4l2-cci.h > +++ b/include/media/v4l2-cci.h > @@ -32,12 +32,17 @@ struct cci_reg_sequence { > #define CCI_REG_ADDR_MASK GENMASK(15, 0) > #define CCI_REG_WIDTH_SHIFT 16 > #define CCI_REG_WIDTH_MASK GENMASK(19, 16) > +#define CCI_REG_LE BIT(20) > > #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)) > #define CCI_REG32(x) ((4 << CCI_REG_WIDTH_SHIFT) | (x)) > #define CCI_REG64(x) ((8 << CCI_REG_WIDTH_SHIFT) | (x)) > +#define CCI_REG16_LE(x) ((2 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > +#define CCI_REG24_LE(x) ((3 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > +#define CCI_REG32_LE(x) ((4 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > +#define CCI_REG64_LE(x) ((8 << CCI_REG_WIDTH_SHIFT) | (x) | CCI_REG_LE) > > /** > * cci_read() - Read a value from a single CCI register -- Regards, Sakari Ailus ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] media: i2c: imx290: Properly encode registers as little-endian 2023-11-01 11:17 [PATCH 0/2] v4l2-cci: little-endian registers Alexander Stein 2023-11-01 11:17 ` [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers Alexander Stein @ 2023-11-01 11:17 ` Alexander Stein 2023-11-01 11:28 ` [PATCH 0/2] v4l2-cci: little-endian registers Hans de Goede 2 siblings, 0 replies; 6+ messages in thread From: Alexander Stein @ 2023-11-01 11:17 UTC (permalink / raw) To: Mauro Carvalho Chehab, Sakari Ailus, Manivannan Sadhasivam, Laurent Pinchart, Hans de Goede Cc: Alexander Stein, linux-media, Alain Volmat 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. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> --- drivers/media/i2c/imx290.c | 42 +++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c index 29098612813cb..c6fea5837a19f 100644 --- a/drivers/media/i2c/imx290.c +++ b/drivers/media/i2c/imx290.c @@ -41,18 +41,18 @@ #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) @@ -78,28 +78,28 @@ #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) -- 2.34.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/2] v4l2-cci: little-endian registers 2023-11-01 11:17 [PATCH 0/2] v4l2-cci: little-endian registers Alexander Stein 2023-11-01 11:17 ` [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers Alexander Stein 2023-11-01 11:17 ` [PATCH 2/2] media: i2c: imx290: Properly encode registers as little-endian Alexander Stein @ 2023-11-01 11:28 ` Hans de Goede 2 siblings, 0 replies; 6+ messages in thread From: Hans de Goede @ 2023-11-01 11:28 UTC (permalink / raw) To: Alexander Stein, Mauro Carvalho Chehab, Sakari Ailus, Manivannan Sadhasivam, Laurent Pinchart Cc: linux-media, Alain Volmat Hi, On 11/1/23 12:17, Alexander Stein wrote: > Hi, > > after the discussions at [1] and [2], this series adds proper support for > little-endian encoded registers. > Patch 1 adds the infrastructure and patch 2 fixes imx290 driver. > As v6.6 was released with imx290 broken, both should be added to stable. But > I'm not sure if adding a Fixes tag to Patch 1 is correct, because it adds a > new feature patch 2 requires. Any suggestion is welcomed. I usually just add the Fixes: + Cc: stable@ tags to both patches in cases like these. Please add the tags to both patches for v2 (with cci_read() also fixed). Regards, Hans > [1] https://lore.kernel.org/linux-media/20231030173637.GA2977515@gnbcxd0016.gnb.st.com/ > [2] https://lore.kernel.org/linux-media/ZUIuNDTJAN_fz3q6@kekkonen.localdomain/ > > Alexander Stein (2): > media: v4l2-cci: Add support for little-endian encoded registers > media: i2c: imx290: Properly encode registers as little-endian > > drivers/media/i2c/imx290.c | 42 +++++++++++++++--------------- > drivers/media/v4l2-core/v4l2-cci.c | 22 +++++++++++++--- > include/media/v4l2-cci.h | 5 ++++ > 3 files changed, 44 insertions(+), 25 deletions(-) > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-11-01 11:29 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-01 11:17 [PATCH 0/2] v4l2-cci: little-endian registers Alexander Stein 2023-11-01 11:17 ` [PATCH 1/2] media: v4l2-cci: Add support for little-endian encoded registers Alexander Stein 2023-11-01 11:27 ` Hans de Goede 2023-11-01 11:28 ` Sakari Ailus 2023-11-01 11:17 ` [PATCH 2/2] media: i2c: imx290: Properly encode registers as little-endian Alexander Stein 2023-11-01 11:28 ` [PATCH 0/2] v4l2-cci: little-endian registers Hans de Goede
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.