All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] staging: imx_drm: imx_ldb: fix 18 bit format
@ 2013-06-17  9:02 ` Steffen Trumtrar
  0 siblings, 0 replies; 10+ messages in thread
From: Steffen Trumtrar @ 2013-06-17  9:02 UTC (permalink / raw)
  To: linux-arm-kernel

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.

Changes since v1:
	- fixed function call: imx_drm_crtc_panel_format_pins -> imx_drm_crtc_panel_format

 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 0a7e4da..92a0e21 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(encoder->crtc, DRM_MODE_ENCODER_LVDS,
-			V4L2_PIX_FMT_RGB24);
+			pixel_fmt);
 }
 
 static void imx_ldb_encoder_commit(struct drm_encoder *encoder)
-- 
1.8.3.1

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

end of thread, other threads:[~2013-06-18  1:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-17  9:02 [PATCH v2] staging: imx_drm: imx_ldb: fix 18 bit format Steffen Trumtrar
2013-06-17  9:02 ` Steffen Trumtrar
2013-06-17 14:03 ` Shawn Guo
2013-06-17 14:03   ` Shawn Guo
2013-06-17 20:58   ` Greg Kroah-Hartman
2013-06-17 20:58     ` Greg Kroah-Hartman
2013-06-17 20:59 ` Greg Kroah-Hartman
2013-06-17 20:59   ` Greg Kroah-Hartman
2013-06-18  1:25   ` Shawn Guo
2013-06-18  1:25     ` Shawn Guo

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.