Merge branches 'core/iommu', 'x86/amd-iommu' and 'x86/iommu' into x86-v28-for-linus-phase3-B
Conflicts: arch/x86/kernel/pci-gart_64.c include/asm-x86/dma-mapping.h
This commit is contained in:
@@ -48,6 +48,11 @@ static inline int is_device_dma_capable(struct device *dev)
|
||||
return dev->dma_mask != NULL && *dev->dma_mask != DMA_MASK_NONE;
|
||||
}
|
||||
|
||||
static inline int is_buffer_dma_capable(u64 mask, dma_addr_t addr, size_t size)
|
||||
{
|
||||
return addr + size <= mask;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HAS_DMA
|
||||
#include <asm/dma-mapping.h>
|
||||
#else
|
||||
@@ -58,6 +63,13 @@ static inline int is_device_dma_capable(struct device *dev)
|
||||
#define dma_sync_single dma_sync_single_for_cpu
|
||||
#define dma_sync_sg dma_sync_sg_for_cpu
|
||||
|
||||
static inline u64 dma_get_mask(struct device *dev)
|
||||
{
|
||||
if (dev && dev->dma_mask && *dev->dma_mask)
|
||||
return *dev->dma_mask;
|
||||
return DMA_32BIT_MASK;
|
||||
}
|
||||
|
||||
extern u64 dma_get_required_mask(struct device *dev);
|
||||
|
||||
static inline unsigned int dma_get_max_seg_size(struct device *dev)
|
||||
|
@@ -1,6 +1,20 @@
|
||||
#ifndef _LINUX_IOMMU_HELPER_H
|
||||
#define _LINUX_IOMMU_HELPER_H
|
||||
|
||||
static inline unsigned long iommu_device_max_index(unsigned long size,
|
||||
unsigned long offset,
|
||||
u64 dma_mask)
|
||||
{
|
||||
if (size + offset > dma_mask)
|
||||
return dma_mask - offset + 1;
|
||||
else
|
||||
return size;
|
||||
}
|
||||
|
||||
extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
|
||||
unsigned long shift,
|
||||
unsigned long boundary_size);
|
||||
extern void iommu_area_reserve(unsigned long *map, unsigned long i, int len);
|
||||
extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
|
||||
unsigned long start, unsigned int nr,
|
||||
unsigned long shift,
|
||||
@@ -8,3 +22,5 @@ extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
|
||||
unsigned long align_mask);
|
||||
extern void iommu_area_free(unsigned long *map, unsigned long start,
|
||||
unsigned int nr);
|
||||
|
||||
#endif
|
||||
|
@@ -497,6 +497,16 @@
|
||||
#define PCI_DEVICE_ID_AMD_K8_NB_ADDRMAP 0x1101
|
||||
#define PCI_DEVICE_ID_AMD_K8_NB_MEMCTL 0x1102
|
||||
#define PCI_DEVICE_ID_AMD_K8_NB_MISC 0x1103
|
||||
#define PCI_DEVICE_ID_AMD_10H_NB_HT 0x1200
|
||||
#define PCI_DEVICE_ID_AMD_10H_NB_MAP 0x1201
|
||||
#define PCI_DEVICE_ID_AMD_10H_NB_DRAM 0x1202
|
||||
#define PCI_DEVICE_ID_AMD_10H_NB_MISC 0x1203
|
||||
#define PCI_DEVICE_ID_AMD_10H_NB_LINK 0x1204
|
||||
#define PCI_DEVICE_ID_AMD_11H_NB_HT 0x1300
|
||||
#define PCI_DEVICE_ID_AMD_11H_NB_MAP 0x1301
|
||||
#define PCI_DEVICE_ID_AMD_11H_NB_DRAM 0x1302
|
||||
#define PCI_DEVICE_ID_AMD_11H_NB_MISC 0x1303
|
||||
#define PCI_DEVICE_ID_AMD_11H_NB_LINK 0x1304
|
||||
#define PCI_DEVICE_ID_AMD_LANCE 0x2000
|
||||
#define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001
|
||||
#define PCI_DEVICE_ID_AMD_SCSI 0x2020
|
||||
|
Reference in New Issue
Block a user