Christoph Hellwig
2018-Apr-25 15:19 UTC
[Nouveau] [PATCH v2 2/5] dma-mapping: Introduce dma_iommu_detach_device() API
On Wed, Apr 25, 2018 at 12:10:48PM +0200, Thierry Reding wrote:> From: Thierry Reding <treding at nvidia.com> > > The dma_iommu_detach_device() API can be used by drivers to forcibly > detach a device from an IOMMU that architecture code might have attached > to. This is useful for drivers that need explicit control over the IOMMU > using the IOMMU API directly.Given that no one else implements it making it a generic API seems rather confusing. For now I'd rename it to arm_dma_iommu_detach_device() and only implement it in arm. Once I've got the dma mapping implementations consolidated to a small enough number we could think about something like a device quirk that tells the architecture to simply never even attach the iommu dma ops to start with.
Thierry Reding
2018-Apr-26 12:11 UTC
[Nouveau] [PATCH v2 2/5] dma-mapping: Introduce dma_iommu_detach_device() API
On Wed, Apr 25, 2018 at 08:19:34AM -0700, Christoph Hellwig wrote:> On Wed, Apr 25, 2018 at 12:10:48PM +0200, Thierry Reding wrote: > > From: Thierry Reding <treding at nvidia.com> > > > > The dma_iommu_detach_device() API can be used by drivers to forcibly > > detach a device from an IOMMU that architecture code might have attached > > to. This is useful for drivers that need explicit control over the IOMMU > > using the IOMMU API directly. > > Given that no one else implements it making it a generic API seems > rather confusing. For now I'd rename it to > arm_dma_iommu_detach_device() and only implement it in arm.That'd be suboptimal because this code is used on both 32-bit and 64-bit ARM. If we make the function 32-bit ARM specific then the driver code would need to use an #ifdef to make sure compilation doesn't break on 64-bit ARM. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20180426/550c5cea/attachment.sig>
Thierry Reding
2018-Apr-30 11:02 UTC
[Nouveau] [PATCH v2 2/5] dma-mapping: Introduce dma_iommu_detach_device() API
On Thu, Apr 26, 2018 at 02:11:36PM +0200, Thierry Reding wrote:> On Wed, Apr 25, 2018 at 08:19:34AM -0700, Christoph Hellwig wrote: > > On Wed, Apr 25, 2018 at 12:10:48PM +0200, Thierry Reding wrote: > > > From: Thierry Reding <treding at nvidia.com> > > > > > > The dma_iommu_detach_device() API can be used by drivers to forcibly > > > detach a device from an IOMMU that architecture code might have attached > > > to. This is useful for drivers that need explicit control over the IOMMU > > > using the IOMMU API directly. > > > > Given that no one else implements it making it a generic API seems > > rather confusing. For now I'd rename it to > > arm_dma_iommu_detach_device() and only implement it in arm. > > That'd be suboptimal because this code is used on both 32-bit and 64-bit > ARM. If we make the function 32-bit ARM specific then the driver code > would need to use an #ifdef to make sure compilation doesn't break on > 64-bit ARM.Do you still want me to make this ARM specific? While I haven't encountered this issue on 64-bit ARM yet, I think it would happen there as well, under the right circumstances. I could take a shot at implementing the equivalent there (which means essentially implementing it for drivers/iommu/dma-iommu.c and calling that from 64-bit ARM code). Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20180430/c99db340/attachment.sig>
Reasonably Related Threads
- [PATCH v2 2/5] dma-mapping: Introduce dma_iommu_detach_device() API
- [PATCH v2 2/5] dma-mapping: Introduce dma_iommu_detach_device() API
- [PATCH v2 1/5] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
- [PATCH v3 0/2] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
- [PATCH v3 1/2] ARM: dma-mapping: Implement arm_dma_iommu_detach_device()