From ebfff391687dcca3cd0cb74efc1d5a4b3b1abadb Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Fri, 12 Aug 2005 20:29:01 +0000 Subject: [PATCH] Xbox hack added, so two exactly the same PCI devices (OHCI controllers) have different locations. Without it USB drivers won't work at all. svn path=/trunk/; revision=17352 --- reactos/drivers/bus/pci/pci.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/reactos/drivers/bus/pci/pci.c b/reactos/drivers/bus/pci/pci.c index 1c1b55f0ad0..48ee46ea312 100644 --- a/reactos/drivers/bus/pci/pci.c +++ b/reactos/drivers/bus/pci/pci.c @@ -296,7 +296,27 @@ PciCreateInstanceIDString(PUNICODE_STRING InstanceID, 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); }