Hi Liu Ying, Thanks for your review. On Wed, Dec 04, 2024 at 11:34:23AM +0800, Liu Ying wrote: > On 12/04/2024, tomm.merciai@xxxxxxxxx wrote: > > From: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx> > > > > Introduce it6263_is_input_bus_fmt_valid() and refactor the > > it6263_bridge_atomic_get_input_bus_fmts() function to support VESA > > format by selecting the LVDS input format based on the LVDS data mapping > > and thereby support both JEIDA and VESA input formats. > > ite,it6263.yaml says IT6263 supports vesa-24 and vesa-30, while > this patch actually only adds vesa-24 support. So, to be more > specific, the patch subject and commit message should reflect > this rather than claim "Support VESA input format". Fully agree, thanks. I will fix that in v2 specifying vesa-24 like you suggest. > > > > > Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx> > > Can you please send this patch with your Renesas email address > instead of Gmail email address? > Otherwise, add a Signed-off-by tag with your Gmail email address. Thanks, for the point. What about adding Acked-by: from my renesas email address? > > > --- > > drivers/gpu/drm/bridge/ite-it6263.c | 25 ++++++++++++++++++++++--- > > 1 file changed, 22 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/bridge/ite-it6263.c b/drivers/gpu/drm/bridge/ite-it6263.c > > index cbabd4e20d3e..83d1db29157a 100644 > > --- a/drivers/gpu/drm/bridge/ite-it6263.c > > +++ b/drivers/gpu/drm/bridge/ite-it6263.c > > @@ -48,6 +48,7 @@ > > #define REG_COL_DEP GENMASK(1, 0) > > #define BIT8 FIELD_PREP(REG_COL_DEP, 1) > > #define OUT_MAP BIT(4) > > +#define VESA BIT(4) > > #define JEIDA 0 > > #define REG_DESSC_ENB BIT(6) > > #define DMODE BIT(7) > > @@ -428,12 +429,30 @@ static inline void it6263_lvds_reset(struct it6263 *it) > > fsleep(10000); > > } > > > > +static bool it6263_is_input_bus_fmt_valid(u32 input_fmt) > > 1) Inline this small function. > 2) Change the argument input_fmt type from u32 to int to > match the type of it->lvds_data_mapping. Will fix that in v2, thanks :) > > static inline bool it6263_is_input_bus_fmt_valid(int input_fmt) > > > +{ > > + switch (input_fmt) { > > + case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA: > > + case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG: > > + return true; > > + } > > + return false; > > +} > > + > > static inline void it6263_lvds_set_interface(struct it6263 *it) > > { > > + u8 fmt; > > + > > /* color depth */ > > regmap_write_bits(it->lvds_regmap, LVDS_REG_2C, REG_COL_DEP, BIT8); > > + > > + if (it->lvds_data_mapping == MEDIA_BUS_FMT_RGB888_1X7X4_SPWG) > > + fmt = VESA; > > + else > > + fmt = JEIDA; > > + > > /* output mapping */ > > - regmap_write_bits(it->lvds_regmap, LVDS_REG_2C, OUT_MAP, JEIDA); > > + regmap_write_bits(it->lvds_regmap, LVDS_REG_2C, OUT_MAP, fmt); > > > > if (it->lvds_dual_link) { > > regmap_write_bits(it->lvds_regmap, LVDS_REG_2C, DMODE, DISO); > > @@ -714,14 +733,14 @@ it6263_bridge_atomic_get_input_bus_fmts(struct drm_bridge *bridge, > > > > *num_input_fmts = 0; > > > > - if (it->lvds_data_mapping != MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA) > > + if (!it6263_is_input_bus_fmt_valid(it->lvds_data_mapping)) > > return NULL; > > > > input_fmts = kmalloc(sizeof(*input_fmts), GFP_KERNEL); > > if (!input_fmts) > > return NULL; > > > > - input_fmts[0] = MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA; > > + input_fmts[0] = it->lvds_data_mapping; > > *num_input_fmts = 1; > > > > return input_fmts; > > -- > Regards, > Liu Ying Thanks & Regards, Tommaso >