mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ia64: clean up swiotlb support
Move the few remaining bits of swiotlb glue towards their callers, and remove the pointless on ia64 swiotlb variable. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
		
							parent
							
								
									543cea9acc
								
							
						
					
					
						commit
						4fac8076df
					
				
					 6 changed files with 20 additions and 58 deletions
				
			
		| 
						 | 
				
			
			@ -8,7 +8,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#include <asm/machvec.h>
 | 
			
		||||
#include <linux/scatterlist.h>
 | 
			
		||||
#include <asm/swiotlb.h>
 | 
			
		||||
#include <linux/dma-debug.h>
 | 
			
		||||
 | 
			
		||||
#define ARCH_HAS_DMA_GET_REQUIRED_MASK
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
/* SPDX-License-Identifier: GPL-2.0 */
 | 
			
		||||
#ifndef ASM_IA64__SWIOTLB_H
 | 
			
		||||
#define ASM_IA64__SWIOTLB_H
 | 
			
		||||
 | 
			
		||||
#include <linux/dma-mapping.h>
 | 
			
		||||
#include <linux/swiotlb.h>
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SWIOTLB
 | 
			
		||||
extern int swiotlb;
 | 
			
		||||
extern void pci_swiotlb_init(void);
 | 
			
		||||
#else
 | 
			
		||||
#define swiotlb 0
 | 
			
		||||
static inline void pci_swiotlb_init(void)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* ASM_IA64__SWIOTLB_H */
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
#include <linux/dma-mapping.h>
 | 
			
		||||
#include <linux/swiotlb.h>
 | 
			
		||||
#include <linux/export.h>
 | 
			
		||||
 | 
			
		||||
/* Set this to 1 if there is a HW IOMMU in the system */
 | 
			
		||||
| 
						 | 
				
			
			@ -23,3 +24,11 @@ const struct dma_map_ops *dma_get_ops(struct device *dev)
 | 
			
		|||
	return dma_ops;
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL(dma_get_ops);
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SWIOTLB
 | 
			
		||||
void __init swiotlb_dma_init(void)
 | 
			
		||||
{
 | 
			
		||||
	dma_ops = &swiotlb_dma_ops;
 | 
			
		||||
	swiotlb_init(1);
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,8 +104,16 @@ void __init pci_iommu_alloc(void)
 | 
			
		|||
	detect_intel_iommu();
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SWIOTLB
 | 
			
		||||
	pci_swiotlb_init();
 | 
			
		||||
#endif
 | 
			
		||||
	if (!iommu_detected) {
 | 
			
		||||
#ifdef CONFIG_IA64_GENERIC
 | 
			
		||||
		printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
 | 
			
		||||
		machvec_init("dig");
 | 
			
		||||
		swiotlb_dma_init();
 | 
			
		||||
#else
 | 
			
		||||
		panic("Unable to find Intel IOMMU");
 | 
			
		||||
#endif /* CONFIG_IA64_GENERIC */
 | 
			
		||||
	}
 | 
			
		||||
#endif /* CONFIG_SWIOTLB */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,36 +0,0 @@
 | 
			
		|||
// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
/* Glue code to lib/swiotlb.c */
 | 
			
		||||
 | 
			
		||||
#include <linux/pci.h>
 | 
			
		||||
#include <linux/gfp.h>
 | 
			
		||||
#include <linux/cache.h>
 | 
			
		||||
#include <linux/module.h>
 | 
			
		||||
#include <linux/dma-mapping.h>
 | 
			
		||||
#include <linux/swiotlb.h>
 | 
			
		||||
#include <asm/dma.h>
 | 
			
		||||
#include <asm/iommu.h>
 | 
			
		||||
#include <asm/machvec.h>
 | 
			
		||||
 | 
			
		||||
int swiotlb __read_mostly;
 | 
			
		||||
EXPORT_SYMBOL(swiotlb);
 | 
			
		||||
 | 
			
		||||
void __init swiotlb_dma_init(void)
 | 
			
		||||
{
 | 
			
		||||
	dma_ops = &swiotlb_dma_ops;
 | 
			
		||||
	swiotlb_init(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void __init pci_swiotlb_init(void)
 | 
			
		||||
{
 | 
			
		||||
	if (!iommu_detected) {
 | 
			
		||||
#ifdef CONFIG_IA64_GENERIC
 | 
			
		||||
		swiotlb = 1;
 | 
			
		||||
		printk(KERN_INFO "PCI-DMA: Re-initialize machine vector.\n");
 | 
			
		||||
		machvec_init("dig");
 | 
			
		||||
		swiotlb_init(1);
 | 
			
		||||
		dma_ops = &swiotlb_dma_ops;
 | 
			
		||||
#else
 | 
			
		||||
		panic("Unable to find Intel IOMMU");
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -4808,7 +4808,7 @@ int __init intel_iommu_init(void)
 | 
			
		|||
	up_write(&dmar_global_lock);
 | 
			
		||||
	pr_info("Intel(R) Virtualization Technology for Directed I/O\n");
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SWIOTLB
 | 
			
		||||
#if defined(CONFIG_X86) && defined(CONFIG_SWIOTLB)
 | 
			
		||||
	swiotlb = 0;
 | 
			
		||||
#endif
 | 
			
		||||
	dma_ops = &intel_dma_ops;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue