mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 08:05:27 +08:00
41bb38fc53
This change uses the TRIO IOMMU to map the PCI DMA space and physical memory at different addresses. We also now use the dma_mapping_ops to provide support for non-PCI DMA, PCIe DMA (64-bit) and legacy PCI DMA (32-bit). We use the kernel's software I/O TLB framework (i.e. bounce buffers) for the legacy 32-bit PCI device support since there are a limited number of TLB entries in the IOMMU and it is non-trivial to handle indexing, searching, matching, etc. For 32-bit devices the performance impact of bounce buffers should not be a concern. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
34 lines
989 B
C
34 lines
989 B
C
/*
|
|
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation, version 2.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
|
* NON INFRINGEMENT. See the GNU General Public License for
|
|
* more details.
|
|
* Arch specific extensions to struct device
|
|
*/
|
|
|
|
#ifndef _ASM_TILE_DEVICE_H
|
|
#define _ASM_TILE_DEVICE_H
|
|
|
|
struct dev_archdata {
|
|
/* DMA operations on that device */
|
|
struct dma_map_ops *dma_ops;
|
|
|
|
/* Offset of the DMA address from the PA. */
|
|
dma_addr_t dma_offset;
|
|
|
|
/* Highest DMA address that can be generated by this device. */
|
|
dma_addr_t max_direct_dma_addr;
|
|
};
|
|
|
|
struct pdev_archdata {
|
|
};
|
|
|
|
#endif /* _ASM_TILE_DEVICE_H */
|