v2:
o Eliminated changes to generic swiotlb code.
o Indirect calls to phys_to_dma() and dma_to_phys() moved to Octeon
specific code.
o Clean up platform hook for swiotlb setup.
from v1:
The Octeon family of SOCs support physical memory outside of the
32-bit addressing range. To support 32-bit devices, we need to use
the swiotlb bounce buffer mechanism.
There are several parts to the patch set.
1 - Set the proper dma_masks for the octeon_mgmt platform device so
that it continues to function with the rewritten dma mapping
code to follow.
2,3,4 - Establish a properly constrained DMA32 zone for Octeon.
5 - Make some existing functions static inline.
6 - Convert MIPS to use dma-mapping-common.h
7 - Get MIPS ready to use swiotlb.
8 - Rewrite Octeon dma mapping code.
David Daney (8):
MIPS: Octeon: Set dma_masks for octeon_mgmt device.
MIPS: Allow MAX_DMA32_PFN to be overridden.
MIPS: Octeon: Adjust top of DMA32 zone.
MIPS: Octeon: Select ZONE_DMA32
MIPS: ip32, ip27, jazz: Make static functions in dma-coherence.h
inline.
MIPS: Convert DMA to use dma-mapping-common.h
MIPS: Add a platform hook for swiotlb setup.
MIPS: Octeon: Rewrite DMA mapping functions.
arch/mips/Kconfig | 3 +
arch/mips/cavium-octeon/Kconfig | 12 +
arch/mips/cavium-octeon/dma-octeon.c | 581 ++++++++++----------
arch/mips/cavium-octeon/octeon-platform.c | 5 +
arch/mips/include/asm/bootinfo.h | 12 +
arch/mips/include/asm/device.h | 15 +-
arch/mips/include/asm/dma-mapping.h | 96 ++--
arch/mips/include/asm/dma.h | 3 +
.../asm/mach-cavium-octeon/cpu-feature-overrides.h | 6 +
.../include/asm/mach-cavium-octeon/dma-coherence.h | 28 +-
arch/mips/include/asm/mach-generic/dma-coherence.h | 6 -
arch/mips/include/asm/mach-ip27/dma-coherence.h | 9 +-
arch/mips/include/asm/mach-ip32/dma-coherence.h | 14 +-
arch/mips/include/asm/mach-jazz/dma-coherence.h | 11 +-
.../mips/include/asm/mach-loongson/dma-coherence.h | 6 -
arch/mips/include/asm/mach-powertv/dma-coherence.h | 6 -
arch/mips/include/asm/octeon/pci-octeon.h | 10 +
arch/mips/kernel/setup.c | 1 +
arch/mips/mm/dma-default.c | 165 ++----
arch/mips/pci/pci-octeon.c | 60 ++-
arch/mips/pci/pcie-octeon.c | 5 +
21 files changed, 551 insertions(+), 503 deletions(-)
--
1.7.2.2
|