From d7582766dbced3964feb10d63399898dca91b628 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Wed, 1 Jun 2011 08:31:33 +0000 Subject: [PATCH] [USBHUB_NEW] - Check if the port is usb 2.0 controller. In that case call the Usb2.0 initialize function - Prevents crash when used with usbohci svn path=/branches/usb-bringup/; revision=52036 --- drivers/usb/usbhub_new/fdo.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/drivers/usb/usbhub_new/fdo.c b/drivers/usb/usbhub_new/fdo.c index 78984f78cc2..06114094d58 100644 --- a/drivers/usb/usbhub_new/fdo.c +++ b/drivers/usb/usbhub_new/fdo.c @@ -1559,11 +1559,28 @@ USBHUB_FdoHandlePnp( DPRINT1("Configuration Handle %x\n", HubDeviceExtension->ConfigurationHandle); // - // Initialize the Hub + // check if function is available // - Status = HubDeviceExtension->HubInterface.Initialize20Hub(HubInterfaceBusContext, - HubDeviceExtension->RootHubHandle, 1); - DPRINT1("Status %x\n", Status); + if (HubDeviceExtension->UsbDInterface.IsDeviceHighSpeed) + { + // + // is it high speed bus + // + if (HubDeviceExtension->UsbDInterface.IsDeviceHighSpeed(HubInterfaceBusContext)) + { + // + // initialize usb 2.0 hub + // + Status = HubDeviceExtension->HubInterface.Initialize20Hub(HubInterfaceBusContext, + HubDeviceExtension->RootHubHandle, 1); + DPRINT1("Status %x\n", Status); + + // + // FIXME handle error + // + ASSERT(Status == STATUS_SUCCESS); + } + } ExFreePool(ConfigUrb); @@ -1585,8 +1602,9 @@ USBHUB_FdoHandlePnp( } DPRINT1("RootHubInitNotification %x\n", HubDeviceExtension->HubInterface.RootHubInitNotification); + // - // + // init roo hub notification // if (HubDeviceExtension->HubInterface.RootHubInitNotification) {