summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>2017-06-05 19:31:51 (GMT)
committerMarek Vasut <marex@denx.de>2017-06-17 15:59:03 (GMT)
commit9000eddbae0d292331ef403b0a1ff7ec7a983a79 (patch)
tree90b1100f6360dbe35c55498090175bfc4273b4b6 /drivers/usb
parentc65a34942e292e1f74af798c6ccbef17a072e238 (diff)
downloadu-boot-9000eddbae0d292331ef403b0a1ff7ec7a983a79.tar.xz
drivers/usb/ehci: Use platform-specific accessors
Current implementation doesn't allow utilization of platform-specific reads and writes. But some arches or platforms may want to use their accessors that do some extra work like adding barriers for data serialization etc. Interesting enough OHCI accessors already do that so just aligning EHCI to it now. This is a resend of http://patchwork.ozlabs.org/patch/726714/ Back in the day this patch broke some PPC and Sandbox boards as they we missing inclusion of "asm/io.h". Those missing items were fixed with: 1) http://patchwork.ozlabs.org/patch/751397/ 2) http://patchwork.ozlabs.org/patch/771099/ So now it should be safe to apply this patch. FWIW TravisCI builds everything with all 3 patches in place, see https://travis-ci.org/abrodkin/u-boot/builds/239563813 Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Simon Glass <sjg@chromium.org> Cc: Mateusz Kulikowski <mateusz.kulikowski@gmail.com> Acked-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/ehci.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 734d7f0..2ab830d 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -102,13 +102,11 @@ struct usb_linux_config_descriptor {
} __attribute__ ((packed));
#if defined CONFIG_EHCI_DESC_BIG_ENDIAN
-#define ehci_readl(x) cpu_to_be32((*((volatile u32 *)(x))))
-#define ehci_writel(a, b) (*((volatile u32 *)(a)) = \
- cpu_to_be32(((volatile u32)b)))
+#define ehci_readl(x) cpu_to_be32(readl(x))
+#define ehci_writel(a, b) writel(cpu_to_be32(b), a)
#else
-#define ehci_readl(x) cpu_to_le32((*((volatile u32 *)(x))))
-#define ehci_writel(a, b) (*((volatile u32 *)(a)) = \
- cpu_to_le32(((volatile u32)b)))
+#define ehci_readl(x) cpu_to_le32(readl(x))
+#define ehci_writel(a, b) writel(cpu_to_le32(b), a)
#endif
#if defined CONFIG_EHCI_MMIO_BIG_ENDIAN