Przeglądaj źródła

usb: xhci-mtk: fix ISOC error when interval is zero

If the interval equal zero, needn't round up to power of two
for the number of packets in each ESIT, so fix it.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Chunfeng Yun 6 lat temu
rodzic
commit
87173acc0d
1 zmienionych plików z 3 dodań i 1 usunięć
  1. 3 1
      drivers/usb/host/xhci-mtk-sch.c

+ 3 - 1
drivers/usb/host/xhci-mtk-sch.c

@@ -126,7 +126,9 @@ static void setup_sch_info(struct usb_device *udev,
 		}
 		}
 
 
 		if (ep_type == ISOC_IN_EP || ep_type == ISOC_OUT_EP) {
 		if (ep_type == ISOC_IN_EP || ep_type == ISOC_OUT_EP) {
-			if (esit_pkts <= sch_ep->esit)
+			if (sch_ep->esit == 1)
+				sch_ep->pkts = esit_pkts;
+			else if (esit_pkts <= sch_ep->esit)
 				sch_ep->pkts = 1;
 				sch_ep->pkts = 1;
 			else
 			else
 				sch_ep->pkts = roundup_pow_of_two(esit_pkts)
 				sch_ep->pkts = roundup_pow_of_two(esit_pkts)