Re: [PATCH] drm/bridge: ite-it6263: Support VESA input format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


> 



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux