diff options
author | Thomas White <taw@bitwiz.org.uk> | 2009-08-04 21:34:34 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2009-08-04 21:34:34 +0100 |
commit | f3f88c9cd448361f2e96023894fe2b4701488dd4 (patch) | |
tree | c6f41b4af62d9f3d36dc7b4ee0760e319b3bdb3e /drivers/mfd/glamo/glamo-display.c | |
parent | 8bb0c5afa71d38dbc823b30aa9e75371becc2c31 (diff) |
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 <taw@bitwiz.org.uk>
Diffstat (limited to 'drivers/mfd/glamo/glamo-display.c')
-rw-r--r-- | drivers/mfd/glamo/glamo-display.c | 16 |
1 files changed, 14 insertions, 2 deletions
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; } |