diff options
author | Woody Suwalski <woodys@xandros.com> | 2007-02-12 00:55:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-12 09:48:42 -0800 |
commit | cd792aa896f281a224870eb5f2ee5b24682910a5 (patch) | |
tree | 3f16b6dfb372fd5eb6f86fd8e919e664eba548bb /drivers/video/cyber2000fb.c | |
parent | 3a0991029b577125ac5b3eedbe366320c581d8d6 (diff) |
[PATCH] cyber2010 framebuffer on ARM Netwinder fix
The Netwinder machines with Cyber2010 crash badly when starting Xserver.
The workaround is to disable pci burst option for this revision of video
chip.
[akpm@osdl.org: cleanup]
Signed-off-by: Woody Suwalski <woodys@xandros.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: James Simmons <jsimmons@infradead.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/cyber2000fb.c')
-rw-r--r-- | drivers/video/cyber2000fb.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/video/cyber2000fb.c b/drivers/video/cyber2000fb.c index aae6d9c26e8..7a6eeda5ae9 100644 --- a/drivers/video/cyber2000fb.c +++ b/drivers/video/cyber2000fb.c @@ -1539,16 +1539,21 @@ static int cyberpro_pci_enable_mmio(struct cfb_info *cfb) /* * Allow the CyberPro to accept PCI burst accesses */ - val = cyber2000_grphr(EXT_BUS_CTL, cfb); - if (!(val & EXT_BUS_CTL_PCIBURST_WRITE)) { - printk(KERN_INFO "%s: enabling PCI bursts\n", cfb->fb.fix.id); + if (cfb->id == ID_CYBERPRO_2010) { + printk(KERN_INFO "%s: NOT enabling PCI bursts\n", cfb->fb.fix.id); + } else { + val = cyber2000_grphr(EXT_BUS_CTL, cfb); + if (!(val & EXT_BUS_CTL_PCIBURST_WRITE)) { + printk(KERN_INFO "%s: enabling PCI bursts\n", + cfb->fb.fix.id); - val |= EXT_BUS_CTL_PCIBURST_WRITE; + val |= EXT_BUS_CTL_PCIBURST_WRITE; - if (cfb->id == ID_CYBERPRO_5000) - val |= EXT_BUS_CTL_PCIBURST_READ; + if (cfb->id == ID_CYBERPRO_5000) + val |= EXT_BUS_CTL_PCIBURST_READ; - cyber2000_grphw(EXT_BUS_CTL, val, cfb); + cyber2000_grphw(EXT_BUS_CTL, val, cfb); + } } return 0; |