From 1d668973645895faedff890ab96d1db9a187dcc2 Mon Sep 17 00:00:00 2001 From: Anton Kochkov Date: Thu, 20 Sep 2012 10:22:52 +0200 Subject: Fix disconnect handling on UHCI root ports Change-Id: I03b72cd1c6ed0df09c08f2a687d4f17fa3cf6afc Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/1531 Tested-by: build bot (Jenkins) Reviewed-by: Anton Kochkov --- payloads/libpayload/drivers/usb/uhci_rh.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'payloads/libpayload/drivers/usb/uhci_rh.c') diff --git a/payloads/libpayload/drivers/usb/uhci_rh.c b/payloads/libpayload/drivers/usb/uhci_rh.c index a5661b095f..547f0644b4 100644 --- a/payloads/libpayload/drivers/usb/uhci_rh.c +++ b/payloads/libpayload/drivers/usb/uhci_rh.c @@ -81,9 +81,14 @@ static void uhci_rh_disable_port (usbdev_t *dev, int port) { hci_t *controller = dev->controller; - port = PORTSC2; if (port == 1) port = PORTSC1; + else if (port == 2) + port = PORTSC2; + else { + debug("Invalid port %d\n", port); + return; + } uhci_reg_write16(controller, port, uhci_reg_read16(controller, port) & ~4); u16 value; -- cgit v1.2.3