mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 10:44:14 +08:00
USB: xhci: rework xhci_print_ir_set() to get ir set from xhci itself
xhci->ir_set points to __iomem region, but xhci_print_ir_set accepts plain struct xhci_intr_reg * causing multiple sparse warning at call sites and inside the fucntion when we try to read that memory. Instead of adding __iomem qualifier to the argument let's rework the function so it itself gets needed register set from xhci and prints it. Signed-off-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
This commit is contained in:
parent
07194ab7be
commit
09ece30e06
@ -169,9 +169,10 @@ static void xhci_print_ports(struct xhci_hcd *xhci)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void xhci_print_ir_set(struct xhci_hcd *xhci, struct xhci_intr_reg *ir_set, int set_num)
|
void xhci_print_ir_set(struct xhci_hcd *xhci, int set_num)
|
||||||
{
|
{
|
||||||
void *addr;
|
struct xhci_intr_reg __iomem *ir_set = &xhci->run_regs->ir_set[set_num];
|
||||||
|
void __iomem *addr;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
u64 temp_64;
|
u64 temp_64;
|
||||||
|
|
||||||
|
@ -1961,7 +1961,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags)
|
|||||||
/* Set the event ring dequeue address */
|
/* Set the event ring dequeue address */
|
||||||
xhci_set_hc_event_deq(xhci);
|
xhci_set_hc_event_deq(xhci);
|
||||||
xhci_dbg(xhci, "Wrote ERST address to ir_set 0.\n");
|
xhci_dbg(xhci, "Wrote ERST address to ir_set 0.\n");
|
||||||
xhci_print_ir_set(xhci, xhci->ir_set, 0);
|
xhci_print_ir_set(xhci, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX: Might need to set the Interrupter Moderation Register to
|
* XXX: Might need to set the Interrupter Moderation Register to
|
||||||
|
@ -473,7 +473,7 @@ int xhci_run(struct usb_hcd *hcd)
|
|||||||
xhci->ir_set, (unsigned int) ER_IRQ_ENABLE(temp));
|
xhci->ir_set, (unsigned int) ER_IRQ_ENABLE(temp));
|
||||||
xhci_writel(xhci, ER_IRQ_ENABLE(temp),
|
xhci_writel(xhci, ER_IRQ_ENABLE(temp),
|
||||||
&xhci->ir_set->irq_pending);
|
&xhci->ir_set->irq_pending);
|
||||||
xhci_print_ir_set(xhci, xhci->ir_set, 0);
|
xhci_print_ir_set(xhci, 0);
|
||||||
|
|
||||||
if (NUM_TEST_NOOPS > 0)
|
if (NUM_TEST_NOOPS > 0)
|
||||||
doorbell = xhci_setup_one_noop(xhci);
|
doorbell = xhci_setup_one_noop(xhci);
|
||||||
@ -528,7 +528,7 @@ void xhci_stop(struct usb_hcd *hcd)
|
|||||||
temp = xhci_readl(xhci, &xhci->ir_set->irq_pending);
|
temp = xhci_readl(xhci, &xhci->ir_set->irq_pending);
|
||||||
xhci_writel(xhci, ER_IRQ_DISABLE(temp),
|
xhci_writel(xhci, ER_IRQ_DISABLE(temp),
|
||||||
&xhci->ir_set->irq_pending);
|
&xhci->ir_set->irq_pending);
|
||||||
xhci_print_ir_set(xhci, xhci->ir_set, 0);
|
xhci_print_ir_set(xhci, 0);
|
||||||
|
|
||||||
xhci_dbg(xhci, "cleaning up memory\n");
|
xhci_dbg(xhci, "cleaning up memory\n");
|
||||||
xhci_mem_cleanup(xhci);
|
xhci_mem_cleanup(xhci);
|
||||||
@ -755,7 +755,7 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
|
|||||||
temp = xhci_readl(xhci, &xhci->ir_set->irq_pending);
|
temp = xhci_readl(xhci, &xhci->ir_set->irq_pending);
|
||||||
xhci_writel(xhci, ER_IRQ_DISABLE(temp),
|
xhci_writel(xhci, ER_IRQ_DISABLE(temp),
|
||||||
&xhci->ir_set->irq_pending);
|
&xhci->ir_set->irq_pending);
|
||||||
xhci_print_ir_set(xhci, xhci->ir_set, 0);
|
xhci_print_ir_set(xhci, 0);
|
||||||
|
|
||||||
xhci_dbg(xhci, "cleaning up memory\n");
|
xhci_dbg(xhci, "cleaning up memory\n");
|
||||||
xhci_mem_cleanup(xhci);
|
xhci_mem_cleanup(xhci);
|
||||||
|
@ -1348,7 +1348,7 @@ static inline int xhci_link_trb_quirk(struct xhci_hcd *xhci)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* xHCI debugging */
|
/* xHCI debugging */
|
||||||
void xhci_print_ir_set(struct xhci_hcd *xhci, struct xhci_intr_reg *ir_set, int set_num);
|
void xhci_print_ir_set(struct xhci_hcd *xhci, int set_num);
|
||||||
void xhci_print_registers(struct xhci_hcd *xhci);
|
void xhci_print_registers(struct xhci_hcd *xhci);
|
||||||
void xhci_dbg_regs(struct xhci_hcd *xhci);
|
void xhci_dbg_regs(struct xhci_hcd *xhci);
|
||||||
void xhci_print_run_regs(struct xhci_hcd *xhci);
|
void xhci_print_run_regs(struct xhci_hcd *xhci);
|
||||||
|
Loading…
Reference in New Issue
Block a user