Convert xf86IsolateDevice to a 'struct pci_slot_match'.
This commit is contained in:
parent
d2f8c42c48
commit
c1808f1484
|
@ -66,6 +66,7 @@
|
||||||
#include "configProcs.h"
|
#include "configProcs.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "extension.h"
|
#include "extension.h"
|
||||||
|
#include "Pci.h"
|
||||||
|
|
||||||
#ifdef XINPUT
|
#ifdef XINPUT
|
||||||
#include "xf86Xinput.h"
|
#include "xf86Xinput.h"
|
||||||
|
@ -2456,8 +2457,9 @@ xf86HandleConfigFile(Bool autoconfig)
|
||||||
xf86Msg(X_WARNING, "Bus types other than PCI not yet isolable.\n"
|
xf86Msg(X_WARNING, "Bus types other than PCI not yet isolable.\n"
|
||||||
"\tIgnoring IsolateDevice option.\n");
|
"\tIgnoring IsolateDevice option.\n");
|
||||||
} else if (sscanf(scanptr, "PCI:%d:%d:%d", &bus, &device, &func) == 3) {
|
} else if (sscanf(scanptr, "PCI:%d:%d:%d", &bus, &device, &func) == 3) {
|
||||||
xf86IsolateDevice.bus = bus;
|
xf86IsolateDevice.domain = PCI_DOM_FROM_BUS(bus);
|
||||||
xf86IsolateDevice.device = device;
|
xf86IsolateDevice.bus = PCI_BUS_NO_DOMAIN(bus);
|
||||||
|
xf86IsolateDevice.dev = device;
|
||||||
xf86IsolateDevice.func = func;
|
xf86IsolateDevice.func = func;
|
||||||
xf86Msg(X_INFO,
|
xf86Msg(X_INFO,
|
||||||
"Isolating PCI bus \"%d:%d:%d\"\n", bus, device, func);
|
"Isolating PCI bus \"%d:%d:%d\"\n", bus, device, func);
|
||||||
|
|
|
@ -204,4 +204,7 @@ Bool xf86MiscModInDevAllowNonLocal = FALSE;
|
||||||
RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
|
RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
|
||||||
_X_EXPORT Bool xf86inSuspend = FALSE;
|
_X_EXPORT Bool xf86inSuspend = FALSE;
|
||||||
Bool xorgHWAccess = FALSE;
|
Bool xorgHWAccess = FALSE;
|
||||||
PciBusId xf86IsolateDevice;
|
|
||||||
|
struct pci_slot_match xf86IsolateDevice = {
|
||||||
|
PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0
|
||||||
|
};
|
||||||
|
|
|
@ -78,7 +78,7 @@ extern Bool xf86BestRefresh;
|
||||||
extern Gamma xf86Gamma;
|
extern Gamma xf86Gamma;
|
||||||
extern char *xf86ServerName;
|
extern char *xf86ServerName;
|
||||||
extern Bool xf86ShowUnresolved;
|
extern Bool xf86ShowUnresolved;
|
||||||
extern PciBusId xf86IsolateDevice;
|
extern struct pci_slot_match xf86IsolateDevice;
|
||||||
|
|
||||||
/* Other parameters */
|
/* Other parameters */
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,8 @@ FindPCIVideoInfo(void)
|
||||||
{
|
{
|
||||||
int i = 0, k;
|
int i = 0, k;
|
||||||
int num = 0;
|
int num = 0;
|
||||||
struct pci_device * info;
|
struct pci_device *info;
|
||||||
struct pci_slot_match m;
|
struct pci_device_iterator *iter;
|
||||||
struct pci_device_iterator * iter;
|
|
||||||
|
|
||||||
|
|
||||||
if (!xf86scanpci()) {
|
if (!xf86scanpci()) {
|
||||||
|
@ -122,29 +121,13 @@ FindPCIVideoInfo(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (xf86IsolateDevice.bus != 0)
|
iter = pci_slot_match_iterator_create(& xf86IsolateDevice);
|
||||||
|| (xf86IsolateDevice.device != 0)
|
while ((info = pci_device_next(iter)) != NULL) {
|
||||||
|| (xf86IsolateDevice.func != 0) ) {
|
if (PCIINFOCLASSES(info->device_class)) {
|
||||||
m.domain = PCI_DOM_FROM_BUS( xf86IsolateDevice.bus );
|
|
||||||
m.bus = PCI_BUS_NO_DOMAIN( xf86IsolateDevice.bus );
|
|
||||||
m.dev = xf86IsolateDevice.device;
|
|
||||||
m.func = xf86IsolateDevice.func;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
m.domain = PCI_MATCH_ANY;
|
|
||||||
m.bus = PCI_MATCH_ANY;
|
|
||||||
m.dev = PCI_MATCH_ANY;
|
|
||||||
m.func = PCI_MATCH_ANY;
|
|
||||||
}
|
|
||||||
|
|
||||||
iter = pci_slot_match_iterator_create( & m );
|
|
||||||
|
|
||||||
while ( (info = pci_device_next( iter )) != NULL ) {
|
|
||||||
if ( PCIINFOCLASSES( info->device_class ) ) {
|
|
||||||
num++;
|
num++;
|
||||||
xf86PciVideoInfo = xnfrealloc( xf86PciVideoInfo,
|
xf86PciVideoInfo = xnfrealloc(xf86PciVideoInfo,
|
||||||
(sizeof( struct pci_device * )
|
(sizeof(struct pci_device *)
|
||||||
* (num + 1)) );
|
* (num + 1)));
|
||||||
xf86PciVideoInfo[num] = NULL;
|
xf86PciVideoInfo[num] = NULL;
|
||||||
xf86PciVideoInfo[num - 1] = info;
|
xf86PciVideoInfo[num - 1] = info;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue