[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 01/21] arm/acpi: Emulate io ports for arm
On Sat, 23 Jan 2016, Shannon Zhao wrote: > From: Shannon Zhao <shannon.zhao@xxxxxxxxxx> > > Add macros to emulate x86 style ports for arm. This avoids modification in > common code for acpi. Here just print a warning on ARM. > > Signed-off-by: Shannon Zhao <shannon.zhao@xxxxxxxxxx> > --- > V4: print warning > --- > xen/include/asm-arm/arm64/io.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/xen/include/asm-arm/arm64/io.h b/xen/include/asm-arm/arm64/io.h > index 37abc47..ec5815d 100644 > --- a/xen/include/asm-arm/arm64/io.h > +++ b/xen/include/asm-arm/arm64/io.h > @@ -20,6 +20,7 @@ > #ifndef _ARM_ARM64_IO_H > #define _ARM_ARM64_IO_H > > +#include <asm/system.h> > #include <asm/byteorder.h> > > /* > @@ -109,4 +110,21 @@ static inline u64 __raw_readq(const volatile void > __iomem *addr) > #define writel(v,c) ({ __iowmb(); writel_relaxed((v),(c)); }) > #define writeq(v,c) ({ __iowmb(); writeq_relaxed((v),(c)); }) > > +/* > + * Emulate x86 io ports for ARM. > + */ > +static inline void __iomem * __armio(u64 addr) > +{ > + printk(XENLOG_G_WARNING "Can't access IO %lx\n", addr); > + return (void __iomem *)addr; > +} > + > +#define inb(c) ( readb( __armio(c) ) ) > +#define inw(c) ( readw( __armio(c) ) ) > +#define inl(c) ( readl( __armio(c) ) ) > + > +#define outb(v, c) ( writeb(v, __armio(c) ) ) > +#define outw(v, c) ( writew(v, __armio(c) ) ) > +#define outl(v, c) ( writel(v, __armio(c) ) ) This is better than before, but it would still end up causing a write to happen on outb, outw and outl. I would define them in a way so that only the warning gets printed when they are called and nothing else. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |