linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / video / pxafb.c
index bbb0710..53ad61f 100644 (file)
@@ -22,6 +22,7 @@
  *
  */
 
+#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
@@ -231,9 +232,9 @@ static int pxafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
        if (var->yres < MIN_YRES)
                var->yres = MIN_YRES;
        if (var->xres > fbi->max_xres)
-               return -EINVAL;
+               var->xres = fbi->max_xres;
        if (var->yres > fbi->max_yres)
-               return -EINVAL;
+               var->yres = fbi->max_yres;
        var->xres_virtual =
                max(var->xres_virtual, var->xres);
        var->yres_virtual =
@@ -780,7 +781,7 @@ static void pxafb_disable_controller(struct pxafb_info *fbi)
        LCCR0 &= ~LCCR0_LDM;    /* Enable LCD Disable Done Interrupt */
        LCCR0 |= LCCR0_DIS;     /* Disable LCD Controller */
 
-       schedule_timeout(200 * HZ / 1000);
+       schedule_timeout(20 * HZ / 1000);
        remove_wait_queue(&fbi->ctrlr_wait, &wait);
 
        /* disable LCD controller clock */
@@ -1273,7 +1274,7 @@ int __init pxafb_probe(struct platform_device *dev)
        struct pxafb_mach_info *inf;
        int ret;
 
-       dev_dbg(&dev->dev, "pxafb_probe\n");
+       dev_dbg(dev, "pxafb_probe\n");
 
        inf = dev->dev.platform_data;
        ret = -ENOMEM;
@@ -1334,7 +1335,7 @@ int __init pxafb_probe(struct platform_device *dev)
                goto failed;
        }
 
-       ret = request_irq(IRQ_LCD, pxafb_handle_irq, IRQF_DISABLED, "LCD", fbi);
+       ret = request_irq(IRQ_LCD, pxafb_handle_irq, SA_INTERRUPT, "LCD", fbi);
        if (ret) {
                dev_err(&dev->dev, "request_irq failed: %d\n", ret);
                ret = -EBUSY;