xfree86: Inline xf86{Read,Write}Mmio{8,16,32} on alpha
In commit 9db2af6f75
(xfree86: Remove xf86{Map,Unmap}VidMem) we
somehow stopped exporting xf86{Read,Write}Mmio{8,16,32}. Since the
function pointer indirection was intended to support dense vs sparse and
sparse support is now gone, we can just make the functions static inline
in compiler.h and avoid all of this.
Bugzilla: https://bugs.gentoo.org/548906
Tested-by: Christopher May-Townsend <chris@maytownsend.co.uk>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
1993f147d0
commit
166ac294ae
|
@ -1908,9 +1908,6 @@ if test "x$XORG" = xyes; then
|
||||||
XORG_OS_SUBDIR="linux"
|
XORG_OS_SUBDIR="linux"
|
||||||
linux_acpi="no"
|
linux_acpi="no"
|
||||||
case $host_cpu in
|
case $host_cpu in
|
||||||
alpha*)
|
|
||||||
linux_alpha=yes
|
|
||||||
;;
|
|
||||||
i*86|amd64*|x86_64*|ia64*)
|
i*86|amd64*|x86_64*|ia64*)
|
||||||
linux_acpi=$enable_linux_acpi
|
linux_acpi=$enable_linux_acpi
|
||||||
;;
|
;;
|
||||||
|
@ -2075,7 +2072,6 @@ AM_CONDITIONAL([XORG], [test "x$XORG" = xyes])
|
||||||
AM_CONDITIONAL([XORG_BUS_PCI], [test "x$PCI" = xyes])
|
AM_CONDITIONAL([XORG_BUS_PCI], [test "x$PCI" = xyes])
|
||||||
AM_CONDITIONAL([XORG_BUS_BSDPCI], [test "x$xorg_bus_bsdpci" = xyes])
|
AM_CONDITIONAL([XORG_BUS_BSDPCI], [test "x$xorg_bus_bsdpci" = xyes])
|
||||||
AM_CONDITIONAL([XORG_BUS_SPARC], [test "x$xorg_bus_sparc" = xyes])
|
AM_CONDITIONAL([XORG_BUS_SPARC], [test "x$xorg_bus_sparc" = xyes])
|
||||||
AM_CONDITIONAL([LINUX_ALPHA], [test "x$linux_alpha" = xyes])
|
|
||||||
AM_CONDITIONAL([LNXACPI], [test "x$linux_acpi" = xyes])
|
AM_CONDITIONAL([LNXACPI], [test "x$linux_acpi" = xyes])
|
||||||
AM_CONDITIONAL([LNXAPM], [test "x$linux_apm" = xyes])
|
AM_CONDITIONAL([LNXAPM], [test "x$linux_apm" = xyes])
|
||||||
AM_CONDITIONAL([SOLARIS_VT], [test "x$solaris_vt" = xyes])
|
AM_CONDITIONAL([SOLARIS_VT], [test "x$solaris_vt" = xyes])
|
||||||
|
|
|
@ -986,33 +986,64 @@ inl(unsigned PORT_SIZE port)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __alpha__
|
#ifdef __alpha__
|
||||||
/* entry points for Mmio memory access routines */
|
static inline int
|
||||||
extern _X_EXPORT int (*xf86ReadMmio8) (void *, unsigned long);
|
xf86ReadMmio8(void *Base, unsigned long Offset)
|
||||||
extern _X_EXPORT int (*xf86ReadMmio16) (void *, unsigned long);
|
{
|
||||||
extern _X_EXPORT int (*xf86ReadMmio32) (void *, unsigned long);
|
mem_barrier();
|
||||||
extern _X_EXPORT void (*xf86WriteMmio8) (int, void *, unsigned long);
|
return *(CARD8 *) ((unsigned long) Base + (Offset));
|
||||||
extern _X_EXPORT void (*xf86WriteMmio16) (int, void *, unsigned long);
|
}
|
||||||
extern _X_EXPORT void (*xf86WriteMmio32) (int, void *, unsigned long);
|
|
||||||
|
static inline int
|
||||||
|
xf86ReadMmio16(void *Base, unsigned long Offset)
|
||||||
|
{
|
||||||
|
mem_barrier();
|
||||||
|
return *(CARD16 *) ((unsigned long) Base + (Offset));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
xf86ReadMmio32(void *Base, unsigned long Offset)
|
||||||
|
{
|
||||||
|
mem_barrier();
|
||||||
|
return *(CARD32 *) ((unsigned long) Base + (Offset));
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
xf86WriteMmio8(int Value, void *Base, unsigned long Offset)
|
||||||
|
{
|
||||||
|
write_mem_barrier();
|
||||||
|
*(CARD8 *) ((unsigned long) Base + (Offset)) = Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
xf86WriteMmio16(int Value, void *Base, unsigned long Offset)
|
||||||
|
{
|
||||||
|
write_mem_barrier();
|
||||||
|
*(CARD16 *) ((unsigned long) Base + (Offset)) = Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
xf86WriteMmio32(int Value, void *Base, unsigned long Offset)
|
||||||
|
{
|
||||||
|
write_mem_barrier();
|
||||||
|
*(CARD32 *) ((unsigned long) Base + (Offset)) = Value;
|
||||||
|
}
|
||||||
|
|
||||||
extern _X_EXPORT void xf86SlowBCopyFromBus(unsigned char *, unsigned char *,
|
extern _X_EXPORT void xf86SlowBCopyFromBus(unsigned char *, unsigned char *,
|
||||||
int);
|
int);
|
||||||
extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
|
extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
|
||||||
|
|
||||||
/* Some macros to hide the system dependencies for MMIO accesses */
|
/* Some macros to hide the system dependencies for MMIO accesses */
|
||||||
/* Changed to kill noise generated by gcc's -Wcast-align */
|
/* Changed to kill noise generated by gcc's -Wcast-align */
|
||||||
#define MMIO_IN8(base, offset) (*xf86ReadMmio8)(base, offset)
|
#define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
|
||||||
#define MMIO_IN16(base, offset) (*xf86ReadMmio16)(base, offset)
|
#define MMIO_IN16(base, offset) xf86ReadMmio16(base, offset)
|
||||||
#define MMIO_IN32(base, offset) (*xf86ReadMmio32)(base, offset)
|
#define MMIO_IN32(base, offset) xf86ReadMmio32(base, offset)
|
||||||
|
|
||||||
#define MMIO_OUT32(base, offset, val) \
|
|
||||||
do { \
|
|
||||||
write_mem_barrier(); \
|
|
||||||
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define MMIO_OUT8(base, offset, val) \
|
#define MMIO_OUT8(base, offset, val) \
|
||||||
(*xf86WriteMmio8)((CARD8)(val), base, offset)
|
xf86WriteMmio8((CARD8)(val), base, offset)
|
||||||
#define MMIO_OUT16(base, offset, val) \
|
#define MMIO_OUT16(base, offset, val) \
|
||||||
(*xf86WriteMmio16)((CARD16)(val), base, offset)
|
xf86WriteMmio16((CARD16)(val), base, offset)
|
||||||
|
#define MMIO_OUT32(base, offset, val) \
|
||||||
|
xf86WriteMmio32((CARD32)(val), base, offset)
|
||||||
|
|
||||||
#elif defined(__powerpc__) || defined(__sparc__)
|
#elif defined(__powerpc__) || defined(__sparc__)
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -26,8 +26,7 @@ endif
|
||||||
if ALPHA_VIDEO
|
if ALPHA_VIDEO
|
||||||
# Cheat here and piggyback other alpha bits on ALPHA_VIDEO.
|
# Cheat here and piggyback other alpha bits on ALPHA_VIDEO.
|
||||||
ARCH_SOURCES = \
|
ARCH_SOURCES = \
|
||||||
alpha_video.c \
|
alpha_video.c
|
||||||
bsd_ev56.c
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ARM_VIDEO
|
if ARM_VIDEO
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
noinst_LTLIBRARIES = liblinux.la
|
noinst_LTLIBRARIES = liblinux.la
|
||||||
|
|
||||||
if LINUX_ALPHA
|
|
||||||
noinst_LTLIBRARIES += liblinuxev56.la
|
|
||||||
|
|
||||||
liblinuxev56_la_CFLAGS = $(AM_CFLAGS) -mcpu=ev56
|
|
||||||
|
|
||||||
liblinuxev56_la_SOURCES = lnx_ev56.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
if LNXACPI
|
if LNXACPI
|
||||||
ACPI_SRCS = lnx_acpi.c
|
ACPI_SRCS = lnx_acpi.c
|
||||||
if !LNXAPM
|
if !LNXAPM
|
||||||
|
@ -39,7 +31,3 @@ liblinux_la_SOURCES = linux.h lnx_init.c lnx_video.c \
|
||||||
AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
|
AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
|
||||||
|
|
||||||
AM_CPPFLAGS = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
|
AM_CPPFLAGS = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
|
||||||
|
|
||||||
if LINUX_ALPHA
|
|
||||||
liblinux_la_LIBADD = liblinuxev56.la
|
|
||||||
endif
|
|
||||||
|
|
|
@ -166,30 +166,3 @@ xf86DisableIO(void)
|
||||||
|
|
||||||
ExtendedEnabled = FALSE;
|
ExtendedEnabled = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined (__alpha__)
|
|
||||||
|
|
||||||
extern int readDense8(void *Base, register unsigned long Offset);
|
|
||||||
extern int readDense16(void *Base, register unsigned long Offset);
|
|
||||||
extern int readDense32(void *Base, register unsigned long Offset);
|
|
||||||
extern void
|
|
||||||
writeDense8(int Value, void *Base, register unsigned long Offset);
|
|
||||||
extern void
|
|
||||||
writeDense16(int Value, void *Base, register unsigned long Offset);
|
|
||||||
extern void
|
|
||||||
writeDense32(int Value, void *Base, register unsigned long Offset);
|
|
||||||
|
|
||||||
void (*xf86WriteMmio8) (int Value, void *Base, unsigned long Offset)
|
|
||||||
= writeDense8;
|
|
||||||
void (*xf86WriteMmio16) (int Value, void *Base, unsigned long Offset)
|
|
||||||
= writeDense16;
|
|
||||||
void (*xf86WriteMmio32) (int Value, void *Base, unsigned long Offset)
|
|
||||||
= writeDense32;
|
|
||||||
int (*xf86ReadMmio8) (void *Base, unsigned long Offset)
|
|
||||||
= readDense8;
|
|
||||||
int (*xf86ReadMmio16) (void *Base, unsigned long Offset)
|
|
||||||
= readDense16;
|
|
||||||
int (*xf86ReadMmio32) (void *Base, unsigned long Offset)
|
|
||||||
= readDense32;
|
|
||||||
|
|
||||||
#endif /* __alpha__ */
|
|
||||||
|
|
|
@ -100,7 +100,6 @@ elif host_machine.system().endswith('bsd')
|
||||||
srcs_xorg_os_support += 'shared/ioperm_noop.c'
|
srcs_xorg_os_support += 'shared/ioperm_noop.c'
|
||||||
elif host_machine.cpu_family() == 'alpha'
|
elif host_machine.cpu_family() == 'alpha'
|
||||||
srcs_xorg_os_support += 'bsd/alpha_video.c'
|
srcs_xorg_os_support += 'bsd/alpha_video.c'
|
||||||
srcs_xorg_os_support += 'bsd/bsd_ev56.c'
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if host_machine.system() == 'freebsd'
|
if host_machine.system() == 'freebsd'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user