Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=22df5bc591ea2d0dbe8240fe8af0816b8a6533b9
Commit:     22df5bc591ea2d0dbe8240fe8af0816b8a6533b9
Parent:     0c2bf745f9bdef7243ef5f04e6b05f592abead06
Author:     Thomas Bogendoerfer <[EMAIL PROTECTED]>
AuthorDate: Thu May 17 14:53:12 2007 +0200
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Wed Jun 6 19:34:31 2007 +0100

    [MIPS] Fix VGA corruption on RM300C
    
    ... by setting DRAM config to 2MB (SNI always used that size). This also
    fixes video dram size detection in cirrusfb.
    
    Signed-off-by: Thomas Bogendoerfer <[EMAIL PROTECTED]>
    Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/sni/setup.c |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c
index 68d7cf6..4fedfbd 100644
--- a/arch/mips/sni/setup.c
+++ b/arch/mips/sni/setup.c
@@ -6,7 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1996, 97, 98, 2000, 03, 04, 06 Ralf Baechle ([EMAIL 
PROTECTED])
- * Copyright (C) 2006 Thomas Bogendoerfer ([EMAIL PROTECTED])
+ * Copyright (C) 2006,2007 Thomas Bogendoerfer ([EMAIL PROTECTED])
  */
 #include <linux/eisa.h>
 #include <linux/init.h>
@@ -92,3 +92,34 @@ void __init plat_mem_setup(void)
 
        sni_display_setup();
 }
+
+#if CONFIG_PCI
+
+#include <linux/pci.h>
+#include <video/vga.h>
+#include <video/cirrus.h>
+
+static void __devinit quirk_cirrus_ram_size(struct pci_dev *dev)
+{
+       u16 cmd;
+
+       /*
+        * firmware doesn't set the ram size correct, so we
+        * need to do it here, otherwise we get screen corruption
+        * on older Cirrus chips
+        */
+       pci_read_config_word (dev, PCI_COMMAND, &cmd);
+       if ((cmd & (PCI_COMMAND_IO|PCI_COMMAND_MEMORY))
+               == (PCI_COMMAND_IO|PCI_COMMAND_MEMORY)) {
+               vga_wseq (NULL, CL_SEQR6, 0x12);        /* unlock all extension 
registers */
+               vga_wseq (NULL, CL_SEQRF, 0x18);
+       }
+}
+
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_5434_8,
+                        quirk_cirrus_ram_size);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_5436,
+                        quirk_cirrus_ram_size);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_5446,
+                        quirk_cirrus_ram_size);
+#endif
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to