diff options
Diffstat (limited to 'drivers/usb/dwc3/io.h')
| -rw-r--r-- | drivers/usb/dwc3/io.h | 16 | 
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/usb/dwc3/io.h b/drivers/usb/dwc3/io.h index 071d561f3e6..a50f76b9d19 100644 --- a/drivers/usb/dwc3/io.h +++ b/drivers/usb/dwc3/io.h @@ -41,14 +41,26 @@  #include <linux/io.h> +#include "core.h" +  static inline u32 dwc3_readl(void __iomem *base, u32 offset)  { -	return readl(base + offset); +	/* +	 * We requested the mem region starting from the Globals address +	 * space, see dwc3_probe in core.c. +	 * However, the offsets are given starting from xHCI address space. +	 */ +	return readl(base + (offset - DWC3_GLOBALS_REGS_START));  }  static inline void dwc3_writel(void __iomem *base, u32 offset, u32 value)  { -	writel(value, base + offset); +	/* +	 * We requested the mem region starting from the Globals address +	 * space, see dwc3_probe in core.c. +	 * However, the offsets are given starting from xHCI address space. +	 */ +	writel(value, base + (offset - DWC3_GLOBALS_REGS_START));  }  #endif /* __DRIVERS_USB_DWC3_IO_H */  |