xhci: add helper to get the endpoint state of a endpoint context
authorMathias Nyman <mathias.nyman@linux.intel.com>
Fri, 11 Nov 2016 13:13:28 +0000 (15:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Nov 2016 09:18:22 +0000 (10:18 +0100)
define GET_EP_CTX_STATE() macro to get the endpoint state from a
pointer to a le32 enpoint context structure

No functional changes

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h

index 26be80dba9dce25293b4367dda69cb0941258ef8..7d6fe92a5db78786d35030ea52368200604e5fb5 100644 (file)
@@ -1000,8 +1000,7 @@ static void xhci_handle_cmd_set_deq(struct xhci_hcd *xhci, int slot_id,
                        break;
                case COMP_CTX_STATE:
                        xhci_warn(xhci, "WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.\n");
-                       ep_state = le32_to_cpu(ep_ctx->ep_info);
-                       ep_state &= EP_STATE_MASK;
+                       ep_state = GET_EP_CTX_STATE(ep_ctx);
                        slot_state = le32_to_cpu(slot_ctx->dev_state);
                        slot_state = GET_SLOT_STATE(slot_state);
                        xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
@@ -1794,8 +1793,7 @@ static int xhci_requires_manual_halt_cleanup(struct xhci_hcd *xhci,
                 * endpoint anyway.  Check if a babble halted the
                 * endpoint.
                 */
-               if ((ep_ctx->ep_info & cpu_to_le32(EP_STATE_MASK)) ==
-                   cpu_to_le32(EP_STATE_HALTED))
+               if (GET_EP_CTX_STATE(ep_ctx) == EP_STATE_HALTED)
                        return 1;
 
        return 0;
@@ -2244,9 +2242,7 @@ static int handle_tx_event(struct xhci_hcd *xhci,
        ep = &xdev->eps[ep_index];
        ep_ring = xhci_dma_to_transfer_ring(ep, le64_to_cpu(event->buffer));
        ep_ctx = xhci_get_ep_ctx(xhci, xdev->out_ctx, ep_index);
-       if (!ep_ring ||
-           (le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK) ==
-           EP_STATE_DISABLED) {
+       if (!ep_ring ||  GET_EP_CTX_STATE(ep_ctx) == EP_STATE_DISABLED) {
                xhci_err(xhci, "ERROR Transfer event for disabled endpoint "
                                "or incorrect stream ring\n");
                xhci_err(xhci, "@%016llx %08x %08x %08x %08x\n",
@@ -2807,8 +2803,7 @@ static int prepare_transfer(struct xhci_hcd *xhci,
                return -EINVAL;
        }
 
-       ret = prepare_ring(xhci, ep_ring,
-                          le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK,
+       ret = prepare_ring(xhci, ep_ring, GET_EP_CTX_STATE(ep_ctx),
                           num_trbs, mem_flags);
        if (ret)
                return ret;
@@ -3704,7 +3699,7 @@ int xhci_queue_isoc_tx_prepare(struct xhci_hcd *xhci, gfp_t mem_flags,
        /* Check the ring to guarantee there is enough room for the whole urb.
         * Do not insert any td of the urb to the ring if the check failed.
         */
-       ret = prepare_ring(xhci, ep_ring, le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK,
+       ret = prepare_ring(xhci, ep_ring, GET_EP_CTX_STATE(ep_ctx),
                           num_trbs, mem_flags);
        if (ret)
                return ret;
@@ -3717,8 +3712,7 @@ int xhci_queue_isoc_tx_prepare(struct xhci_hcd *xhci, gfp_t mem_flags,
 
        /* Calculate the start frame and put it in urb->start_frame. */
        if (HCC_CFC(xhci->hcc_params) && !list_empty(&ep_ring->td_list)) {
-               if ((le32_to_cpu(ep_ctx->ep_info) & EP_STATE_MASK) ==
-                               EP_STATE_RUNNING) {
+               if (GET_EP_CTX_STATE(ep_ctx) == EP_STATE_RUNNING) {
                        urb->start_frame = xep->next_frame_id;
                        goto skip_start_over;
                }
index 641663f18fdb032380aa9ab61be22591a6814d4b..ea338e05ae27f54769fa5abb141f46f9e4f8e93c 100644 (file)
@@ -1650,8 +1650,7 @@ int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
        /* If the HC already knows the endpoint is disabled,
         * or the HCD has noted it is disabled, ignore this request
         */
-       if (((ep_ctx->ep_info & cpu_to_le32(EP_STATE_MASK)) ==
-            cpu_to_le32(EP_STATE_DISABLED)) ||
+       if ((GET_EP_CTX_STATE(ep_ctx) == EP_STATE_DISABLED) ||
            le32_to_cpu(ctrl_ctx->drop_flags) &
            xhci_get_endpoint_flag(&ep->desc)) {
                /* Do not warn when called after a usb_device_reset */
index 0751c6ad52e694a7b742af9c202dd8ecdd8809f5..ad1a25b7b9be5d836d3fec507c390c4657457a55 100644 (file)
@@ -709,6 +709,8 @@ struct xhci_ep_ctx {
 #define EP_STATE_HALTED                2
 #define EP_STATE_STOPPED       3
 #define EP_STATE_ERROR         4
+#define GET_EP_CTX_STATE(ctx)  (le32_to_cpu((ctx)->ep_info) & EP_STATE_MASK)
+
 /* Mult - Max number of burtst within an interval, in EP companion desc. */
 #define EP_MULT(p)             (((p) & 0x3) << 8)
 #define CTX_TO_EP_MULT(p)      (((p) >> 8) & 0x3)