OSDN Git Service

usb: xhci-mtk: remove or operator for setting schedule parameters
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Mon, 8 Mar 2021 02:51:50 +0000 (10:51 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Mar 2021 08:37:16 +0000 (09:37 +0100)
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

index b45e5bf..5891f56 100644 (file)
@@ -643,7 +643,7 @@ int xhci_mtk_add_ep_quirk(struct usb_hcd *hcd, struct usb_device *udev,
                 */
                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_hcd *hcd, struct usb_device *udev)
                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",