devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] staging: imx_drm: imx_ldb: fix 18 bit format
@ 2013-06-07  8:37 Steffen Trumtrar
       [not found] ` <1370594228-2869-1-git-send-email-s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Steffen Trumtrar @ 2013-06-07  8:37 UTC (permalink / raw)
  To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
  Cc: devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b, Fabio Estevam,
	Steffen Trumtrar, Greg Kroah-Hartman,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ, Markus Niebel, Martin Fuzzey,
	Philipp Zabel, Sean Cross, Sascha Hauer

From: Markus Niebel <Markus.Niebel-77yLcl8UjJQ@public.gmane.org>

Since 18 bit is supported as datawidth in device tree it should be
supported in driver. Beside the LDB channel the IPU channel has also
to be configured to use BGR666.

Signed-off-by: Markus Niebel <Markus.Niebel-77yLcl8UjJQ@public.gmane.org>
Signed-off-by: Steffen Trumtrar <s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
---
This is based on the series: "staging: drm/imx: Add LDB support"
by Philipp.


 drivers/staging/imx-drm/imx-ldb.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/imx-drm/imx-ldb.c b/drivers/staging/imx-drm/imx-ldb.c
index d8fc93c..84bf7d3 100644
--- a/drivers/staging/imx-drm/imx-ldb.c
+++ b/drivers/staging/imx-drm/imx-ldb.c
@@ -179,6 +179,7 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
 	struct imx_ldb *ldb = imx_ldb_ch->ldb;
 	struct drm_display_mode *mode = &encoder->crtc->mode;
+	u32 pixel_fmt;
 	unsigned long serial_clk;
 	unsigned long di_clk = mode->clock * 1000;
 	int mux = imx_drm_encoder_get_mux_id(imx_ldb_ch->imx_drm_encoder,
@@ -194,8 +195,23 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
 		imx_ldb_set_clock(ldb, mux, imx_ldb_ch->chno, serial_clk, di_clk);
 	}
 
+	switch (imx_ldb_ch->chno) {
+	case 0:
+		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH0_24) ?
+			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
+		break;
+	case 1:
+		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH1_24) ?
+			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
+		break;
+	default:
+		dev_err(ldb->dev, "unable to config di%d panel format\n",
+			imx_ldb_ch->chno);
+		pixel_fmt = V4L2_PIX_FMT_RGB24;
+	}
+
 	imx_drm_crtc_panel_format_pins(encoder->crtc, DRM_MODE_ENCODER_LVDS,
-			V4L2_PIX_FMT_RGB24, 2, 3);
+			pixel_fmt, 2, 3);
 }
 
 static void imx_ldb_encoder_commit(struct drm_encoder *encoder)
-- 
1.8.2.rc2

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

* Re: [PATCH] staging: imx_drm: imx_ldb: fix 18 bit format
       [not found] ` <1370594228-2869-1-git-send-email-s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
@ 2013-06-08  4:49   ` Shawn Guo
  2013-06-08  7:25     ` Steffen Trumtrar
  0 siblings, 1 reply; 4+ messages in thread
From: Shawn Guo @ 2013-06-08  4:49 UTC (permalink / raw)
  To: Steffen Trumtrar
  Cc: devel-gWbeCf7V1WCQmaza687I9mD2FQJk+8+b, Fabio Estevam,
	Greg Kroah-Hartman, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
	kernel-bIcnvbaLZ9MEGnE8C9+IrQ, Markus Niebel, Martin Fuzzey,
	Philipp Zabel, Sean Cross, Sascha Hauer,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r

On Fri, Jun 07, 2013 at 10:37:08AM +0200, Steffen Trumtrar wrote:
> From: Markus Niebel <Markus.Niebel-77yLcl8UjJQ@public.gmane.org>
> 
> Since 18 bit is supported as datawidth in device tree it should be
> supported in driver. Beside the LDB channel the IPU channel has also
> to be configured to use BGR666.
> 
> Signed-off-by: Markus Niebel <Markus.Niebel-77yLcl8UjJQ@public.gmane.org>
> Signed-off-by: Steffen Trumtrar <s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> ---
> This is based on the series: "staging: drm/imx: Add LDB support"
> by Philipp.
> 
> 
>  drivers/staging/imx-drm/imx-ldb.c | 18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/imx-drm/imx-ldb.c b/drivers/staging/imx-drm/imx-ldb.c
> index d8fc93c..84bf7d3 100644
> --- a/drivers/staging/imx-drm/imx-ldb.c
> +++ b/drivers/staging/imx-drm/imx-ldb.c
> @@ -179,6 +179,7 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
>  	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
>  	struct imx_ldb *ldb = imx_ldb_ch->ldb;
>  	struct drm_display_mode *mode = &encoder->crtc->mode;
> +	u32 pixel_fmt;
>  	unsigned long serial_clk;
>  	unsigned long di_clk = mode->clock * 1000;
>  	int mux = imx_drm_encoder_get_mux_id(imx_ldb_ch->imx_drm_encoder,
> @@ -194,8 +195,23 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
>  		imx_ldb_set_clock(ldb, mux, imx_ldb_ch->chno, serial_clk, di_clk);
>  	}
>  
> +	switch (imx_ldb_ch->chno) {
> +	case 0:
> +		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH0_24) ?
> +			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
> +		break;
> +	case 1:
> +		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH1_24) ?
> +			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
> +		break;
> +	default:
> +		dev_err(ldb->dev, "unable to config di%d panel format\n",
> +			imx_ldb_ch->chno);
> +		pixel_fmt = V4L2_PIX_FMT_RGB24;
> +	}
> +
>  	imx_drm_crtc_panel_format_pins(encoder->crtc, DRM_MODE_ENCODER_LVDS,
> -			V4L2_PIX_FMT_RGB24, 2, 3);
> +			pixel_fmt, 2, 3);

