lkml.org 
[lkml]   [2003]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] Support for matroxfb on HP Vectra
Hi Marcelo,
please apply this patch...

Matrox chips soldered to the HP Vectra's mainboard do not have EEPROM connected to
them, instead of that system BIOS contains VGA BIOS image which is extracted only
to the legacy VGA BIOS region at 0xC0000, and nowhere else. And in addition to this
they decided to use 14.318MHz XTAL instead of recommended 27.000MHz. These two events
together made matroxfb a bit unhappy on such motherboard, as all frequencies were
only 53% of expected value :-(

With this patch matroxfb tries to use legacy BIOS if there is no EEPROM and it
is ia32 architecture (and it was confirmed to fix a problem).

Patch applies to both 2.4 and 2.5, but in 2.5 it is a bit useless...

Thanks,
Petr Vandrovec
vandrove@vc.cvut.cz


--- a/drivers/video/matrox/matroxfb_misc.c 2003-02-13 03:57:39.000000000 +0100
+++ b/drivers/video/matrox/matroxfb_misc.c 2003-03-14 14:33:01.000000000 +0100
@@ -994,6 +994,27 @@
parse_bios(vaddr_va(ACCESS_FBINFO(video).vbase), &ACCESS_FBINFO(bios));
pci_write_config_dword(pdev, PCI_ROM_ADDRESS, biosbase);
pci_write_config_dword(pdev, PCI_OPTION_REG, opt);
+#ifdef CONFIG_X86
+ if (!ACCESS_FBINFO(bios).bios_valid) {
+ unsigned char* b;
+
+ b = ioremap(0x000C0000, 65536);
+ if (!b) {
+ printk(KERN_INFO "matroxfb: Unable to map legacy BIOS\n");
+ } else {
+ unsigned int ven = readb(b+0x64+0) | (readb(b+0x64+1) << 8);
+ unsigned int dev = readb(b+0x64+2) | (readb(b+0x64+3) << 8);
+
+ if (ven != pdev->vendor || dev != pdev->device) {
+ printk(KERN_INFO "matroxfb: Legacy BIOS is for %04X:%04X, while this device is %04X:%04X\n",
+ ven, dev, pdev->vendor, pdev->device);
+ } else {
+ parse_bios(b, &ACCESS_FBINFO(bios));
+ }
+ iounmap(b);
+ }
+ }
+#endif
matroxfb_set_limits(PMINFO &ACCESS_FBINFO(bios));
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.032 / U:0.228 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site