Xbox hack added, so two exactly the same PCI devices (OHCI controllers)
have different locations. Without it USB drivers won't work at all.
Modified: trunk/reactos/drivers/bus/pci/pci.c
_____
Modified: trunk/reactos/drivers/bus/pci/pci.c
--- trunk/reactos/drivers/bus/pci/pci.c 2005-08-12 20:21:22 UTC (rev
17351)
+++ trunk/reactos/drivers/bus/pci/pci.c 2005-08-12 20:29:01 UTC (rev
17352)
@@ -296,7 +296,27 @@
return TRUE;
#endif
- return PciCreateUnicodeString(InstanceID, L"0000", PagedPool);
+ WCHAR Buffer[256];
+
+ swprintf(Buffer,
+ L"PCI\\VEN_%04X&DEV_%04X&SUBSYS_%08X&REV_%02X",
+ Device->PciConfig.VendorID,
+ Device->PciConfig.DeviceID,
+ (Device->PciConfig.u.type0.SubSystemID << 16) +
+ Device->PciConfig.u.type0.SubVendorID,
+ Device->PciConfig.RevisionID);
+
+ // XBOX HACK
+ if (!wcscmp(L"PCI\\VEN_10DE&DEV_01C2&SUBSYS_00000000&REV_D4",
Buffer))
+ {
+ //DPRINT("xbox ohci controler found at bus 0x%lX, dev num %d, func
num %d\n", Device->BusNumber, Device->SlotNumber.u.bits.DeviceNumber,
Device->SlotNumber.u.bits.FunctionNumber);
+ if (Device->SlotNumber.u.bits.DeviceNumber == 2)
+ return PciCreateUnicodeString(InstanceID, L"0000", PagedPool);
+ else
+ return PciCreateUnicodeString(InstanceID, L"0001", PagedPool);
+ }
+ else
+ return PciCreateUnicodeString(InstanceID, L"0000", PagedPool);
}