]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/video/omap/dispc.c
[ARM] omap: convert OMAP drivers to use ioremap()
[linux-2.6-omap-h63xx.git] / drivers / video / omap / dispc.c
index 00ad6b2aedfa3996afb698f720865872ee5cea5a..df2180591dcfa1a06ce009c03e0677c169aa7c3a 100644 (file)
@@ -156,7 +156,7 @@ struct resmap {
 };
 
 static struct {
-       u32             base;
+       void __iomem    *base;
 
        struct omapfb_mem_desc  mem_desc;
        struct resmap           *res_map[DISPC_MEMTYPE_NUM];
@@ -1353,14 +1353,19 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode,
 
        memset(&dispc, 0, sizeof(dispc));
 
-       dispc.base = io_p2v(DISPC_BASE);
+       dispc.base = ioremap(DISPC_BASE, SZ_1K);
+       if (!dispc.base) {
+               dev_err(fbdev->dev, "can't ioremap DISPC\n");
+               return -ENOMEM;
+       }
+
        dispc.fbdev = fbdev;
        dispc.ext_mode = ext_mode;
 
        init_completion(&dispc.frame_done);
 
        if ((r = get_dss_clocks()) < 0)
-               return r;
+               goto fail0;
 
        enable_lcd_clocks(1);
 
@@ -1466,7 +1471,8 @@ fail2:
 fail1:
        enable_lcd_clocks(0);
        put_dss_clocks();
-
+fail0:
+       iounmap(dispc.base);
        return r;
 }
 
@@ -1482,6 +1488,7 @@ static void omap_dispc_cleanup(void)
        free_palette_ram();
        free_irq(INT_24XX_DSS_IRQ, dispc.fbdev);
        put_dss_clocks();
+       iounmap(dispc.base);
 }
 
 const struct lcd_ctrl omap2_int_ctrl = {