All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm: mxsfb: Support 24-bit SPWG, JEIDA bus formats
@ 2021-07-04  9:38 Jagan Teki
  2021-07-04  9:53 ` Marek Vasut
  0 siblings, 1 reply; 4+ messages in thread
From: Jagan Teki @ 2021-07-04  9:38 UTC (permalink / raw)
  To: Marek Vasut, Stefan Agner
  Cc: Jagan Teki, Laurent Pinchart, dri-devel, NXP Linux Team

24-bit SPWG, JEIDA bus formats are considered as 24-bit
bus widths for LCDC_CTRL register in mxsfb.

Add support for it.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
 drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
index 22cb749fc9bc..5657155f9633 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
@@ -85,6 +85,8 @@ static void mxsfb_set_formats(struct mxsfb_drm_private *mxsfb,
 		ctrl |= CTRL_BUS_WIDTH_18;
 		break;
 	case MEDIA_BUS_FMT_RGB888_1X24:
+	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
+	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
 		ctrl |= CTRL_BUS_WIDTH_24;
 		break;
 	default:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm: mxsfb: Support 24-bit SPWG, JEIDA bus formats
  2021-07-04  9:38 [PATCH] drm: mxsfb: Support 24-bit SPWG, JEIDA bus formats Jagan Teki
@ 2021-07-04  9:53 ` Marek Vasut
  2021-07-04  9:57   ` Jagan Teki
  0 siblings, 1 reply; 4+ messages in thread
From: Marek Vasut @ 2021-07-04  9:53 UTC (permalink / raw)
  To: Jagan Teki, Stefan Agner; +Cc: Laurent Pinchart, dri-devel, NXP Linux Team

On 7/4/21 11:38 AM, Jagan Teki wrote:
> 24-bit SPWG, JEIDA bus formats are considered as 24-bit
> bus widths for LCDC_CTRL register in mxsfb.
> 
> Add support for it.
> 
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>   drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
> index 22cb749fc9bc..5657155f9633 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
> @@ -85,6 +85,8 @@ static void mxsfb_set_formats(struct mxsfb_drm_private *mxsfb,
>   		ctrl |= CTRL_BUS_WIDTH_18;
>   		break;
>   	case MEDIA_BUS_FMT_RGB888_1X24:
> +	case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
> +	case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:

On MX8MM/MN, the bus between LCDIF and DSIM is plain parallel bus, so 
this patch is wrong.

You want to pick
drm: mxsfb: Use bus_format from the nearest bridge if present
and then implement .atomic_get_input_bus_fmts on all your bridges. And 
only then you will get the correct MEDIA_BUS_FMT_RGB888_1X24 here.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm: mxsfb: Support 24-bit SPWG, JEIDA bus formats
  2021-07-04  9:53 ` Marek Vasut
@ 2021-07-04  9:57   ` Jagan Teki
  2021-07-04 10:12     ` Marek Vasut
  0 siblings, 1 reply; 4+ messages in thread
From: Jagan Teki @ 2021-07-04  9:57 UTC (permalink / raw)
  To: Marek Vasut; +Cc: dri-devel, Laurent Pinchart, NXP Linux Team

Hi Marek,

On Sun, Jul 4, 2021 at 3:23 PM Marek Vasut <marex@denx.de> wrote:
>
> On 7/4/21 11:38 AM, Jagan Teki wrote:
> > 24-bit SPWG, JEIDA bus formats are considered as 24-bit
> > bus widths for LCDC_CTRL register in mxsfb.
> >
> > Add support for it.
> >
> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> > ---
> >   drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
> > index 22cb749fc9bc..5657155f9633 100644
> > --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c
> > +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
> > @@ -85,6 +85,8 @@ static void mxsfb_set_formats(struct mxsfb_drm_private *mxsfb,
> >               ctrl |= CTRL_BUS_WIDTH_18;
> >               break;
> >       case MEDIA_BUS_FMT_RGB888_1X24:
> > +     case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
> > +     case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
>
> On MX8MM/MN, the bus between LCDIF and DSIM is plain parallel bus, so
> this patch is wrong.

Unsure since these flags are setting from panel side.

>
> You want to pick
> drm: mxsfb: Use bus_format from the nearest bridge if present
> and then implement .atomic_get_input_bus_fmts on all your bridges. And
> only then you will get the correct MEDIA_BUS_FMT_RGB888_1X24 here.

I did pick this patch along with all your mxsfb recent changes, but
issue still persist. It work only when I set the LCDC_CTRL explicitly
like the patch does.

Thanks,
Jagan.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm: mxsfb: Support 24-bit SPWG, JEIDA bus formats
  2021-07-04  9:57   ` Jagan Teki
@ 2021-07-04 10:12     ` Marek Vasut
  0 siblings, 0 replies; 4+ messages in thread
From: Marek Vasut @ 2021-07-04 10:12 UTC (permalink / raw)
  To: Jagan Teki; +Cc: dri-devel, Laurent Pinchart, NXP Linux Team

On 7/4/21 11:57 AM, Jagan Teki wrote:
> Hi Marek,
> 
> On Sun, Jul 4, 2021 at 3:23 PM Marek Vasut <marex@denx.de> wrote:
>>
>> On 7/4/21 11:38 AM, Jagan Teki wrote:
>>> 24-bit SPWG, JEIDA bus formats are considered as 24-bit
>>> bus widths for LCDC_CTRL register in mxsfb.
>>>
>>> Add support for it.
>>>
>>> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
>>> ---
>>>    drivers/gpu/drm/mxsfb/mxsfb_kms.c | 2 ++
>>>    1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
>>> index 22cb749fc9bc..5657155f9633 100644
>>> --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c
>>> +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c
>>> @@ -85,6 +85,8 @@ static void mxsfb_set_formats(struct mxsfb_drm_private *mxsfb,
>>>                ctrl |= CTRL_BUS_WIDTH_18;
>>>                break;
>>>        case MEDIA_BUS_FMT_RGB888_1X24:
>>> +     case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
>>> +     case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
>>
>> On MX8MM/MN, the bus between LCDIF and DSIM is plain parallel bus, so
>> this patch is wrong.
> 
> Unsure since these flags are setting from panel side.

On MX8MM/MN, the panel is NOT connected directly to the LCDIF. There is
LCDIF->(DPI bus)->DSIM bridge->(DSI bus)->DSI-to-LVDS-bridge->(LVDS 
bus)->LVDS panel
It is the DSI bus past DSIM that is coming out of the SoC.

>> You want to pick
>> drm: mxsfb: Use bus_format from the nearest bridge if present
>> and then implement .atomic_get_input_bus_fmts on all your bridges. And
>> only then you will get the correct MEDIA_BUS_FMT_RGB888_1X24 here.
> 
> I did pick this patch along with all your mxsfb recent changes, but
> issue still persist. It work only when I set the LCDC_CTRL explicitly
> like the patch does.

You must implement .atomic_get_input_bus_fmts on all your bridges .
Then the format gets propagated correctly.

Look at e.g.
drm/bridge: ti-sn65dsi83: Replace connector format patching with 
atomic_get_input_bus_fmts
same thing applies to the DSIM, and possibly whatever other bridge you 
might have in the LCDIF->...->LVDS panel path.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-04 10:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-04  9:38 [PATCH] drm: mxsfb: Support 24-bit SPWG, JEIDA bus formats Jagan Teki
2021-07-04  9:53 ` Marek Vasut
2021-07-04  9:57   ` Jagan Teki
2021-07-04 10:12     ` Marek Vasut

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.