aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc2/hcd_queue.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/dwc2/hcd_queue.c')
-rw-r--r--drivers/usb/dwc2/hcd_queue.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/dwc2/hcd_queue.c b/drivers/usb/dwc2/hcd_queue.c
index ea3aa640c15c..68bbac64b753 100644
--- a/drivers/usb/dwc2/hcd_queue.c
+++ b/drivers/usb/dwc2/hcd_queue.c
@@ -708,7 +708,7 @@ static void dwc2_hs_pmap_unschedule(struct dwc2_hsotg *hsotg,
708static int dwc2_uframe_schedule_split(struct dwc2_hsotg *hsotg, 708static int dwc2_uframe_schedule_split(struct dwc2_hsotg *hsotg,
709 struct dwc2_qh *qh) 709 struct dwc2_qh *qh)
710{ 710{
711 int bytecount = dwc2_hb_mult(qh->maxp) * dwc2_max_packet(qh->maxp); 711 int bytecount = qh->maxp_mult * qh->maxp;
712 int ls_search_slice; 712 int ls_search_slice;
713 int err = 0; 713 int err = 0;
714 int host_interval_in_sched; 714 int host_interval_in_sched;
@@ -1332,7 +1332,7 @@ static int dwc2_check_max_xfer_size(struct dwc2_hsotg *hsotg,
1332 u32 max_channel_xfer_size; 1332 u32 max_channel_xfer_size;
1333 int status = 0; 1333 int status = 0;
1334 1334
1335 max_xfer_size = dwc2_max_packet(qh->maxp) * dwc2_hb_mult(qh->maxp); 1335 max_xfer_size = qh->maxp * qh->maxp_mult;
1336 max_channel_xfer_size = hsotg->params.max_transfer_size; 1336 max_channel_xfer_size = hsotg->params.max_transfer_size;
1337 1337
1338 if (max_xfer_size > max_channel_xfer_size) { 1338 if (max_xfer_size > max_channel_xfer_size) {
@@ -1517,8 +1517,9 @@ static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
1517 u32 prtspd = (hprt & HPRT0_SPD_MASK) >> HPRT0_SPD_SHIFT; 1517 u32 prtspd = (hprt & HPRT0_SPD_MASK) >> HPRT0_SPD_SHIFT;
1518 bool do_split = (prtspd == HPRT0_SPD_HIGH_SPEED && 1518 bool do_split = (prtspd == HPRT0_SPD_HIGH_SPEED &&
1519 dev_speed != USB_SPEED_HIGH); 1519 dev_speed != USB_SPEED_HIGH);
1520 int maxp = dwc2_hcd_get_mps(&urb->pipe_info); 1520 int maxp = dwc2_hcd_get_maxp(&urb->pipe_info);
1521 int bytecount = dwc2_hb_mult(maxp) * dwc2_max_packet(maxp); 1521 int maxp_mult = dwc2_hcd_get_maxp_mult(&urb->pipe_info);
1522 int bytecount = maxp_mult * maxp;
1522 char *speed, *type; 1523 char *speed, *type;
1523 1524
1524 /* Initialize QH */ 1525 /* Initialize QH */
@@ -1531,6 +1532,7 @@ static void dwc2_qh_init(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh,
1531 1532
1532 qh->data_toggle = DWC2_HC_PID_DATA0; 1533 qh->data_toggle = DWC2_HC_PID_DATA0;
1533 qh->maxp = maxp; 1534 qh->maxp = maxp;
1535 qh->maxp_mult = maxp_mult;
1534 INIT_LIST_HEAD(&qh->qtd_list); 1536 INIT_LIST_HEAD(&qh->qtd_list);
1535 INIT_LIST_HEAD(&qh->qh_list_entry); 1537 INIT_LIST_HEAD(&qh->qh_list_entry);
1536 1538