diff -Nurw MPlayer-0.90rc5/vidix/drivers/cyberblade_vid.c MPlayer-0.90rc5-primary/vidix/drivers/cyberblade_vid.c --- MPlayer-0.90rc5/vidix/drivers/cyberblade_vid.c 2003-01-19 16:10:38.000000000 +0000 +++ MPlayer-0.90rc5-primary/vidix/drivers/cyberblade_vid.c 2003-03-28 20:38:37.000000000 +0000 @@ -183,6 +183,11 @@ dname = pci_device_name(VENDOR_TRIDENT, lst[i].device); dname = dname ? dname : "Unknown chip"; printf("[cyberblade] Found chip: %s\n", dname); + if ((lst[i].command & PCI_COMMAND_IO) == 0) + { + printf("[cyberblade] Device is disabled, ignoring\n"); + continue; + } cyberblade_cap.device_id = lst[i].device; err = 0; memcpy(&pci_info, &lst[i], sizeof(pciinfo_t)); diff -Nurw MPlayer-0.90rc5/vidix/drivers/mach64_vid.c MPlayer-0.90rc5-primary/vidix/drivers/mach64_vid.c --- MPlayer-0.90rc5/vidix/drivers/mach64_vid.c 2002-10-31 10:57:07.000000000 +0000 +++ MPlayer-0.90rc5-primary/vidix/drivers/mach64_vid.c 2003-03-28 20:35:06.000000000 +0000 @@ -421,6 +421,11 @@ dname = pci_device_name(VENDOR_ATI,lst[i].device); dname = dname ? dname : "Unknown chip"; printf("[mach64] Found chip: %s\n",dname); + if ((lst[i].command & PCI_COMMAND_IO) == 0) + { + printf("[mach64] Device is disabled, ignoring\n"); + continue; + } if(force > PROBE_NORMAL) { printf("[mach64] Driver was forced. Was found %sknown chip\n",idx == -1 ? "un" : ""); diff -Nurw MPlayer-0.90rc5/vidix/drivers/mga_vid.c MPlayer-0.90rc5-primary/vidix/drivers/mga_vid.c --- MPlayer-0.90rc5/vidix/drivers/mga_vid.c 2003-03-17 00:56:48.000000000 +0000 +++ MPlayer-0.90rc5-primary/vidix/drivers/mga_vid.c 2003-03-28 20:34:05.000000000 +0000 @@ -1196,6 +1196,11 @@ i, lst[i].vendor, lst[i].device); if (lst[i].vendor == VENDOR_MATROX) { + if ((lst[i].command & PCI_COMMAND_IO) == 0) + { + printf("[mga] Device is disabled, ignoring\n"); + continue; + } switch(lst[i].device) { case DEVICE_MATROX_MGA_G550_AGP: diff -Nurw MPlayer-0.90rc5/vidix/drivers/pm3_vid.c MPlayer-0.90rc5-primary/vidix/drivers/pm3_vid.c --- MPlayer-0.90rc5/vidix/drivers/pm3_vid.c 2002-06-01 00:17:43.000000000 +0100 +++ MPlayer-0.90rc5-primary/vidix/drivers/pm3_vid.c 2003-03-28 20:42:39.000000000 +0000 @@ -112,6 +112,11 @@ dname = pci_device_name(VENDOR_3DLABS, lst[i].device); dname = dname ? dname : "Unknown chip"; printf("[pm3] Found chip: %s\n", dname); + if ((lst[i].command & PCI_COMMAND_IO) == 0) + { + printf("[pm3] Device is disabled, ignoring\n"); + continue; + } pm3_cap.device_id = lst[i].device; err = 0; memcpy(&pci_info, &lst[i], sizeof(pciinfo_t)); diff -Nurw MPlayer-0.90rc5/vidix/drivers/radeon_vid.c MPlayer-0.90rc5-primary/vidix/drivers/radeon_vid.c --- MPlayer-0.90rc5/vidix/drivers/radeon_vid.c 2003-03-17 00:57:14.000000000 +0000 +++ MPlayer-0.90rc5-primary/vidix/drivers/radeon_vid.c 2003-03-28 20:35:24.000000000 +0000 @@ -925,6 +925,11 @@ dname = pci_device_name(VENDOR_ATI,lst[i].device); dname = dname ? dname : "Unknown chip"; printf(RADEON_MSG" Found chip: %s\n",dname); + if ((lst[i].command & PCI_COMMAND_IO) == 0) + { + printf("[radeon] Device is disabled, ignoring\n"); + continue; + } #ifndef RAGE128 if(idx != -1) { diff -urw MPlayer-0.90rc5/libdha/libdha.h MPlayer-0.90rc5-primary/libdha/libdha.h --- MPlayer-0.90rc5/libdha/libdha.h 2002-04-19 17:33:54.000000000 +0100 +++ MPlayer-0.90rc5-primary/libdha/libdha.h 2003-03-28 20:12:10.000000000 +0000 @@ -24,10 +24,12 @@ #define MAX_PCI_DEVICES_PER_BUS 32 #define MAX_PCI_DEVICES 64 #define PCI_MULTIFUNC_DEV 0x80 +#define PCI_COMMAND_IO 0x1 /* Enable response to I/O space */ typedef struct pciinfo_s { int bus,card,func; /* PCI/AGP bus:card:func */ + unsigned short command; /* Device control register */ unsigned short vendor,device; /* Card vendor+device ID */ unsigned base0,base1,base2,baserom; /* Memory and I/O base addresses */ // unsigned base0_limit, base1_limit, base2_limit, baserom_limit; Only in MPlayer-0.90rc5-primary/libdha: libdha.o Only in MPlayer-0.90rc5-primary/libdha: libdha.so Only in MPlayer-0.90rc5-primary/libdha: libdha.so.0 Only in MPlayer-0.90rc5-primary/libdha: libdha.so.0.1 Only in MPlayer-0.90rc5-primary/libdha: mtrr.o diff -urw MPlayer-0.90rc5/libdha/pci.c MPlayer-0.90rc5-primary/libdha/pci.c --- MPlayer-0.90rc5/libdha/pci.c 2003-01-04 19:01:36.000000000 +0000 +++ MPlayer-0.90rc5-primary/libdha/pci.c 2003-03-28 19:56:36.000000000 +0000 @@ -504,6 +504,7 @@ pci_lst[idx].bus = pcibus ; pci_lst[idx].card = pcicard ; pci_lst[idx].func = pcifunc ; + pci_lst[idx].command = pcr->_status_command & 0xFFFF; pci_lst[idx].vendor = pcr->_vendor ; pci_lst[idx].device = pcr->_device ; pci_lst[idx].base0 = 0xFFFFFFFF ; diff -urw MPlayer-0.90rc5/libdha/test.c MPlayer-0.90rc5-primary/libdha/test.c --- MPlayer-0.90rc5/libdha/test.c 2002-01-04 10:32:26.000000000 +0000 +++ MPlayer-0.90rc5-primary/libdha/test.c 2003-03-28 19:57:49.000000000 +0000 @@ -16,11 +16,11 @@ } else { - printf(" Bus:card:func vend:dev base0 :base1 :base2 :baserom\n"); + printf(" Bus:card:func vend:dev command base0 :base1 :base2 :baserom\n"); for(i=0;i