On 12/04/2024, tomm.merc...@gmail.com wrote:
> From: Tommaso Merciai <tommaso.merciai...@bp.renesas.com>
> 
> 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".

> 
> Signed-off-by: Tommaso Merciai <tommaso.merciai...@bp.renesas.com>

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.

> ---
>  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.

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

Reply via email to