diff options
-rw-r--r-- | drivers/usb/host/xhci-hub.c | 16 | ||||
-rw-r--r-- | drivers/usb/host/xhci-ring.c | 3 | ||||
-rw-r--r-- | drivers/usb/host/xhci.h | 3 |
3 files changed, 14 insertions, 8 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index 4944ba135f9..4c3788c128d 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c | |||
@@ -135,7 +135,8 @@ u32 xhci_port_state_to_neutral(u32 state) | |||
135 | /* | 135 | /* |
136 | * find slot id based on port number. | 136 | * find slot id based on port number. |
137 | */ | 137 | */ |
138 | int xhci_find_slot_id_by_port(struct xhci_hcd *xhci, u16 port) | 138 | int xhci_find_slot_id_by_port(struct usb_hcd *hcd, struct xhci_hcd *xhci, |
139 | u16 port) | ||
139 | { | 140 | { |
140 | int slot_id; | 141 | int slot_id; |
141 | int i; | 142 | int i; |
@@ -349,7 +350,7 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, | |||
349 | 350 | ||
350 | xhci_dbg(xhci, "set port %d resume\n", | 351 | xhci_dbg(xhci, "set port %d resume\n", |
351 | wIndex + 1); | 352 | wIndex + 1); |
352 | slot_id = xhci_find_slot_id_by_port(xhci, | 353 | slot_id = xhci_find_slot_id_by_port(hcd, xhci, |
353 | wIndex + 1); | 354 | wIndex + 1); |
354 | if (!slot_id) { | 355 | if (!slot_id) { |
355 | xhci_dbg(xhci, "slot_id is zero\n"); | 356 | xhci_dbg(xhci, "slot_id is zero\n"); |
@@ -404,7 +405,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, | |||
404 | goto error; | 405 | goto error; |
405 | } | 406 | } |
406 | 407 | ||
407 | slot_id = xhci_find_slot_id_by_port(xhci, wIndex + 1); | 408 | slot_id = xhci_find_slot_id_by_port(hcd, xhci, |
409 | wIndex + 1); | ||
408 | if (!slot_id) { | 410 | if (!slot_id) { |
409 | xhci_warn(xhci, "slot_id is zero\n"); | 411 | xhci_warn(xhci, "slot_id is zero\n"); |
410 | goto error; | 412 | goto error; |
@@ -498,7 +500,8 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, | |||
498 | bus_state->port_c_suspend |= 1 << wIndex; | 500 | bus_state->port_c_suspend |= 1 << wIndex; |
499 | } | 501 | } |
500 | 502 | ||
501 | slot_id = xhci_find_slot_id_by_port(xhci, wIndex + 1); | 503 | slot_id = xhci_find_slot_id_by_port(hcd, xhci, |
504 | wIndex + 1); | ||
502 | if (!slot_id) { | 505 | if (!slot_id) { |
503 | xhci_dbg(xhci, "slot_id is zero\n"); | 506 | xhci_dbg(xhci, "slot_id is zero\n"); |
504 | goto error; | 507 | goto error; |
@@ -632,7 +635,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd) | |||
632 | 635 | ||
633 | if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) { | 636 | if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) { |
634 | xhci_dbg(xhci, "port %d not suspended\n", port_index); | 637 | xhci_dbg(xhci, "port %d not suspended\n", port_index); |
635 | slot_id = xhci_find_slot_id_by_port(xhci, | 638 | slot_id = xhci_find_slot_id_by_port(hcd, xhci, |
636 | port_index + 1); | 639 | port_index + 1); |
637 | if (slot_id) { | 640 | if (slot_id) { |
638 | spin_unlock_irqrestore(&xhci->lock, flags); | 641 | spin_unlock_irqrestore(&xhci->lock, flags); |
@@ -748,7 +751,8 @@ int xhci_bus_resume(struct usb_hcd *hcd) | |||
748 | temp |= PORT_LINK_STROBE | XDEV_U0; | 751 | temp |= PORT_LINK_STROBE | XDEV_U0; |
749 | xhci_writel(xhci, temp, port_array[port_index]); | 752 | xhci_writel(xhci, temp, port_array[port_index]); |
750 | } | 753 | } |
751 | slot_id = xhci_find_slot_id_by_port(xhci, port_index + 1); | 754 | slot_id = xhci_find_slot_id_by_port(hcd, |
755 | xhci, port_index + 1); | ||
752 | if (slot_id) | 756 | if (slot_id) |
753 | xhci_ring_device(xhci, slot_id); | 757 | xhci_ring_device(xhci, slot_id); |
754 | } else | 758 | } else |
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 7cea2483e59..7fe9aebd392 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c | |||
@@ -1213,7 +1213,8 @@ static void handle_port_status(struct xhci_hcd *xhci, | |||
1213 | temp &= ~PORT_PLS_MASK; | 1213 | temp &= ~PORT_PLS_MASK; |
1214 | temp |= PORT_LINK_STROBE | XDEV_U0; | 1214 | temp |= PORT_LINK_STROBE | XDEV_U0; |
1215 | xhci_writel(xhci, temp, port_array[faked_port_index]); | 1215 | xhci_writel(xhci, temp, port_array[faked_port_index]); |
1216 | slot_id = xhci_find_slot_id_by_port(xhci, port_id); | 1216 | slot_id = xhci_find_slot_id_by_port(hcd, xhci, |
1217 | faked_port_index); | ||
1217 | if (!slot_id) { | 1218 | if (!slot_id) { |
1218 | xhci_dbg(xhci, "slot_id is zero\n"); | 1219 | xhci_dbg(xhci, "slot_id is zero\n"); |
1219 | goto cleanup; | 1220 | goto cleanup; |
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h index c15470eb121..443d6333f28 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h | |||
@@ -1533,7 +1533,8 @@ int xhci_bus_resume(struct usb_hcd *hcd); | |||
1533 | #endif /* CONFIG_PM */ | 1533 | #endif /* CONFIG_PM */ |
1534 | 1534 | ||
1535 | u32 xhci_port_state_to_neutral(u32 state); | 1535 | u32 xhci_port_state_to_neutral(u32 state); |
1536 | int xhci_find_slot_id_by_port(struct xhci_hcd *xhci, u16 port); | 1536 | int xhci_find_slot_id_by_port(struct usb_hcd *hcd, struct xhci_hcd *xhci, |
1537 | u16 port); | ||
1537 | void xhci_ring_device(struct xhci_hcd *xhci, int slot_id); | 1538 | void xhci_ring_device(struct xhci_hcd *xhci, int slot_id); |
1538 | 1539 | ||
1539 | /* xHCI contexts */ | 1540 | /* xHCI contexts */ |