It seems the patch is based on an updated version of "staging: drm/imx:
Add LDB support"?  The last one from Philipp [1] calls function
imx_drm_crtc_panel_format() rather than imx_drm_crtc_panel_format_pins()
there.

Shawn

[1] http://thread.gmane.org/gmane.linux.drivers.driver-project.devel/36836/focus=36834

>  }
>  
>  static void imx_ldb_encoder_commit(struct drm_encoder *encoder)
> -- 
> 1.8.2.rc2
> 

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

* Re: [PATCH] staging: imx_drm: imx_ldb: fix 18 bit format
  2013-06-08  4:49   ` Shawn Guo
@ 2013-06-08  7:25     ` Steffen Trumtrar
  2013-06-10  8:06       ` Markus Niebel
  0 siblings, 1 reply; 4+ messages in thread
From: Steffen Trumtrar @ 2013-06-08  7:25 UTC (permalink / raw)
  To: Shawn Guo
  Cc: devel, Fabio Estevam, Greg Kroah-Hartman, devicetree-discuss,
	kernel, Markus Niebel, Martin Fuzzey, Philipp Zabel, Sean Cross,
	Sascha Hauer, linux-arm-kernel

Hi Shawn!

On Sat, Jun 08, 2013 at 12:49:47PM +0800, Shawn Guo wrote:
> On Fri, Jun 07, 2013 at 10:37:08AM +0200, Steffen Trumtrar wrote:
> > From: Markus Niebel <Markus.Niebel@tqs.de>
> > 
> > Since 18 bit is supported as datawidth in device tree it should be
> > supported in driver. Beside the LDB channel the IPU channel has also
> > to be configured to use BGR666.
> > 
> > Signed-off-by: Markus Niebel <Markus.Niebel@tqs.de>
> > Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
> > ---
> > This is based on the series: "staging: drm/imx: Add LDB support"
> > by Philipp.
> > 
> > 
> >  drivers/staging/imx-drm/imx-ldb.c | 18 +++++++++++++++++-
> >  1 file changed, 17 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/staging/imx-drm/imx-ldb.c b/drivers/staging/imx-drm/imx-ldb.c
> > index d8fc93c..84bf7d3 100644
> > --- a/drivers/staging/imx-drm/imx-ldb.c
> > +++ b/drivers/staging/imx-drm/imx-ldb.c
> > @@ -179,6 +179,7 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
> >  	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
> >  	struct imx_ldb *ldb = imx_ldb_ch->ldb;
> >  	struct drm_display_mode *mode = &encoder->crtc->mode;
> > +	u32 pixel_fmt;
> >  	unsigned long serial_clk;
> >  	unsigned long di_clk = mode->clock * 1000;
> >  	int mux = imx_drm_encoder_get_mux_id(imx_ldb_ch->imx_drm_encoder,
> > @@ -194,8 +195,23 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
> >  		imx_ldb_set_clock(ldb, mux, imx_ldb_ch->chno, serial_clk, di_clk);
> >  	}
> >  
> > +	switch (imx_ldb_ch->chno) {
> > +	case 0:
> > +		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH0_24) ?
> > +			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
> > +		break;
> > +	case 1:
> > +		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH1_24) ?
> > +			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
> > +		break;
> > +	default:
> > +		dev_err(ldb->dev, "unable to config di%d panel format\n",
> > +			imx_ldb_ch->chno);
> > +		pixel_fmt = V4L2_PIX_FMT_RGB24;
> > +	}
> > +
> >  	imx_drm_crtc_panel_format_pins(encoder->crtc, DRM_MODE_ENCODER_LVDS,
> > -			V4L2_PIX_FMT_RGB24, 2, 3);
> > +			pixel_fmt, 2, 3);
> 
> It seems the patch is based on an updated version of "staging: drm/imx:
> Add LDB support"?  The last one from Philipp [1] calls function
> imx_drm_crtc_panel_format() rather than imx_drm_crtc_panel_format_pins()
> there.
> 

Grmbl! Yes. The last call should be

imx_drm_crtc_panel_format(encoder->crtc, DRM_MODE_ENCODER_LVDS,
			V4L2_PIX_FMT_RGB24);

like it already is in Philipps series.
This patch sits on a topic branch, that (I think) Philipp didn't yet sent out.
I will resent.

Thanks,
Steffen

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

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

* Re: [PATCH] staging: imx_drm: imx_ldb: fix 18 bit format
  2013-06-08  7:25     ` Steffen Trumtrar
