Re: [PATCH 1/3] drm: atmel-hlcdc: add support for LVDS encoder type

From: Manikandan.M
Date: Tue Jan 28 2025 - 00:08:31 EST


Hi,

A gentle reminder to review this series.

On 21/11/24 2:53 pm, Manikandan Muralidharan wrote:
> From: Dharma Balasubiramani <dharma.b@xxxxxxxxxxxxx>
>
> Add support for encoder type "DRM_MODE_ENCODER_LVDS" with the following
> bus formats:
> - RGB888_1X7X4_SPWG
> - RGB888_1X7X4_JEIDA
> - RGB666_1X7X3_SPWG
> - RGB666_1X18
>
> Signed-off-by: Dharma Balasubiramani <dharma.b@xxxxxxxxxxxxx>
> [manikandan.m@xxxxxxxxxxxxx: move modifications inside the
> atmel_xlcdc_connector_output_lvds fn]
> Signed-off-by: Manikandan Muralidharan <manikandan.m@xxxxxxxxxxxxx>
> ---
> .../gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 38 +++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> index 0f7ffb3ced20..0e709047369a 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
> @@ -356,6 +356,42 @@ static int atmel_xlcdc_connector_output_dsi(struct drm_encoder *encoder,
> return supported_fmts;
> }
>
> +static int atmel_xlcdc_connector_output_lvds(struct drm_encoder *encoder,
> + struct drm_display_info *info)
> +{
> + int j;
> + unsigned int supported_fmts = 0;
> +
> + switch (atmel_hlcdc_encoder_get_bus_fmt(encoder)) {
> + case 0:
> + break;
> + case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
> + case MEDIA_BUS_FMT_RGB666_1X18:
> + return ATMEL_HLCDC_RGB666_OUTPUT;
> + case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
> + case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
> + return ATMEL_HLCDC_RGB888_OUTPUT;
> + default:
> + return -EINVAL;
> + }
> +
> + for (j = 0; j < info->num_bus_formats; j++) {
> + switch (info->bus_formats[j]) {
> + case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
> + case MEDIA_BUS_FMT_RGB666_1X18:
> + supported_fmts |= ATMEL_HLCDC_RGB666_OUTPUT;
> + break;
> + case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
> + case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
> + supported_fmts |= ATMEL_HLCDC_RGB888_OUTPUT;
> + break;
> + default:
> + break;
> + }
> + }
> + return supported_fmts;
> +}
> +
> static int atmel_hlcdc_connector_output_mode(struct drm_connector_state *state)
> {
> struct drm_connector *connector = state->connector;
> @@ -374,6 +410,8 @@ static int atmel_hlcdc_connector_output_mode(struct drm_connector_state *state)
> */
> if (encoder->encoder_type == DRM_MODE_ENCODER_DSI)
> return atmel_xlcdc_connector_output_dsi(encoder, info);
> + else if (encoder->encoder_type == DRM_MODE_ENCODER_LVDS)
> + return atmel_xlcdc_connector_output_lvds(encoder, info);
>
> switch (atmel_hlcdc_encoder_get_bus_fmt(encoder)) {
> case 0:

--
Thanks and Regards,
Manikandan M.