On 11/24/2013 11:57 AM, Peter Chen wrote: > On Fri, Nov 22, 2013 at 10:53:53AM +0100, Marc Kleine-Budde wrote: >> Hello, >> >> this series implements the suggested workaround for freescale's imx28 Errata, >> "ENGR119653 USB: ARM to USB register error issue". >> >> changes since v4: >> - fix signature of imx28_ehci_writel(), don't use volatile, make use of >> __iomem > > The __iomem is just sparse thing, and not related to gcc, our > imx28_ehci_writel > uses assembly directly, and not call writel any more. The definition of > __raw_writel still uses volatile:
Yes.... > > include/asm-generic/io.h: > static inline void __raw_writel(u32 b, volatile void __iomem *addr) > { > *(volatile u32 __force *) addr = b; > } What does that mean for our imx28_ehci_writel? Do we need volatile here? > +static inline void imx28_ehci_writel(const unsigned int val, __u32 __iomem > *addr) > +{ > + __asm__ ("swp %0, %0, [%1]" : : "r"(val), "r"(addr)); > +} Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
signature.asc
Description: OpenPGP digital signature