From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH v4 0/8] dmaengine: rcar-dmac: add iommu support for slave transfers Date: Tue, 16 Feb 2016 21:39:36 +0100 Message-ID: <1455655184-14478-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= , geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org, linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org, dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: linux-arch.vger.kernel.org SGksCgpUaGlzIHNlcmllcyBhZGQgaW9tbXUgc3VwcG9ydCB0byByY2FyLWRtYWMuIEl0J3MgdGVz dGVkIG9uIEtvZWxzY2ggd2l0aApDT05GSUdfSVBNTVVfVk1TQSBhbmQgYnkgZW5hYmxpbmcgdGhl IGlwbW11X2RzIG5vZGUgaW4gcjhhNzc5MS5kdHNpLiBJIHZlcmlmaWVkCm9wZXJhdGlvbiBieSBp bnRlcmFjdGluZyB3aXRoIC9kZXYvbW1jYmxrMSAgd2hpY2ggaXMgYSBkZXZpY2UgYmVoaW5kIHRo ZSBpb21tdS4KClRoZSBzZXJpZXMgZGVwZW5kcyBvbiBvdXQgb2YgdHJlZSBwYXRjaCAnW1BBVENI XSBkbWFlbmdpbmU6IHVzZSBwaHlzX2FkZHJfdCBmb3IKc2xhdmUgY29uZmlndXJhdGlvbicgd2hp Y2ggVmlub2Qgbm93IGhhdmUgbW92ZWQgZm9yd2FyZCB3aGl0LCB0aGFua3MhCgoqIENoYW5nZXMg c2luY2UgdjMKLSBGb2xkZWQgaW4gYSBmaXggZnJvbSBSb2JpbiB0byBoaXMgcGF0Y2guCi0gQWRk ZWQgYSBjaGVjayB0byBtYWtlIHN1cmUgZG1hX21hcF9yZXNvdXJjZSBjYW4gbm90IGJlIHVzZWQg dG8gbWFwIFJBTSBhcwogIHBvaW50ZWQgb3V0IGJ5IFJvYmluLiBJIHVzZSBCVUdfT04gdG8gZW5m b3JjZSB0aGlzLiBJdCBtaWdodCBub3QgYmUgdGhlIGJlc3QKICBtZXRob2QgYnV0IEkgc2F3IG5v IG90aGVyIGdvb2Qgd2F5IHNpbmNlIERNQV9FUlJPUl9DT0RFIG1pZ2h0IG5vdCBiZSBkZWZpbmVk CiAgb24gYWxsIHBsYXRmb3Jtcy4KLSBBZGRlZCBjb21tZW50IGFib3V0IHRoYXQgRFRTIGNoYW5n ZXMgd2lsbCBkaXNhYmxlIDIgRE1BIGNoYW5uZWxzIGR1ZSB0byBhIEhXCiAgKD8pIGJ1dCBpbiB0 aGUgRE1BQy4KLSBEcm9wcGVkIHRoZSB1c2Ugb2YgZG1hX2F0dHJzLCBubyBsb25nZXIgbmVlZGVk LgotIENvbGxlY3RlZCBBY2tlZC1ieSBhbmQgUmV2aWV3ZWQtYnkgZnJvbSBMYXVyZW50LgotIFZh cmlvdXMgaW5kZW50YXRpb24gZml4IHVwcy4KCiogQ2hhbmdlcyBzaW5jZSB2MgotIERyb3AgcGF0 Y2ggdG8gYWRkIGRtYV97bWFwLHVubWFwfV9wYWdlX2F0dHJzLgotIEFkZCBkbWFfe21hcCx1bm1h cH1fcmVzb3VyY2UgdG8gaGFuZGxlIHRoZSBtYXBwaW5nIHdpdGhvdXQgaW52b2x2aW5nIGEKICAn c3RydWN0IHBhZ2UnLiBUaGFua3MgTGF1cmVudCBhbmQgUm9iaW4gZm9yIHBvaW50aW5nIHRoaXMg b3V0LgotIFVzZSBzaXplIGluc3RlYWQgb2YgYWRkcmVzcyB0byBrZWVwIHRyYWNrIG9mIGlmIGEg bWFwcGluZyBleGlzdCBvciBub3QKICBzaW5jZSBhZGRyID09IDAgaXMgdmFsaWQuIFRoYW5rcyBM YXVyZW50LgotIFBpY2sgdXAgcGF0Y2ggZnJvbSBSb2JpbiB3aXRoIExhdXJlbnRzIGFjayAoaG9w ZSBpdCdzIE9LIGZvciBtZSB0bwogIGF0dGFjaCB0aGUgYWNrPykgdG8gYWRkIElPTU1VX01NSU8u Ci0gRml4IGJ1ZyBpbiByY2FyX2RtYWNfZGV2aWNlX2NvbmZpZyB3aGVyZSB0aGUgZXJyb3IgY2hl Y2sgd2hlcmUKICBpbnZlcnRlZC4KLSBVc2UgRE1BX0JJRElSRUNUSU9OQUwgaW4gcmNhcl9kbWFj X2RldmljZV9jb25maWcgc2luY2Ugd2UgYXQgdGhhdAogIHBvaW50IGNhbid0IGJlIHN1cmUgd2hh dCBkaXJlY3Rpb24gdGhlIG1hcHBpbmcgaXMgZ29pbmcgdG8gYmUgdXNlZC4KCiogQ2hhbmdlcyBz aW5jZSB2MQotIEFkZCBhbmQgdXNlIGEgZG1hX3ttYXAsdW5tYXB9X3BhZ2VfYXR0cnMgdG8gYmUg YWJsZSB0byBtYXAgdGhlIHBhZ2UKICB1c2luZyBhdHRyaWJ1dGVzIERNQV9BVFRSX05PX0tFUk5F TF9NQVBQSU5HIGFuZAogIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMuIFRoYW5rcyBMYXVyZW50Lgot IERyb3AgY2hlY2sgaWYgZG1hYyBpcyBwYXJ0IG9mIGEgaW9tbXUgZ3JvdXAgb3Igbm90LCBsZXQg dGhlIERNQQogIG1hcHBpbmcgYXBpIGhhbmRsZSBpdC4KLSBNb3ZlIHNsYXZlIGNvbmZpZ3VyYXRp b24gZGF0YSBhcm91bmQgaW4gcmNhci1kbWFjIHRvIGF2b2lkIGNvZGUKICBkdXBsaWNhdGlvbi4K LSBGaXggYnVpbGQgaXNzdWUgcmVwb3J0ZWQgYnkgJ2tidWlsZCB0ZXN0IHJvYm90JyByZWdhcmRp bmcgcGh5c190b19wYWdlCiAgbm90IGF2YWlsYWJpbGl0eSBvbiBzb21lIGNvbmZpZ3VyYXRpb25z LgotIEFkZCBEVCBpbmZvcm1hdGlvbiBmb3IgcjhhNzc5MS4KCiogQ2hhbmdlcyBzaW5jZSBSRkMK LSBTd2l0Y2ggdG8gdXNlIHRoZSBkbWEtbWFwcGluZyBhcGkgaW5zdGVhZCBvZiB1c2luZyB0aGUg aW9tbXVfbWFwKCkKICBkaXJlY3RseS4gVHVybnMgb3V0IHRoZSBkbWEtbWFwcGVyIGlzIG11Y2gg c21hcnRlciB0aGVuIG1lLi4uCi0gRHJvcHBlZCB0aGUgcGF0Y2ggdG8gZXhwb3NlIGRvbWFpbi0+ b3BzLT5wZ3NpemVfYml0bWFwIGZyb20gd2l0aGluIHRoZQogIGlvbW11IGFwaS4KLSBEcm9wcGVk IHRoZSBwYXRjaCBzaG93aW5nIGhvdyBJIHRlc3RlZCB0aGUgUkZDLgoKCk5pa2xhcyBTw7ZkZXJs dW5kICg3KToKICBkbWEtbWFwcGluZzogYWRkIHttYXAsdW5tYXB9X3Jlc291cmNlIHRvIGRtYV9t YXBfb3BzCiAgZG1hLW1hcHBpbmc6IGFkZCBkbWFfe21hcCx1bm1hcH1fcmVzb3VyY2UKICBhcm06 IGRtYS1tYXBwaW5nOiBhZGQge21hcCx1bm1hcH1fcmVzb3VyY2UgZm9yIGlvbW11IG9wcwogIGRt YWVuZ2luZTogcmNhci1kbWFjOiBncm91cCBzbGF2ZSBjb25maWd1cmF0aW9uCiAgZG1hZW5naW5l OiByY2FyLWRtYWM6IGFkZCBpb21tdSBzdXBwb3J0IGZvciBzbGF2ZSB0cmFuc2ZlcnMKICBBUk06 IGR0czogcjhhNzc5MDogYWRkIGlvbW11cyB0byBkbWFjMCBhbmQgZG1hYzEKICBBUk06IGR0czog cjhhNzc5MTogYWRkIGlvbW11cyB0byBkbWFjMCBhbmQgZG1hYzEKClJvYmluIE11cnBoeSAoMSk6 CiAgaW9tbXU6IEFkZCBNTUlPIG1hcHBpbmcgdHlwZQoKIGFyY2gvYXJtL2Jvb3QvZHRzL3I4YTc3 OTAuZHRzaSB8IDMwICsrKysrKysrKysrKysrKysKIGFyY2gvYXJtL2Jvb3QvZHRzL3I4YTc3OTEu ZHRzaSB8IDMwICsrKysrKysrKysrKysrKysKIGFyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMgICAg ICB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2RtYS9zaC9y Y2FyLWRtYWMuYyAgICAgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIGRyaXZlcnMvaW9tbXUvaW8tcGd0YWJsZS1hcm0uYyB8ICA5ICsrKy0tCiBpbmNsdWRl L2xpbnV4L2RtYS1tYXBwaW5nLmggICAgfCAzOCArKysrKysrKysrKysrKysrKysrKwogaW5jbHVk ZS9saW51eC9pb21tdS5oICAgICAgICAgIHwgIDEgKwogNyBmaWxlcyBjaGFuZ2VkLCAyMzMgaW5z ZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgotLQoyLjcuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11QGxp c3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-3.sys.kth.se ([130.237.48.192]:57998 "EHLO smtp-3.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755468AbcBPUkM (ORCPT ); Tue, 16 Feb 2016 15:40:12 -0500 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH v4 0/8] dmaengine: rcar-dmac: add iommu support for slave transfers Date: Tue, 16 Feb 2016 21:39:36 +0100 Message-ID: <1455655184-14478-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: vinod.koul@intel.com, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, iommu@lists.linux-foundation.org Cc: robin.murphy@arm.com, laurent.pinchart@ideasonboard.com, geert+renesas@glider.be, linus.walleij@linaro.org, dan.j.williams@intel.com, arnd@arndb.de, linux-arch@vger.kernel.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= Message-ID: <20160216203936.cO8ZpY3MrLfN31VEKkZs0z7ZkziO7jIr2Z7v5SwNG0I@z> Hi, This series add iommu support to rcar-dmac. It's tested on Koelsch with CONFIG_IPMMU_VMSA and by enabling the ipmmu_ds node in r8a7791.dtsi. I verified operation by interacting with /dev/mmcblk1 which is a device behind the iommu. The series depends on out of tree patch '[PATCH] dmaengine: use phys_addr_t for slave configuration' which Vinod now have moved forward whit, thanks! * Changes since v3 - Folded in a fix from Robin to his patch. - Added a check to make sure dma_map_resource can not be used to map RAM as pointed out by Robin. I use BUG_ON to enforce this. It might not be the best method but I saw no other good way since DMA_ERROR_CODE might not be defined on all platforms. - Added comment about that DTS changes will disable 2 DMA channels due to a HW (?) but in the DMAC. - Dropped the use of dma_attrs, no longer needed. - Collected Acked-by and Reviewed-by from Laurent. - Various indentation fix ups. * Changes since v2 - Drop patch to add dma_{map,unmap}_page_attrs. - Add dma_{map,unmap}_resource to handle the mapping without involving a 'struct page'. Thanks Laurent and Robin for pointing this out. - Use size instead of address to keep track of if a mapping exist or not since addr == 0 is valid. Thanks Laurent. - Pick up patch from Robin with Laurents ack (hope it's OK for me to attach the ack?) to add IOMMU_MMIO. - Fix bug in rcar_dmac_device_config where the error check where inverted. - Use DMA_BIDIRECTIONAL in rcar_dmac_device_config since we at that point can't be sure what direction the mapping is going to be used. * Changes since v1 - Add and use a dma_{map,unmap}_page_attrs to be able to map the page using attributes DMA_ATTR_NO_KERNEL_MAPPING and DMA_ATTR_SKIP_CPU_SYNC. Thanks Laurent. - Drop check if dmac is part of a iommu group or not, let the DMA mapping api handle it. - Move slave configuration data around in rcar-dmac to avoid code duplication. - Fix build issue reported by 'kbuild test robot' regarding phys_to_page not availability on some configurations. - Add DT information for r8a7791. * Changes since RFC - Switch to use the dma-mapping api instead of using the iommu_map() directly. Turns out the dma-mapper is much smarter then me... - Dropped the patch to expose domain->ops->pgsize_bitmap from within the iommu api. - Dropped the patch showing how I tested the RFC. Niklas Söderlund (7): dma-mapping: add {map,unmap}_resource to dma_map_ops dma-mapping: add dma_{map,unmap}_resource arm: dma-mapping: add {map,unmap}_resource for iommu ops dmaengine: rcar-dmac: group slave configuration dmaengine: rcar-dmac: add iommu support for slave transfers ARM: dts: r8a7790: add iommus to dmac0 and dmac1 ARM: dts: r8a7791: add iommus to dmac0 and dmac1 Robin Murphy (1): iommu: Add MMIO mapping type arch/arm/boot/dts/r8a7790.dtsi | 30 ++++++++++++++++ arch/arm/boot/dts/r8a7791.dtsi | 30 ++++++++++++++++ arch/arm/mm/dma-mapping.c | 63 ++++++++++++++++++++++++++++++++ drivers/dma/sh/rcar-dmac.c | 81 +++++++++++++++++++++++++++++++++--------- drivers/iommu/io-pgtable-arm.c | 9 +++-- include/linux/dma-mapping.h | 38 ++++++++++++++++++++ include/linux/iommu.h | 1 + 7 files changed, 233 insertions(+), 19 deletions(-) -- 2.7.1