Re: [PATCH 1/2] mmc: host: arasan: Add addition of-arasan quirks and add IOMMU support.

2015-01-06 Thread Suman Tripathi
Hi Arnd,

On Monday 15 December 2014 22:31:06 Suman Tripathi wrote:
 @@ -162,6 +206,16 @@ static int sdhci_arasan_probe(struct platform_device 
 *pdev)
 goto clk_dis_ahb;
 }

 +#if defined(CONFIG_IOMMU_SUPPORT)
 +   sdhci_arasan-domain = iommu_domain_alloc(amba_bustype);
 +   if (!sdhci_arasan-domain) {
 +   dev_err(pdev-dev, Unable to allocate iommu domain\n);
 +   return PTR_ERR(sdhci_arasan-domain);
 +   }
 +
 +   iommu_attach_device(sdhci_arasan-domain, pdev-dev);
 +#endif
 +


Device drivers should never care about the implementation details
of the iommu. Please change the code to use the regular dma_map_*
interfaces that will work both with and without IOMMU.

After refer to iommu binding , there is a service that allows Remap
address space to allow devices to access physical memory ranges that
they otherwise wouldn't be capable of accessing. eg : 32-bit to 64
bit DMA .

So do we have any existing driver that uses this service ? Just asking
for suggestions.

On Tue, Dec 16, 2014 at 2:57 AM, Arnd Bergmann a...@arndb.de wrote:
 On Monday 15 December 2014 22:31:06 Suman Tripathi wrote:
 @@ -162,6 +206,16 @@ static int sdhci_arasan_probe(struct platform_device 
 *pdev)
 goto clk_dis_ahb;
 }

 +#if defined(CONFIG_IOMMU_SUPPORT)
 +   sdhci_arasan-domain = iommu_domain_alloc(amba_bustype);
 +   if (!sdhci_arasan-domain) {
 +   dev_err(pdev-dev, Unable to allocate iommu domain\n);
 +   return PTR_ERR(sdhci_arasan-domain);
 +   }
 +
 +   iommu_attach_device(sdhci_arasan-domain, pdev-dev);
 +#endif
 +


 Device drivers should never care about the implementation details
 of the iommu. Please change the code to use the regular dma_map_*
 interfaces that will work both with and without IOMMU.

 Arnd



-- 
Thanks,
with regards,
Suman Tripathi
CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, 
is for the sole use of the intended recipient(s) and contains information
that is confidential and proprietary to Applied Micro Circuits Corporation or 
its subsidiaries. 
It is to be used solely for the purpose of furthering the parties' business 
relationship. 
All unauthorized review, use, disclosure or distribution is prohibited. 
If you are not the intended recipient, please contact the sender by reply 
e-mail 
and destroy all copies of the original message.

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH 1/2] mmc: host: arasan: Add addition of-arasan quirks and add IOMMU support.

2015-01-06 Thread Arnd Bergmann
On Tuesday 06 January 2015 17:10:29 Suman Tripathi wrote:
 Hi Arnd,
  On Monday 15 December 2014 22:31:06 Suman Tripathi wrote:
   @@ -162,6 +206,16 @@ static int sdhci_arasan_probe(struct
   platform_device *pdev)   
   goto clk_dis_ahb;
   
   }
   
   +#if defined(CONFIG_IOMMU_SUPPORT)
   +   sdhci_arasan-domain = iommu_domain_alloc(amba_bustype);
   +   if (!sdhci_arasan-domain) {
   +   dev_err(pdev-dev, Unable to allocate iommu
   domain\n);
   +   return PTR_ERR(sdhci_arasan-domain);
   +   }
   +
   +   iommu_attach_device(sdhci_arasan-domain, pdev-dev);
   +#endif
   +
  
  Device drivers should never care about the implementation details
  of the iommu. Please change the code to use the regular dma_map_*
  interfaces that will work both with and without IOMMU.

 After refer to iommu binding , there is a service that allows Remap
 address space to allow devices to access physical memory ranges that
 they otherwise wouldn't be capable of accessing. eg : 32-bit to 64
 bit DMA .
 
 So do we have any existing driver that uses this service ? Just asking
 for suggestions.

The interface is completely transparent to device drivers, it is
implemented as a separate 'struct dma_map_ops' that is normally
architecture independent, and that handles all sorts of DMA remapping
issues for the driver, including

- address space limits
- offsets between CPU and device addresses for the same memory
- cache flushes
- bus-level synchronization

On arm32, we currently support six sets of dma_map_ops including
two for IOMMU (coherent and noncoherent). On arm64, we currently
always use swiotlb, which solves your problem by copying memory to
bounce buffers. This is rather inefficient, and a new implementation
is being worked on, based on the arm32 implementation to support
IOMMUs in a generic way.

Arnd
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH 1/2] mmc: host: arasan: Add addition of-arasan quirks and add IOMMU support.

2014-12-15 Thread Arnd Bergmann
On Monday 15 December 2014 22:31:06 Suman Tripathi wrote:
 @@ -162,6 +206,16 @@ static int sdhci_arasan_probe(struct platform_device 
 *pdev)
 goto clk_dis_ahb;
 }
 
 +#if defined(CONFIG_IOMMU_SUPPORT)
 +   sdhci_arasan-domain = iommu_domain_alloc(amba_bustype);
 +   if (!sdhci_arasan-domain) {
 +   dev_err(pdev-dev, Unable to allocate iommu domain\n);
 +   return PTR_ERR(sdhci_arasan-domain);
 +   }
 +
 +   iommu_attach_device(sdhci_arasan-domain, pdev-dev);
 +#endif
 +
 

Device drivers should never care about the implementation details
of the iommu. Please change the code to use the regular dma_map_*
interfaces that will work both with and without IOMMU.

Arnd
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev