summaryrefslogtreecommitdiff
path: root/arch/ia64/include/asm/machvec.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2019-08-13 10:25:09 +0300
committerTony Luck <tony.luck@intel.com>2019-08-16 21:33:57 +0300
commit974f83ec1e5afeeb4c9028feb74ffa4ee70e71b7 (patch)
tree79d9378ae00206cda4d2a41f2a79361b014c4fb5 /arch/ia64/include/asm/machvec.h
parent16567ca85fce11e2a20f22404ed0ceb133c4408e (diff)
downloadlinux-974f83ec1e5afeeb4c9028feb74ffa4ee70e71b7.tar.xz
ia64: rework iommu probing
ia64 currently organizes the iommu probing along machves, which isn't very helpful. Instead just try to probe for Intel IOMMUs in mem_init as they are properly described in ACPI and if none was found initialize the swiotlb buffer. The HP SBA handling is then only done delayed when the actual hardware is probed. Only in the case that we actually found usable IOMMUs we then set up the DMA ops and free the not needed swiotlb buffer. This scheme gets rid of the need for the dma_init machvec operation, and the dig_vtd machvec. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lkml.kernel.org/r/20190813072514.23299-24-hch@lst.de Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/include/asm/machvec.h')
-rw-r--r--arch/ia64/include/asm/machvec.h11
1 files changed, 0 insertions, 11 deletions
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h
index fa867e980d87..b22d0499b58c 100644
--- a/arch/ia64/include/asm/machvec.h
+++ b/arch/ia64/include/asm/machvec.h
@@ -16,14 +16,11 @@
struct device;
typedef void ia64_mv_setup_t (char **);
-typedef void ia64_mv_dma_init (void);
extern void machvec_setup (char **);
# if defined (CONFIG_IA64_DIG)
# include <asm/machvec_dig.h>
-# elif defined(CONFIG_IA64_DIG_VTD)
-# include <asm/machvec_dig_vtd.h>
# elif defined (CONFIG_IA64_HP_ZX1)
# include <asm/machvec_hpzx1.h>
# elif defined (CONFIG_IA64_SGI_UV)
@@ -35,7 +32,6 @@ extern void machvec_setup (char **);
# else
# define ia64_platform_name ia64_mv.name
# define platform_setup ia64_mv.setup
-# define platform_dma_init ia64_mv.dma_init
# endif
/* __attribute__((__aligned__(16))) is required to make size of the
@@ -46,14 +42,12 @@ extern void machvec_setup (char **);
struct ia64_machine_vector {
const char *name;
ia64_mv_setup_t *setup;
- ia64_mv_dma_init *dma_init;
} __attribute__((__aligned__(16))); /* align attrib? see above comment */
#define MACHVEC_INIT(name) \
{ \
#name, \
platform_setup, \
- platform_dma_init, \
}
extern struct ia64_machine_vector ia64_mv;
@@ -64,8 +58,6 @@ extern void machvec_init_from_cmdline(const char *cmdline);
# error Unknown configuration. Update arch/ia64/include/asm/machvec.h.
# endif /* CONFIG_IA64_GENERIC */
-extern void swiotlb_dma_init(void);
-
/*
* Define default versions so we can extend machvec for new platforms without having
* to update the machvec files for all existing platforms.
@@ -73,8 +65,5 @@ extern void swiotlb_dma_init(void);
#ifndef platform_setup
# define platform_setup machvec_setup
#endif
-#ifndef platform_dma_init
-# define platform_dma_init swiotlb_dma_init
-#endif
#endif /* _ASM_IA64_MACHVEC_H */