@ 2013-06-10  8:06       ` Markus Niebel
  0 siblings, 0 replies; 4+ messages in thread
From: Markus Niebel @ 2013-06-10  8:06 UTC (permalink / raw)
  To: Steffen Trumtrar
  Cc: devel, Fabio Estevam, Sascha Hauer, Philipp Zabel,
	Greg Kroah-Hartman, devicetree-discuss, kernel, Martin Fuzzey,
	Markus Niebel, Sean Cross, Shawn Guo, Thomas Petazzoni,
	linux-arm-kernel

Am 08.06.2013 09:25, wrote Steffen Trumtrar:
> Hi Shawn!
> 
> On Sat, Jun 08, 2013 at 12:49:47PM +0800, Shawn Guo wrote:
>> On Fri, Jun 07, 2013 at 10:37:08AM +0200, Steffen Trumtrar wrote:
>>> From: Markus Niebel <Markus.Niebel@tqs.de>
>>>
>>> Since 18 bit is supported as datawidth in device tree it should be
>>> supported in driver. Beside the LDB channel the IPU channel has also
>>> to be configured to use BGR666.
>>>
>>> Signed-off-by: Markus Niebel <Markus.Niebel@tqs.de>
>>> Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
>>> ---
>>> This is based on the series: "staging: drm/imx: Add LDB support"
>>> by Philipp.
>>>
>>>
>>>  drivers/staging/imx-drm/imx-ldb.c | 18 +++++++++++++++++-
>>>  1 file changed, 17 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/staging/imx-drm/imx-ldb.c b/drivers/staging/imx-drm/imx-ldb.c
>>> index d8fc93c..84bf7d3 100644
>>> --- a/drivers/staging/imx-drm/imx-ldb.c
>>> +++ b/drivers/staging/imx-drm/imx-ldb.c
>>> @@ -179,6 +179,7 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
>>>  	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
>>>  	struct imx_ldb *ldb = imx_ldb_ch->ldb;
>>>  	struct drm_display_mode *mode = &encoder->crtc->mode;
>>> +	u32 pixel_fmt;
>>>  	unsigned long serial_clk;
>>>  	unsigned long di_clk = mode->clock * 1000;
>>>  	int mux = imx_drm_encoder_get_mux_id(imx_ldb_ch->imx_drm_encoder,
>>> @@ -194,8 +195,23 @@ static void imx_ldb_encoder_prepare(struct drm_encoder *encoder)
>>>  		imx_ldb_set_clock(ldb, mux, imx_ldb_ch->chno, serial_clk, di_clk);
>>>  	}
>>>  
>>> +	switch (imx_ldb_ch->chno) {
>>> +	case 0:
>>> +		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH0_24) ?
>>> +			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
>>> +		break;
>>> +	case 1:
>>> +		pixel_fmt = (ldb->ldb_ctrl & LDB_DATA_WIDTH_CH1_24) ?
>>> +			V4L2_PIX_FMT_RGB24 : V4L2_PIX_FMT_BGR666;
>>> +		break;
>>> +	default:
>>> +		dev_err(ldb->dev, "unable to config di%d panel format\n",
>>> +			imx_ldb_ch->chno);
>>> +		pixel_fmt = V4L2_PIX_FMT_RGB24;
>>> +	}
>>> +
>>>  	imx_drm_crtc_panel_format_pins(encoder->crtc, DRM_MODE_ENCODER_LVDS,
>>> -			V4L2_PIX_FMT_RGB24, 2, 3);
>>> +			pixel_fmt, 2, 3);
>>
>> It seems the patch is based on an updated version of "staging: drm/imx:
>> Add LDB support"?  The last one from Philipp [1] calls function
>> imx_drm_crtc_panel_format() rather than imx_drm_crtc_panel_format_pins()
>> there.
>>
> 
> Grmbl! Yes. The last call should be
> 
> imx_drm_crtc_panel_format(encoder->crtc, DRM_MODE_ENCODER_LVDS,
> 			V4L2_PIX_FMT_RGB24);
> 
> like it already is in Philipps series.
> This patch sits on a topic branch, that (I think) Philipp didn't yet sent out.
> I will resent.

We should call 

imx_drm_crtc_panel_format(encoder->crtc, DRM_MODE_ENCODER_LVDS, pixel_fmt);

Sorry, original patch was created before fixing imx_drm_crtc_panel_format.

> 
> Thanks,
> Steffen
> 

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

end of thread, other threads:[~2013-06-10  8:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-07  8:37 [PATCH] staging: imx_drm: imx_ldb: fix 18 bit format Steffen Trumtrar
     [not found] ` <1370594228-2869-1-git-send-email-s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-06-08  4:49   ` Shawn Guo
2013-06-08  7:25     ` Steffen Trumtrar
2013-06-10  8:06       ` Markus Niebel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).