Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfb80c9e authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge Committed by Ingo Molnar
Browse files

x86: unify pci iommu setup and allow swiotlb to compile for 32 bit



swiotlb on 32 bit will be used by Xen domain 0 support.

Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 8ce79960
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ static inline struct dma_mapping_ops *get_dma_ops(struct device *dev)
		return dma_ops;
	else
		return dev->archdata.dma_ops;
#endif /* _ASM_X86_DMA_MAPPING_H */
#endif
}

/* Make sure we keep the same behaviour */
+2 −0
Original line number Diff line number Diff line
@@ -82,6 +82,8 @@ static inline void pci_dma_burst_advice(struct pci_dev *pdev,
static inline void early_quirks(void) { }
#endif

extern void pci_iommu_alloc(void);

#endif  /* __KERNEL__ */

#ifdef CONFIG_X86_32
+0 −1
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ extern int (*pci_config_write)(int seg, int bus, int dev, int fn,
			       int reg, int len, u32 value);

extern void dma32_reserve_bootmem(void);
extern void pci_iommu_alloc(void);

/* The PCI address space does equal the physical memory
 * address space.  The networking and block device layers use
+2 −1
Original line number Diff line number Diff line
@@ -105,6 +105,8 @@ microcode-$(CONFIG_MICROCODE_INTEL) += microcode_intel.o
microcode-$(CONFIG_MICROCODE_AMD)	+= microcode_amd.o
obj-$(CONFIG_MICROCODE)			+= microcode.o

obj-$(CONFIG_SWIOTLB)			+= pci-swiotlb_64.o # NB rename without _64

###
# 64 bit specific files
ifeq ($(CONFIG_X86_64),y)
@@ -118,7 +120,6 @@ ifeq ($(CONFIG_X86_64),y)
        obj-$(CONFIG_GART_IOMMU)	+= pci-gart_64.o aperture_64.o
        obj-$(CONFIG_CALGARY_IOMMU)	+= pci-calgary_64.o tce_64.o
        obj-$(CONFIG_AMD_IOMMU)		+= amd_iommu_init.o amd_iommu.o
        obj-$(CONFIG_SWIOTLB)		+= pci-swiotlb_64.o

        obj-$(CONFIG_PCI_MMCONFIG)	+= mmconf-fam10h_64.o
endif
+4 −2
Original line number Diff line number Diff line
@@ -105,11 +105,15 @@ static void __init dma32_free_bootmem(void)
	dma32_bootmem_ptr = NULL;
	dma32_bootmem_size = 0;
}
#endif

void __init pci_iommu_alloc(void)
{
#ifdef CONFIG_X86_64
	/* free the range so iommu could get some range less than 4G */
	dma32_free_bootmem();
#endif

	/*
	 * The order of these functions is important for
	 * fall-back/fail-over reasons
@@ -125,8 +129,6 @@ void __init pci_iommu_alloc(void)
	pci_swiotlb_init();
}

#endif

void *dma_generic_alloc_coherent(struct device *dev, size_t size,
				 dma_addr_t *dma_addr, gfp_t flag)
{
Loading