usb: xhci: remove duplicate code from 'xhci_clear_command_ring()'
authorNiklas Neronin <niklas.neronin@linux.intel.com>
Thu, 29 Feb 2024 14:14:33 +0000 (16:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 2 Mar 2024 19:25:27 +0000 (20:25 +0100)
Replace a segment of code within 'xhci_clear_command_ring()' with a
function call to 'xhci_initialize_ring_info()'. This change eliminates
code duplication, as 'xhci_initialize_ring_info()' performs the same
operations as the replaced code.

Signed-off-by: Niklas Neronin <niklas.neronin@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-5-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci.c

index c50d588..5d70e01 100644 (file)
@@ -794,19 +794,7 @@ static void xhci_clear_command_ring(struct xhci_hcd *xhci)
                seg = seg->next;
        } while (seg != ring->deq_seg);
 
-       /* Reset the software enqueue and dequeue pointers */
-       ring->deq_seg = ring->first_seg;
-       ring->dequeue = ring->first_seg->trbs;
-       ring->enq_seg = ring->deq_seg;
-       ring->enqueue = ring->dequeue;
-
-       ring->num_trbs_free = ring->num_segs * (TRBS_PER_SEGMENT - 1) - 1;
-       /*
-        * Ring is now zeroed, so the HW should look for change of ownership
-        * when the cycle bit is set to 1.
-        */
-       ring->cycle_state = 1;
-
+       xhci_initialize_ring_info(ring, 1);
        /*
         * Reset the hardware dequeue pointer.
         * Yes, this will need to be re-written after resume, but we're paranoid