mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
usb: xhci: rework Event Ring Segment Table Size mask
Event Ring Segment Table Size Register contain two fields: - Bits 15:0: Event Ring Segment Table Size - Bits 31:16: RsvdZ (Reserved and Zero) The current mask 'ERST_SIZE_MASK' refers to the RsvdZ bits (31:16). Change the mask to refer to bits 15:0, which are the Event Ring Segment Table Size bits. 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/20250515135621.335595-19-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e1db856bd2
commit
7c6df26c3b
|
|
@ -1831,7 +1831,7 @@ xhci_remove_interrupter(struct xhci_hcd *xhci, struct xhci_interrupter *ir)
|
|||
*/
|
||||
if (ir->ir_set) {
|
||||
tmp = readl(&ir->ir_set->erst_size);
|
||||
tmp &= ERST_SIZE_MASK;
|
||||
tmp &= ~ERST_SIZE_MASK;
|
||||
writel(tmp, &ir->ir_set->erst_size);
|
||||
|
||||
xhci_update_erst_dequeue(xhci, ir, true);
|
||||
|
|
@ -2333,7 +2333,7 @@ void xhci_add_interrupter(struct xhci_hcd *xhci, unsigned int intr_num)
|
|||
|
||||
/* set ERST count with the number of entries in the segment table */
|
||||
erst_size = readl(&ir->ir_set->erst_size);
|
||||
erst_size &= ERST_SIZE_MASK;
|
||||
erst_size &= ~ERST_SIZE_MASK;
|
||||
erst_size |= ir->event_ring->num_segs;
|
||||
writel(erst_size, &ir->ir_set->erst_size);
|
||||
|
||||
|
|
|
|||
|
|
@ -251,8 +251,8 @@ struct xhci_intr_reg {
|
|||
#define ER_IRQ_COUNTER_MASK (0xffff << 16)
|
||||
|
||||
/* erst_size bitmasks */
|
||||
/* Preserve bits 16:31 of erst_size */
|
||||
#define ERST_SIZE_MASK (0xffff << 16)
|
||||
/* bits 15:0 - Event Ring Segment Table Size, number of ERST entries */
|
||||
#define ERST_SIZE_MASK (0xffff)
|
||||
|
||||
/* erst_base bitmasks */
|
||||
#define ERST_BASE_RSVDP (GENMASK_ULL(5, 0))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user