From: Linus Torvalds Date: Tue, 26 Feb 2013 17:24:48 +0000 (-0800) Subject: Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma X-Git-Tag: v3.12-rc1~1359 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5115f3c19d17851aaff5a857f55b4a019c908775;p=kernel%2Fkernel-generic.git Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma Pull slave-dmaengine updates from Vinod Koul: "This is fairly big pull by my standards as I had missed last merge window. So we have the support for device tree for slave-dmaengine, large updates to dw_dmac driver from Andy for reusing on different architectures. Along with this we have fixes on bunch of the drivers" Fix up trivial conflicts, usually due to #include line movement next to each other. * 'next' of git://git.infradead.org/users/vkoul/slave-dma: (111 commits) Revert "ARM: SPEAr13xx: Pass DW DMAC platform data from DT" ARM: dts: pl330: Add #dma-cells for generic dma binding support DMA: PL330: Register the DMA controller with the generic DMA helpers DMA: PL330: Add xlate function DMA: PL330: Add new pl330 filter for DT case. dma: tegra20-apb-dma: remove unnecessary assignment edma: do not waste memory for dma_mask dma: coh901318: set residue only if dma is in progress dma: coh901318: avoid unbalanced locking dmaengine.h: remove redundant else keyword dma: of-dma: protect list write operation by spin_lock dmaengine: ste_dma40: do not remove descriptors for cyclic transfers dma: of-dma.c: fix memory leakage dw_dmac: apply default dma_mask if needed dmaengine: ioat - fix spare sparse complain dmaengine: move drivers/of/dma.c -> drivers/dma/of-dma.c ioatdma: fix race between updating ioat->head and IOAT_COMPLETION_PENDING dw_dmac: add support for Lynxpoint DMA controllers dw_dmac: return proper residue value dw_dmac: fill individual length of descriptor ... --- 5115f3c19d17851aaff5a857f55b4a019c908775 diff --cc arch/arm/mach-s3c64xx/dma.c index ec29b35,a77f521..6af1aa1 --- a/arch/arm/mach-s3c64xx/dma.c +++ b/arch/arm/mach-s3c64xx/dma.c @@@ -28,9 -29,8 +29,7 @@@ #include #include - #include -#include -- +#include "regs-sys.h" /* dma channel state information */ diff --cc arch/arm/mach-spear3xx/spear3xx.c index b2ba516,3d9b1b5..f9d754f --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c @@@ -15,8 -15,10 +15,7 @@@ #include #include -#include -#include #include - #include -#include #include #include #include diff --cc arch/arm/mach-spear6xx/spear6xx.c index b8bd33c,8ce65a2..8904d8a --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c @@@ -16,11 -16,12 +16,11 @@@ #include #include #include +#include #include #include -#include #include - #include + #include -#include #include #include #include diff --cc drivers/dma/dw_dmac.c index b33d1f6,4c83f18..51c3ea2 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@@ -14,7 -14,7 +14,8 @@@ #include #include #include + #include +#include #include #include #include @@@ -1490,10 -1657,16 +1658,16 @@@ static int dw_probe(struct platform_dev if (irq < 0) return irq; - regs = devm_request_and_ioremap(&pdev->dev, io); - if (!regs) - return -EBUSY; + regs = devm_ioremap_resource(&pdev->dev, io); + if (IS_ERR(regs)) + return PTR_ERR(regs); + /* Apply default dma_mask if needed */ + if (!pdev->dev.dma_mask) { + pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; + pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); + } + dw_params = dma_read_byaddr(regs, DW_PARAMS); autocfg = dw_params >> DW_PARAMS_EN & 0x1; diff --cc drivers/dma/ioat/dma_v3.c index 3e9d669,2acd1ad..e8336cc --- a/drivers/dma/ioat/dma_v3.c +++ b/drivers/dma/ioat/dma_v3.c @@@ -1187,7 -1239,27 +1239,27 @@@ static bool is_snb_ioat(struct pci_dev } } + static bool is_ivb_ioat(struct pci_dev *pdev) + { + switch (pdev->device) { + case PCI_DEVICE_ID_INTEL_IOAT_IVB0: + case PCI_DEVICE_ID_INTEL_IOAT_IVB1: + case PCI_DEVICE_ID_INTEL_IOAT_IVB2: + case PCI_DEVICE_ID_INTEL_IOAT_IVB3: + case PCI_DEVICE_ID_INTEL_IOAT_IVB4: + case PCI_DEVICE_ID_INTEL_IOAT_IVB5: + case PCI_DEVICE_ID_INTEL_IOAT_IVB6: + case PCI_DEVICE_ID_INTEL_IOAT_IVB7: + case PCI_DEVICE_ID_INTEL_IOAT_IVB8: + case PCI_DEVICE_ID_INTEL_IOAT_IVB9: + return true; + default: + return false; + } + + } + -int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) +int ioat3_dma_probe(struct ioatdma_device *device, int dca) { struct pci_dev *pdev = device->pdev; int dca_en = system_has_dca_enabled(pdev);