|
@@ -222,6 +222,9 @@ static irqreturn_t tmiofb_irq(int irq, void *__info)
|
|
unsigned int bbisc = tmio_ioread16(par->lcr + LCR_BBISC);
|
|
unsigned int bbisc = tmio_ioread16(par->lcr + LCR_BBISC);
|
|
|
|
|
|
|
|
|
|
|
|
+ tmio_iowrite16(bbisc, par->lcr + LCR_BBISC);
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_FB_TMIO_ACCELL
|
|
/*
|
|
/*
|
|
* We were in polling mode and now we got correct irq.
|
|
* We were in polling mode and now we got correct irq.
|
|
* Switch back to IRQ-based sync of command FIFO
|
|
* Switch back to IRQ-based sync of command FIFO
|
|
@@ -231,9 +234,6 @@ static irqreturn_t tmiofb_irq(int irq, void *__info)
|
|
par->use_polling = false;
|
|
par->use_polling = false;
|
|
}
|
|
}
|
|
|
|
|
|
- tmio_iowrite16(bbisc, par->lcr + LCR_BBISC);
|
|
|
|
-
|
|
|
|
-#ifdef CONFIG_FB_TMIO_ACCELL
|
|
|
|
if (bbisc & 1)
|
|
if (bbisc & 1)
|
|
wake_up(&par->wait_acc);
|
|
wake_up(&par->wait_acc);
|
|
#endif
|
|
#endif
|
|
@@ -938,7 +938,9 @@ static void tmiofb_dump_regs(struct platform_device *dev)
|
|
static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|
static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|
{
|
|
{
|
|
struct fb_info *info = platform_get_drvdata(dev);
|
|
struct fb_info *info = platform_get_drvdata(dev);
|
|
|
|
+#ifdef CONFIG_FB_TMIO_ACCELL
|
|
struct tmiofb_par *par = info->par;
|
|
struct tmiofb_par *par = info->par;
|
|
|
|
+#endif
|
|
struct mfd_cell *cell = dev->dev.platform_data;
|
|
struct mfd_cell *cell = dev->dev.platform_data;
|
|
int retval = 0;
|
|
int retval = 0;
|
|
|
|
|
|
@@ -950,12 +952,14 @@ static int tmiofb_suspend(struct platform_device *dev, pm_message_t state)
|
|
info->fbops->fb_sync(info);
|
|
info->fbops->fb_sync(info);
|
|
|
|
|
|
|
|
|
|
|
|
+#ifdef CONFIG_FB_TMIO_ACCELL
|
|
/*
|
|
/*
|
|
* The fb should be usable even if interrupts are disabled (and they are
|
|
* The fb should be usable even if interrupts are disabled (and they are
|
|
* during suspend/resume). Switch temporary to forced polling.
|
|
* during suspend/resume). Switch temporary to forced polling.
|
|
*/
|
|
*/
|
|
printk(KERN_INFO "tmiofb: switching to polling\n");
|
|
printk(KERN_INFO "tmiofb: switching to polling\n");
|
|
par->use_polling = true;
|
|
par->use_polling = true;
|
|
|
|
+#endif
|
|
tmiofb_hw_stop(dev);
|
|
tmiofb_hw_stop(dev);
|
|
|
|
|
|
if (cell->suspend)
|
|
if (cell->suspend)
|