[PATCH] staging: imx_drm: imx_ldb: fix 18 bit format

Steffen Trumtrar s.trumtrar at pengutronix.de
Sat Jun 8 17:25:56 EST 2013


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 at 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 at tqs.de>
> > Signed-off-by: Steffen Trumtrar <s.trumtrar at 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 |


More information about the devicetree-discuss mailing list