| From 9bbf8d4c55eaf34afaea2f5d91f052efd9918bef Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 20 Sep 2018 19:13:32 +0300 |
| Subject: usb: xhci-mtk: fix ISOC error when interval is zero |
| |
| From: Chunfeng Yun <chunfeng.yun@mediatek.com> |
| |
| [ Upstream commit 87173acc0d8f0987bda8827da35fff67f52ad15d ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/host/xhci-mtk-sch.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/usb/host/xhci-mtk-sch.c b/drivers/usb/host/xhci-mtk-sch.c |
| index fa33d6e5b1cbd..d04fdd173ed2e 100644 |
| --- a/drivers/usb/host/xhci-mtk-sch.c |
| +++ b/drivers/usb/host/xhci-mtk-sch.c |
| @@ -113,7 +113,9 @@ static void setup_sch_info(struct usb_device *udev, |
| } |
| |
| 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; |
| else |
| sch_ep->pkts = roundup_pow_of_two(esit_pkts) |
| -- |
| 2.20.1 |
| |