summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/host/xhci-mem.c9
-rw-r--r--drivers/usb/host/xhci.h3
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index c4b8959e01e7..94a8b28d602e 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -1473,11 +1473,12 @@ void xhci_update_bw_info(struct xhci_hcd *xhci,
/* Added or changed endpoint */
bw_info->ep_interval = CTX_TO_EP_INTERVAL(
le32_to_cpu(ep_ctx->ep_info));
- bw_info->mult = CTX_TO_EP_MULT(
- le32_to_cpu(ep_ctx->ep_info));
- /* Number of packets is zero-based in the input context,
- * but we want one-based for the interval table.
+ /* Number of packets and mult are zero-based in the
+ * input context, but we want one-based for the
+ * interval table.
*/
+ bw_info->mult = CTX_TO_EP_MULT(
+ le32_to_cpu(ep_ctx->ep_info)) + 1;
bw_info->num_packets = CTX_TO_MAX_BURST(
le32_to_cpu(ep_ctx->ep_info2)) + 1;
bw_info->max_packet_size = MAX_PACKET_DECODED(
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 13f1c23ed19d..752a500f8695 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -747,8 +747,9 @@ struct xhci_stream_info {
* (DMI) also limits the total bandwidth (across all domains) that can be used.
*/
struct xhci_bw_info {
+ /* ep_interval is zero-based */
unsigned int ep_interval;
- /* mult and num_packets are zero-based */
+ /* mult and num_packets are one-based */
unsigned int mult;
unsigned int num_packets;
unsigned int max_packet_size;