From 97f08af457fac86cda92a79f0840e4920590930e Mon Sep 17 00:00:00 2001 From: attila Date: Sun, 2 Mar 2003 21:21:56 +0000 Subject: =?UTF-8?q?workaround=20wrong=20detected=20memory=20sizes=20on=20G?= =?UTF-8?q?400=20cards.=20patch=20by=20ilmari@ping.uio.no=20(Dagfinn=20Ilm?= =?UTF-8?q?ari=20Manns=C3=A5ker)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9519 b3059339-0415-0410-9bf9-f77b7e298cf2 --- drivers/mga_vid.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'drivers') diff --git a/drivers/mga_vid.c b/drivers/mga_vid.c index bdd2f4a593..e767eb8050 100644 --- a/drivers/mga_vid.c +++ b/drivers/mga_vid.c @@ -88,6 +88,18 @@ #define PCI_DEVICE_ID_MATROX_G550 0x2527 #endif +#ifndef PCI_SUBSYSTEM_ID_MATROX_G400_DH_16MB +#define PCI_SUBSYSTEM_ID_MATROX_G400_DH_16MB 0x2159 +#endif + +#ifndef PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SGRAM +#define PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SGRAM 0x19d8 +#endif + +#ifndef PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SDRAM +#define PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SDRAM 0x0328 +#endif + MODULE_AUTHOR("Aaron Holtzman "); #ifdef MODULE_LICENSE MODULE_LICENSE("GPL"); @@ -1366,6 +1378,15 @@ static int mga_vid_find_card(void) mga_ram_size = 16; printk(KERN_INFO "mga_vid: Couldn't detect RAMSIZE, assuming 16MB!"); } + /* Check for buggy 16MB cards reporting 32 MB */ + if(mga_ram_size != 16 && + (pci_dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SDRAM || + pci_dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_16MB_SGRAM || + pci_dev->subsystem_device == PCI_SUBSYSTEM_ID_MATROX_G400_DH_16MB)) + { + printk(KERN_INFO "mga_vid: Detected 16MB card reporting %d MB RAMSIZE, overriding\n", mga_ram_size); + mga_ram_size = 16; + } }else{ switch((card_option>>10)&0x17){ // case 0x10: -- cgit v1.2.3