| From 5fa5827566e3affa1657ccf9b22706c06a5d021a Mon Sep 17 00:00:00 2001 |
| From: Chunfeng Yun <chunfeng.yun@mediatek.com> |
| Date: Mon, 8 Mar 2021 10:51:50 +0800 |
| Subject: usb: xhci-mtk: remove or operator for setting schedule parameters |
| |
| From: Chunfeng Yun <chunfeng.yun@mediatek.com> |
| |
| commit 5fa5827566e3affa1657ccf9b22706c06a5d021a upstream. |
| |
| Side effect may happen if use or operator to set schedule parameters |
| when the parameters are already set before. Set them directly due to |
| other bits are reserved. |
| |
| Fixes: 54f6a8af3722 ("usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints") |
| Cc: stable <stable@vger.kernel.org> |
| Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> |
| Link: https://lore.kernel.org/r/d287899e6beb2fc1bfb8900c75a872f628ecde55.1615170625.git.chunfeng.yun@mediatek.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/host/xhci-mtk-sch.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/usb/host/xhci-mtk-sch.c |
| +++ b/drivers/usb/host/xhci-mtk-sch.c |
| @@ -643,7 +643,7 @@ int xhci_mtk_add_ep_quirk(struct usb_hcd |
| */ |
| if (usb_endpoint_xfer_int(&ep->desc) |
| || usb_endpoint_xfer_isoc(&ep->desc)) |
| - ep_ctx->reserved[0] |= cpu_to_le32(EP_BPKTS(1)); |
| + ep_ctx->reserved[0] = cpu_to_le32(EP_BPKTS(1)); |
| |
| return 0; |
| } |
| @@ -730,10 +730,10 @@ int xhci_mtk_check_bandwidth(struct usb_ |
| list_move_tail(&sch_ep->endpoint, &sch_bw->bw_ep_list); |
| |
| ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); |
| - ep_ctx->reserved[0] |= cpu_to_le32(EP_BPKTS(sch_ep->pkts) |
| + ep_ctx->reserved[0] = cpu_to_le32(EP_BPKTS(sch_ep->pkts) |
| | EP_BCSCOUNT(sch_ep->cs_count) |
| | EP_BBM(sch_ep->burst_mode)); |
| - ep_ctx->reserved[1] |= cpu_to_le32(EP_BOFFSET(sch_ep->offset) |
| + ep_ctx->reserved[1] = cpu_to_le32(EP_BOFFSET(sch_ep->offset) |
| | EP_BREPEAT(sch_ep->repeat)); |
| |
| xhci_dbg(xhci, " PKTS:%x, CSCOUNT:%x, BM:%x, OFFSET:%x, REPEAT:%x\n", |