Merge tag 'for_linus-3.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jwesse...
[pandora-kernel.git] / drivers / video / ep93xx-fb.c
index 2e830ec..f8babbe 100644 (file)
@@ -519,12 +519,15 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
                goto failed;
        }
 
-       res = request_mem_region(res->start, resource_size(res), pdev->name);
-       if (!res) {
-               err = -EBUSY;
-               goto failed;
-       }
-
+       /*
+        * FIXME - We don't do a request_mem_region here because we are
+        * sharing the register space with the backlight driver (see
+        * drivers/video/backlight/ep93xx_bl.c) and doing so will cause
+        * the second loaded driver to return -EBUSY.
+        *
+        * NOTE: No locking is required; the backlight does not touch
+        * any of the framebuffer registers.
+        */
        fbi->res = res;
        fbi->mmio_base = ioremap(res->start, resource_size(res));
        if (!fbi->mmio_base) {
@@ -586,8 +589,6 @@ failed:
                clk_put(fbi->clk);
        if (fbi->mmio_base)
                iounmap(fbi->mmio_base);
-       if (fbi->res)
-               release_mem_region(fbi->res->start, resource_size(fbi->res));
        ep93xxfb_dealloc_videomem(info);
        if (&info->cmap)
                fb_dealloc_cmap(&info->cmap);
@@ -608,7 +609,6 @@ static int __devexit ep93xxfb_remove(struct platform_device *pdev)
        clk_disable(fbi->clk);
        clk_put(fbi->clk);
        iounmap(fbi->mmio_base);
-       release_mem_region(fbi->res->start, resource_size(fbi->res));
        ep93xxfb_dealloc_videomem(info);
        fb_dealloc_cmap(&info->cmap);