summaryrefslogtreecommitdiffstats
path: root/drivers/video/cyber2000fb.c
diff options
context:
space:
mode:
authorWoody Suwalski <woodys@xandros.com>2007-02-12 00:55:00 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-12 09:48:42 -0800
commitcd792aa896f281a224870eb5f2ee5b24682910a5 (patch)
tree3f16b6dfb372fd5eb6f86fd8e919e664eba548bb /drivers/video/cyber2000fb.c
parent3a0991029b577125ac5b3eedbe366320c581d8d6 (diff)
downloadlinux-cd792aa896f281a224870eb5f2ee5b24682910a5.tar.gz
linux-cd792aa896f281a224870eb5f2ee5b24682910a5.tar.bz2
linux-cd792aa896f281a224870eb5f2ee5b24682910a5.zip
[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.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/video/cyber2000fb.c b/drivers/video/cyber2000fb.c
index aae6d9c26e88..7a6eeda5ae9a 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;