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); }