diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2010-04-30 12:44:46 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-20 16:21:40 -0400 |
commit | 842f16905dfc6743c1dd80c3d29b49ba3ab7f7c8 (patch) | |
tree | 2d193389359d78580b1652325bb83e57a59e77fa /drivers/usb/host/xhci-mem.c | |
parent | 3b02ca3218cf878e206545041aa811073e4f6c79 (diff) |
USB: remove the usb_host_ss_ep_comp structure
This patch (as1375) eliminates the usb_host_ss_ep_comp structure used
for storing a dynamically-allocated copy of the SuperSpeed endpoint
companion descriptor. The SuperSpeed descriptor is placed directly in
the usb_host_endpoint structure, alongside the standard endpoint
descriptor.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/xhci-mem.c')
-rw-r--r-- | drivers/usb/host/xhci-mem.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index 4df752cb0f78..fd9e03afd91c 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c | |||
@@ -1010,9 +1010,9 @@ static inline unsigned int xhci_get_endpoint_interval(struct usb_device *udev, | |||
1010 | static inline u32 xhci_get_endpoint_mult(struct usb_device *udev, | 1010 | static inline u32 xhci_get_endpoint_mult(struct usb_device *udev, |
1011 | struct usb_host_endpoint *ep) | 1011 | struct usb_host_endpoint *ep) |
1012 | { | 1012 | { |
1013 | if (udev->speed != USB_SPEED_SUPER || !ep->ss_ep_comp) | 1013 | if (udev->speed != USB_SPEED_SUPER) |
1014 | return 0; | 1014 | return 0; |
1015 | return ep->ss_ep_comp->desc.bmAttributes; | 1015 | return ep->ss_ep_comp.bmAttributes; |
1016 | } | 1016 | } |
1017 | 1017 | ||
1018 | static inline u32 xhci_get_endpoint_type(struct usb_device *udev, | 1018 | static inline u32 xhci_get_endpoint_type(struct usb_device *udev, |
@@ -1061,13 +1061,8 @@ static inline u32 xhci_get_max_esit_payload(struct xhci_hcd *xhci, | |||
1061 | usb_endpoint_xfer_bulk(&ep->desc)) | 1061 | usb_endpoint_xfer_bulk(&ep->desc)) |
1062 | return 0; | 1062 | return 0; |
1063 | 1063 | ||
1064 | if (udev->speed == USB_SPEED_SUPER) { | 1064 | if (udev->speed == USB_SPEED_SUPER) |
1065 | if (ep->ss_ep_comp) | 1065 | return ep->ss_ep_comp.wBytesPerInterval; |
1066 | return ep->ss_ep_comp->desc.wBytesPerInterval; | ||
1067 | xhci_warn(xhci, "WARN no SS endpoint companion descriptor.\n"); | ||
1068 | /* Assume no bursts, no multiple opportunities to send. */ | ||
1069 | return ep->desc.wMaxPacketSize; | ||
1070 | } | ||
1071 | 1066 | ||
1072 | max_packet = ep->desc.wMaxPacketSize & 0x3ff; | 1067 | max_packet = ep->desc.wMaxPacketSize & 0x3ff; |
1073 | max_burst = (ep->desc.wMaxPacketSize & 0x1800) >> 11; | 1068 | max_burst = (ep->desc.wMaxPacketSize & 0x1800) >> 11; |
@@ -1131,12 +1126,9 @@ int xhci_endpoint_init(struct xhci_hcd *xhci, | |||
1131 | max_packet = ep->desc.wMaxPacketSize; | 1126 | max_packet = ep->desc.wMaxPacketSize; |
1132 | ep_ctx->ep_info2 |= MAX_PACKET(max_packet); | 1127 | ep_ctx->ep_info2 |= MAX_PACKET(max_packet); |
1133 | /* dig out max burst from ep companion desc */ | 1128 | /* dig out max burst from ep companion desc */ |
1134 | if (!ep->ss_ep_comp) { | 1129 | max_packet = ep->ss_ep_comp.bMaxBurst; |
1135 | xhci_warn(xhci, "WARN no SS endpoint companion descriptor.\n"); | 1130 | if (!max_packet) |
1136 | max_packet = 0; | 1131 | xhci_warn(xhci, "WARN no SS endpoint bMaxBurst\n"); |
1137 | } else { | ||
1138 | max_packet = ep->ss_ep_comp->desc.bMaxBurst; | ||
1139 | } | ||
1140 | ep_ctx->ep_info2 |= MAX_BURST(max_packet); | 1132 | ep_ctx->ep_info2 |= MAX_BURST(max_packet); |
1141 | break; | 1133 | break; |
1142 | case USB_SPEED_HIGH: | 1134 | case USB_SPEED_HIGH: |