diff mbox

[U-Boot,v6,16/18] dm: video: Add driver-model support to lcd_simplefb

Message ID 20170405222345.32288-17-sjg@chromium.org
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Simon Glass April 5, 2017, 10:23 p.m. UTC
Allow this to work with CONFIG_DM_VIDEO enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Anatolij Gustschin <agust@denx.de>
---

Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None

 common/lcd_simplefb.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Tom Rini May 10, 2017, 5:52 p.m. UTC | #1
On Wed, Apr 05, 2017 at 04:23:43PM -0600, Simon Glass wrote:

> Allow this to work with CONFIG_DM_VIDEO enabled.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Acked-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/common/lcd_simplefb.c b/common/lcd_simplefb.c
index e479b492b8..d7e9fc9f65 100644
--- a/common/lcd_simplefb.c
+++ b/common/lcd_simplefb.c
@@ -8,9 +8,11 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <lcd.h>
 #include <fdt_support.h>
 #include <libfdt.h>
+#include <video.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -20,11 +22,27 @@  static int lcd_dt_simplefb_configure_node(void *blob, int off)
 	int bpix; /* log2 of bits per pixel */
 	const char *name;
 	ulong fb_base;
+#ifdef CONFIG_DM_VIDEO
+	struct video_uc_platdata *plat;
+	struct video_priv *uc_priv;
+	struct udevice *dev;
+	int ret;
 
+	ret = uclass_first_device_err(UCLASS_VIDEO, &dev);
+	if (ret)
+		return ret;
+	uc_priv = dev_get_uclass_priv(dev);
+	plat = dev_get_uclass_platdata(dev);
+	xsize = uc_priv->xsize;
+	ysize = uc_priv->ysize;
+	bpix = uc_priv->bpix;
+	fb_base = plat->base;
+#else
 	xsize = lcd_get_pixel_width();
 	ysize = lcd_get_pixel_height();
 	bpix = LCD_BPP;
 	fb_base = gd->fb_base;
+#endif
 	switch (bpix) {
 	case 4: /* VIDEO_BPP16 */
 		name = "r5g6b5";