Loading drivers/usb/host/xhci.c +19 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,25 @@ int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec) return -ETIMEDOUT; } int xhci_handshake_check_state(struct xhci_hcd *xhci, void __iomem *ptr, u32 mask, u32 done, int usec) { u32 result; do { result = readl_relaxed(ptr); if (result == ~(u32)0 || xhci->xhc_state == XHCI_STATE_REMOVING) /* card removed */ return -ENODEV; result &= mask; if (result == done) return 0; udelay(1); usec--; } while (usec > 0); return -ETIMEDOUT; } /* * Disable interrupts and begin the xHCI halting process. */ Loading drivers/usb/host/xhci.h +2 −0 Original line number Diff line number Diff line Loading @@ -1864,6 +1864,8 @@ int xhci_sec_event_ring_cleanup(struct usb_hcd *hcd, unsigned int intr_num); /* xHCI host controller glue */ typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec); int xhci_handshake_check_state(struct xhci_hcd *xhci, void __iomem *ptr, u32 mask, u32 done, int usec); void xhci_quiesce(struct xhci_hcd *xhci); int xhci_halt(struct xhci_hcd *xhci); int xhci_reset(struct xhci_hcd *xhci); Loading Loading
drivers/usb/host/xhci.c +19 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,25 @@ int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec) return -ETIMEDOUT; } int xhci_handshake_check_state(struct xhci_hcd *xhci, void __iomem *ptr, u32 mask, u32 done, int usec) { u32 result; do { result = readl_relaxed(ptr); if (result == ~(u32)0 || xhci->xhc_state == XHCI_STATE_REMOVING) /* card removed */ return -ENODEV; result &= mask; if (result == done) return 0; udelay(1); usec--; } while (usec > 0); return -ETIMEDOUT; } /* * Disable interrupts and begin the xHCI halting process. */ Loading
drivers/usb/host/xhci.h +2 −0 Original line number Diff line number Diff line Loading @@ -1864,6 +1864,8 @@ int xhci_sec_event_ring_cleanup(struct usb_hcd *hcd, unsigned int intr_num); /* xHCI host controller glue */ typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec); int xhci_handshake_check_state(struct xhci_hcd *xhci, void __iomem *ptr, u32 mask, u32 done, int usec); void xhci_quiesce(struct xhci_hcd *xhci); int xhci_halt(struct xhci_hcd *xhci); int xhci_reset(struct xhci_hcd *xhci); Loading