diff mbox series

[v2] drm/bridge: ite-it6263: Support VESA-24 input format

Message ID 20241205080210.1285385-1-tommaso.merciai.xr@bp.renesas.com (mailing list archive)
State New
Delegated to: Kieran Bingham
Headers show
Series [v2] drm/bridge: ite-it6263: Support VESA-24 input format | expand

Commit Message

Tommaso Merciai Dec. 5, 2024, 8:02 a.m. UTC
From: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>

Introduce it6263_is_input_bus_fmt_valid() and refactor the
it6263_bridge_atomic_get_input_bus_fmts() function to support VESA-24
format by selecting the LVDS input format based on the LVDS data mapping
and thereby support both JEIDA-24 and VESA-24 input formats.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
---
Changes since v1:
 - Inline it6263_is_input_bus_fmt_valid() as suggested by LYing
 - Fixed it6263_is_input_bus_fmt_valid() param from u32 to int as suggested by LYing
 - Fixed commit msg as suggested by LYing
 - Fixed commit body as suggested by LYing
 - Collected DBaryshkov tag

 drivers/gpu/drm/bridge/ite-it6263.c | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

Comments

Liu Ying Dec. 5, 2024, 8:54 a.m. UTC | #1
On 12/05/2024, tomm.merciai@gmail.com wrote:
> From: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
> 
> Introduce it6263_is_input_bus_fmt_valid() and refactor the
> it6263_bridge_atomic_get_input_bus_fmts() function to support VESA-24
> format by selecting the LVDS input format based on the LVDS data mapping
> and thereby support both JEIDA-24 and VESA-24 input formats.
> 
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
> ---
> Changes since v1:
>  - Inline it6263_is_input_bus_fmt_valid() as suggested by LYing
>  - Fixed it6263_is_input_bus_fmt_valid() param from u32 to int as suggested by LYing
>  - Fixed commit msg as suggested by LYing
>  - Fixed commit body as suggested by LYing
>  - Collected DBaryshkov tag
> 
>  drivers/gpu/drm/bridge/ite-it6263.c | 25 ++++++++++++++++++++++---
>  1 file changed, 22 insertions(+), 3 deletions(-)

Reviewed-by: Liu Ying <victor.liu@nxp.com>

Since I have no drm-misc push right, Neil, Robert, Laurent or
Dmitry, can you help push this?  Ofc, no rush. It's fine to wait
for a period of time for potential comments.
Dmitry Baryshkov Dec. 5, 2024, 7:37 p.m. UTC | #2
On Thu, Dec 05, 2024 at 04:54:09PM +0800, Liu Ying wrote:
> On 12/05/2024, tomm.merciai@gmail.com wrote:
> > From: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
> > 
> > Introduce it6263_is_input_bus_fmt_valid() and refactor the
> > it6263_bridge_atomic_get_input_bus_fmts() function to support VESA-24
> > format by selecting the LVDS input format based on the LVDS data mapping
> > and thereby support both JEIDA-24 and VESA-24 input formats.
> > 
> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
> > ---
> > Changes since v1:
> >  - Inline it6263_is_input_bus_fmt_valid() as suggested by LYing
> >  - Fixed it6263_is_input_bus_fmt_valid() param from u32 to int as suggested by LYing
> >  - Fixed commit msg as suggested by LYing
> >  - Fixed commit body as suggested by LYing
> >  - Collected DBaryshkov tag
> > 
> >  drivers/gpu/drm/bridge/ite-it6263.c | 25 ++++++++++++++++++++++---
> >  1 file changed, 22 insertions(+), 3 deletions(-)
> 
> Reviewed-by: Liu Ying <victor.liu@nxp.com>
> 
> Since I have no drm-misc push right, Neil, Robert, Laurent or
> Dmitry, can you help push this?  Ofc, no rush. It's fine to wait
> for a period of time for potential comments.

I'll wait for a few days and apply the patch if nobody else beats me on
it.
Biju Das Dec. 9, 2024, 5:20 p.m. UTC | #3
Hi Tommaso Merciai,

> -----Original Message-----
> From: tomm.merciai@gmail.com <tomm.merciai@gmail.com>
> Sent: 05 December 2024 08:02
> Subject: [PATCH v2] drm/bridge: ite-it6263: Support VESA-24 input format
> 
> From: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
> 
> Introduce it6263_is_input_bus_fmt_valid() and refactor the
> it6263_bridge_atomic_get_input_bus_fmts() function to support VESA-24 format by selecting the LVDS
> input format based on the LVDS data mapping and thereby support both JEIDA-24 and VESA-24 input
> formats.
> 
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>

Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>

Cheers,
Biju
Dmitry Baryshkov Dec. 10, 2024, 10:47 a.m. UTC | #4
On Thu, 05 Dec 2024 09:02:10 +0100, tomm.merciai@gmail.com wrote:
> Introduce it6263_is_input_bus_fmt_valid() and refactor the
> it6263_bridge_atomic_get_input_bus_fmts() function to support VESA-24
> format by selecting the LVDS input format based on the LVDS data mapping
> and thereby support both JEIDA-24 and VESA-24 input formats.
> 
> 

Applied to drm-misc-next, thanks!

[1/1] drm/bridge: ite-it6263: Support VESA-24 input format
      commit: 919b1458ccfd33ead891fa4ad1e1d06016f5a20c

Best regards,
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/ite-it6263.c b/drivers/gpu/drm/bridge/ite-it6263.c
index cbabd4e20d3e..3fc5c6795487 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 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;