aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/omap')
-rw-r--r--drivers/video/omap/dispc.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
index f16e42154229..6f957ceee084 100644
--- a/drivers/video/omap/dispc.c
+++ b/drivers/video/omap/dispc.c
@@ -204,6 +204,7 @@ static u32 inline dispc_read_reg(int idx)
204/* Select RFBI or bypass mode */ 204/* Select RFBI or bypass mode */
205static void enable_rfbi_mode(int enable) 205static void enable_rfbi_mode(int enable)
206{ 206{
207 void __iomem *rfbi_control;
207 u32 l; 208 u32 l;
208 209
209 l = dispc_read_reg(DISPC_CONTROL); 210 l = dispc_read_reg(DISPC_CONTROL);
@@ -216,9 +217,15 @@ static void enable_rfbi_mode(int enable)
216 dispc_write_reg(DISPC_CONTROL, l); 217 dispc_write_reg(DISPC_CONTROL, l);
217 218
218 /* Set bypass mode in RFBI module */ 219 /* Set bypass mode in RFBI module */
219 l = __raw_readl(OMAP2_IO_ADDRESS(RFBI_CONTROL)); 220 rfbi_control = ioremap(RFBI_CONTROL, SZ_1K);
221 if (!rfbi_control) {
222 pr_err("Unable to ioremap rfbi_control\n");
223 return;
224 }
225 l = __raw_readl(rfbi_control);
220 l |= enable ? 0 : (1 << 1); 226 l |= enable ? 0 : (1 << 1);
221 __raw_writel(l, OMAP2_IO_ADDRESS(RFBI_CONTROL)); 227 __raw_writel(l, rfbi_control);
228 iounmap(rfbi_control);
222} 229}
223 230
224static void set_lcd_data_lines(int data_lines) 231static void set_lcd_data_lines(int data_lines)
@@ -1367,6 +1374,7 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode,
1367 int r; 1374 int r;
1368 u32 l; 1375 u32 l;
1369 struct lcd_panel *panel = fbdev->panel; 1376 struct lcd_panel *panel = fbdev->panel;
1377 void __iomem *ram_fw_base;
1370 int tmo = 10000; 1378 int tmo = 10000;
1371 int skip_init = 0; 1379 int skip_init = 0;
1372 int i; 1380 int i;
@@ -1441,7 +1449,13 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode,
1441 } 1449 }
1442 1450
1443 /* L3 firewall setting: enable access to OCM RAM */ 1451 /* L3 firewall setting: enable access to OCM RAM */
1444 __raw_writel(0x402000b0, OMAP2_IO_ADDRESS(0x680050a0)); 1452 ram_fw_base = ioremap(0x68005000, SZ_1K);
1453 if (!ram_fw_base) {
1454 dev_err(dispc.fbdev->dev, "Cannot ioremap to enable OCM RAM\n");
1455 goto fail1;
1456 }
1457 __raw_writel(0x402000b0, ram_fw_base + 0xa0);
1458 iounmap(ram_fw_base);
1445 1459
1446 if ((r = alloc_palette_ram()) < 0) 1460 if ((r = alloc_palette_ram()) < 0)
1447 goto fail2; 1461 goto fail2;