From f3f88c9cd448361f2e96023894fe2b4701488dd4 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 4 Aug 2009 21:34:34 +0100 Subject: Keep glamo-kms-fb off the hardware registers This removes the last remaining instance of glamo-kms-fb touching Glamo's registers directly. Signed-off-by: Thomas White --- drivers/mfd/glamo/glamo-display.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'drivers/mfd/glamo/glamo-display.c') diff --git a/drivers/mfd/glamo/glamo-display.c b/drivers/mfd/glamo/glamo-display.c index 5e0e9434146..969e8fb1dcb 100644 --- a/drivers/mfd/glamo/glamo-display.c +++ b/drivers/mfd/glamo/glamo-display.c @@ -837,8 +837,20 @@ int glamo_display_init(struct drm_device *dev) ARRAY_SIZE(lcd_init_script)); if (list_empty(&dev->mode_config.fb_kernel_list)) { - int ret; - ret = glamofb_create(dev, 480, 640, 480, 640, &glamo_fb); + int ret, cols, cols_g; + cols_g = reg_read_lcd(gdrm, GLAMO_REG_LCD_MODE3) & 0xc000; + switch ( cols_g ) { + case GLAMO_LCD_SRC_RGB565 : + cols = GLAMO_FB_RGB565; break; + case GLAMO_LCD_SRC_ARGB1555 : + cols = GLAMO_FB_ARGB1555; break; + case GLAMO_LCD_SRC_ARGB4444 : + cols = GLAMO_FB_ARGB4444; break; + default : + printk(KERN_WARNING "Unrecognised LCD colour mode\n"); + cols = GLAMO_FB_RGB565; break; /* Take a guess */ + } + ret = glamofb_create(dev, 480, 640, 480, 640, cols, &glamo_fb); if (ret) return -EINVAL; } -- cgit v1.2.3