aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTimur Tabi <timur@freescale.com>2011-09-28 17:19:53 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2011-10-04 21:10:12 -0400
commitc4e5a0232763db22d6c60c391ed5816b2b2ac063 (patch)
tree8a57e8447ca0b025feba742b54296da3e7eafc55 /drivers
parent7e47c211953bd8e396b168eba2c288ea6aec20ef (diff)
drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supported
The Freescale DIU video controller supports five video "modes", but only the first two are used by the driver. The other three are special modes that don't make sense for a framebuffer driver. Therefore, there's no point in keeping a global variable that indicates which mode we're supposed to use. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/fsl-diu-fb.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index 0fd4c784f8df..6539e70cb59a 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c
@@ -52,7 +52,6 @@
52struct diu_hw { 52struct diu_hw {
53 struct diu __iomem *diu_reg; 53 struct diu __iomem *diu_reg;
54 spinlock_t reg_lock; 54 spinlock_t reg_lock;
55 unsigned int mode; /* DIU operation mode */
56}; 55};
57 56
58struct diu_addr { 57struct diu_addr {
@@ -426,7 +425,6 @@ static struct mfb_info mfb_template[] = {
426}; 425};
427 426
428static struct diu_hw dr = { 427static struct diu_hw dr = {
429 .mode = MFB_MODE1,
430 .reg_lock = __SPIN_LOCK_UNLOCKED(diu_hw.reg_lock), 428 .reg_lock = __SPIN_LOCK_UNLOCKED(diu_hw.reg_lock),
431}; 429};
432 430
@@ -620,7 +618,7 @@ static void enable_lcdc(struct fb_info *info)
620 struct fsl_diu_data *machine_data = mfbi->parent; 618 struct fsl_diu_data *machine_data = mfbi->parent;
621 619
622 if (!machine_data->fb_enabled) { 620 if (!machine_data->fb_enabled) {
623 out_be32(&hw->diu_mode, dr.mode); 621 out_be32(&hw->diu_mode, MFB_MODE1);
624 machine_data->fb_enabled++; 622 machine_data->fb_enabled++;
625 } 623 }
626} 624}
@@ -1390,9 +1388,6 @@ static int request_irq_local(int irq)
1390 ints |= INT_VSYNC; 1388 ints |= INT_VSYNC;
1391#endif 1389#endif
1392 1390
1393 if (dr.mode == MFB_MODE2 || dr.mode == MFB_MODE3)
1394 ints |= INT_VSYNC_WB;
1395
1396 /* Read to clear the status */ 1391 /* Read to clear the status */
1397 in_be32(&hw->int_status); 1392 in_be32(&hw->int_status);
1398 out_be32(&hw->int_mask, ints); 1393 out_be32(&hw->int_mask, ints);
@@ -1558,7 +1553,7 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
1558 } 1553 }
1559 1554
1560 diu_mode = in_be32(&dr.diu_reg->diu_mode); 1555 diu_mode = in_be32(&dr.diu_reg->diu_mode);
1561 if (diu_mode != MFB_MODE1) 1556 if (diu_mode == MFB_MODE0)
1562 out_be32(&dr.diu_reg->diu_mode, 0); /* disable DIU */ 1557 out_be32(&dr.diu_reg->diu_mode, 0); /* disable DIU */
1563 1558
1564 /* Get the IRQ of the DIU */ 1559 /* Get the IRQ of the DIU */
@@ -1611,7 +1606,7 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
1611 * Let DIU display splash screen if it was pre-initialized 1606 * Let DIU display splash screen if it was pre-initialized
1612 * by the bootloader, set dummy area descriptor otherwise. 1607 * by the bootloader, set dummy area descriptor otherwise.
1613 */ 1608 */
1614 if (diu_mode != MFB_MODE1) 1609 if (diu_mode == MFB_MODE0)
1615 out_be32(&dr.diu_reg->desc[0], machine_data->dummy_ad->paddr); 1610 out_be32(&dr.diu_reg->desc[0], machine_data->dummy_ad->paddr);
1616 1611
1617 out_be32(&dr.diu_reg->desc[1], machine_data->dummy_ad->paddr); 1612 out_be32(&dr.diu_reg->desc[1], machine_data->dummy_ad->paddr);