[PATCH v6 0/7] PCI: get DMA configuration from parent device

Murali Karicheri m-karicheri2 at ti.com
Mon Feb 9 09:26:32 PST 2015


On 02/09/2015 12:23 AM, Suravee Suthikulpanit wrote:
> Sorry for delay response. I have also tested this on AMD Seattle 
> platform w/ PCI Generic Host Controller, and I can see that the PCI 
> endpoint devices are getting proper dma_map_ops as set in the host 
> bridge.
>
> <Tested-by>: Suravee Suthikulpanit <Suravee.Suthikulpanit at amd.com>
Suravee,

Thanks for testing this patch.

Murali
>
> Thanks,
> Suravee
>
> On 02/06/2015 05:52 AM, Murali Karicheri wrote:
>> This patch add an important capability to PCI driver on Keystone. I 
>> hope to
>> have this merged to the upstream branch so that it is available for 
>> v3.20.
>> Also would like thank everyone for the contribution.
>>
>> PCI devices on Keystone doesn't have correct dma_pfn_offset set. This 
>> patch
>> add capability to set the dma configuration such as dma-mask, 
>> dma_pfn_offset,
>> and dma ops etc using the information from DT. The prior RFCs and 
>> discussions
>> are available at [1] and [2] below.
>>
>> [2] : 
>> https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg790244.html
>> [1] : http://www.gossamer-threads.com/lists/linux/kernel/2024591
>>
>> Change history:
>>     v6 - Rebased to v3.19-v7
>>        - Addressed some minor comments about node name and DT size 
>> validation.
>>        - Pulled out 8/8 of v5 and plan to send a patch for enhancing
>>          of_dma_configure() to use size to calculate dma mask.
>>        - Added Acks from reviewers.
>>     v5 - moved the dma_mask update in device from ARM specific API to
>>          of_dma_configure to allow this across other architecture as 
>> well
>>        - improved sanity check for DT dma-range size in 
>> of_dma_configure()
>>        - moved API to get parent bridge device to PCI (host-bridge.c)
>>     v4 - moved size adjustments in of_iommu_configure() to a separate 
>> patch
>>        - consistent node name comment from Rob
>>        - patch 6 added for dma_mask adjustment and iommu mapping size
>>          limiting.
>>     v3 - addressed comments to re-use of_dma_configure() for PCI
>>        - To help re-use, change of_iommu_configure() function argument
>>         - Move of_dma_configure to of/device.c
>>         - Limit the of_iommu_configure to non pci devices
>>     v2 - update size to coherent_dma_mask + 1 if dma-range info is 
>> missing
>>        - also check the np for null.
>>     v1 - updates based on the comments against initial RFC.
>>        - Added a helper function to get the OF node of the parent
>>        - Added an API in of_pci.c to update DMA configuration of the pci
>>          device.
>>
>> Cc: Joerg Roedel <joro at 8bytes.org>
>> Cc: Grant Likely <grant.likely at linaro.org>
>> Cc: Rob Herring <robh+dt at kernel.org>
>> Cc: Bjorn Helgaas <bhelgaas at google.com>
>> Cc: Will Deacon <will.deacon at arm.com>
>> Cc: Russell King <linux at arm.linux.org.uk>
>> Cc: Arnd Bergmann <arnd at arndb.de>
>> Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit at amd.com>
>>
>> Acked-by: Bjorn Helgaas <bhelgaas at google.com>
>> Acked-by: Murali Karicheri <m-karicheri2 at ti.com>
>>
>> Murali Karicheri (7):
>>    of: iommu: add ptr to OF node arg to of_iommu_configure()
>>    of: move of_dma_configure() to device.c to help re-use
>>    of: fix size when dma-range is not used
>>    PCI: add helper functions pci_get[put]_host_bridge_device()
>>    of/pci: add of_pci_dma_configure() update dma configuration
>>    PCI: update dma configuration from DT
>>    arm: dma-mapping: limit iommu mapping size
>>
>>   arch/arm/mm/dma-mapping.c |    7 +++++
>>   drivers/iommu/of_iommu.c  |   10 ++++--
>>   drivers/of/device.c       |   74 
>> +++++++++++++++++++++++++++++++++++++++++++++
>>   drivers/of/of_pci.c       |   19 ++++++++++++
>>   drivers/of/platform.c     |   58 ++---------------------------------
>>   drivers/pci/host-bridge.c |   14 +++++++++
>>   drivers/pci/probe.c       |    2 ++
>>   include/linux/of_device.h |    2 ++
>>   include/linux/of_iommu.h  |    6 ++--
>>   include/linux/of_pci.h    |    5 +++
>>   include/linux/pci.h       |    3 ++
>>   11 files changed, 140 insertions(+), 60 deletions(-)
>>


-- 
Murali Karicheri
Linux Kernel, Texas Instruments




More information about the linux-arm-kernel mailing list