From: "Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se> 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, "Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se> Subject: [PATCH v5 0/9] dmaengine: rcar-dmac: add iommu support for slave transfers Date: Tue, 8 Mar 2016 03:42:45 +0100 [thread overview] Message-ID: <1457404974-1800-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> (raw) 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 and the serial console which both are devices behind the iommu. The series depends patch '[PATCH] dmaengine: use phys_addr_t for slave configuration'. * Changes since v4 - Move the mapping from phys_addr_t to dma_addr_t from slave_config to the prepare calls. This way we know the direction of the mapping and don't have to use DMA_BIDIRECTIONAL. Thanks Vinod for suggesting this. - To be clear that the data type for slave addresses are changed add a patch that only changes the data type to phys_addr_t. - Fixed up commit messages. * 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 (8): 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: slave address are physical 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 | 116 +++++++++++++++++++++++++++++++++-------- drivers/iommu/io-pgtable-arm.c | 9 +++- include/linux/dma-mapping.h | 38 ++++++++++++++ include/linux/iommu.h | 1 + 7 files changed, 263 insertions(+), 24 deletions(-) -- 2.7.2
WARNING: multiple messages have this Message-ID (diff)
From: niklas.soderlund+renesas@ragnatech.se (Niklas Söderlund) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 0/9] dmaengine: rcar-dmac: add iommu support for slave transfers Date: Tue, 8 Mar 2016 03:42:45 +0100 [thread overview] Message-ID: <1457404974-1800-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> (raw) 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 and the serial console which both are devices behind the iommu. The series depends patch '[PATCH] dmaengine: use phys_addr_t for slave configuration'. * Changes since v4 - Move the mapping from phys_addr_t to dma_addr_t from slave_config to the prepare calls. This way we know the direction of the mapping and don't have to use DMA_BIDIRECTIONAL. Thanks Vinod for suggesting this. - To be clear that the data type for slave addresses are changed add a patch that only changes the data type to phys_addr_t. - Fixed up commit messages. * 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 (8): 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: slave address are physical 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 | 116 +++++++++++++++++++++++++++++++++-------- drivers/iommu/io-pgtable-arm.c | 9 +++- include/linux/dma-mapping.h | 38 ++++++++++++++ include/linux/iommu.h | 1 + 7 files changed, 263 insertions(+), 24 deletions(-) -- 2.7.2
next reply other threads:[~2016-03-08 2:44 UTC|newest] Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-08 2:42 Niklas Söderlund [this message] 2016-03-08 2:42 ` [PATCH v5 0/9] dmaengine: rcar-dmac: add iommu support for slave transfers Niklas Söderlund 2016-03-08 2:42 ` [PATCH v5 1/9] iommu: Add MMIO mapping type Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-17 11:18 ` Laurent Pinchart 2016-03-17 11:18 ` Laurent Pinchart 2016-03-17 11:18 ` Laurent Pinchart 2016-03-17 11:18 ` Laurent Pinchart 2016-03-08 2:42 ` [PATCH v5 2/9] dma-mapping: add {map,unmap}_resource to dma_map_ops Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` [PATCH v5 3/9] dma-mapping: add dma_{map,unmap}_resource Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 7:38 ` Christoph Hellwig 2016-03-08 7:38 ` Christoph Hellwig 2016-03-10 16:05 ` Niklas S??derlund 2016-03-10 16:05 ` Niklas S??derlund 2016-03-10 16:05 ` Niklas S??derlund 2016-03-11 6:19 ` Vinod Koul 2016-03-11 6:19 ` Vinod Koul 2016-03-11 6:19 ` Vinod Koul 2016-03-11 6:47 ` Dan Williams 2016-03-11 6:47 ` Dan Williams 2016-03-11 6:47 ` Dan Williams 2016-03-11 11:15 ` Christoph Hellwig 2016-03-11 11:15 ` Christoph Hellwig 2016-03-11 11:15 ` Christoph Hellwig 2016-03-11 12:58 ` Niklas Söderlund 2016-03-11 12:58 ` Niklas Söderlund 2016-03-11 12:58 ` Niklas Söderlund 2016-03-11 12:58 ` Niklas Söderlund 2016-03-15 8:22 ` Christoph Hellwig 2016-03-15 8:22 ` Christoph Hellwig 2016-03-15 8:22 ` Christoph Hellwig 2016-03-17 11:33 ` Laurent Pinchart 2016-03-17 11:33 ` Laurent Pinchart 2016-03-17 11:33 ` Laurent Pinchart 2016-03-17 11:33 ` Laurent Pinchart 2016-03-21 15:26 ` Christoph Hellwig 2016-03-21 15:26 ` Christoph Hellwig 2016-03-21 15:26 ` Christoph Hellwig 2016-04-13 13:29 ` Niklas Söderlund 2016-04-13 13:29 ` Niklas Söderlund 2016-04-13 13:29 ` Niklas Söderlund 2016-04-13 13:29 ` Niklas Söderlund 2016-04-13 13:29 ` Niklas Söderlund 2016-04-21 9:48 ` Niklas Söderlund 2016-04-21 9:48 ` Niklas Söderlund 2016-04-21 9:48 ` Niklas Söderlund 2016-04-21 9:48 ` Niklas Söderlund 2016-04-21 13:49 ` Christoph Hellwig 2016-04-21 13:49 ` Christoph Hellwig 2016-04-21 13:49 ` Christoph Hellwig 2016-04-25 14:26 ` Niklas Söderlund 2016-04-25 14:26 ` Niklas Söderlund 2016-04-25 14:26 ` Niklas Söderlund 2016-04-25 14:26 ` Niklas Söderlund 2016-04-25 19:10 ` Christoph Hellwig 2016-04-25 19:10 ` Christoph Hellwig 2016-04-25 19:10 ` Christoph Hellwig 2016-04-26 13:29 ` Niklas Söderlund 2016-04-26 13:29 ` Niklas Söderlund 2016-04-26 13:29 ` Niklas Söderlund 2016-04-26 13:29 ` Niklas Söderlund 2016-04-26 13:29 ` Niklas Söderlund 2016-03-11 13:46 ` Robin Murphy 2016-03-11 13:46 ` Robin Murphy 2016-03-11 13:46 ` Robin Murphy 2016-03-11 13:46 ` Robin Murphy 2016-03-11 17:51 ` Dan Williams 2016-03-11 17:51 ` Dan Williams 2016-03-11 17:51 ` Dan Williams 2016-03-08 2:42 ` [PATCH v5 4/9] arm: dma-mapping: add {map,unmap}_resource for iommu ops Niklas Söderlund 2016-03-08 2:42 ` [PATCH v5 4/9] arm: dma-mapping: add {map, unmap}_resource " Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` [PATCH v5 5/9] dmaengine: rcar-dmac: slave address are physical Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-17 11:30 ` Laurent Pinchart 2016-03-17 11:30 ` Laurent Pinchart 2016-03-17 11:30 ` Laurent Pinchart 2016-03-17 11:30 ` Laurent Pinchart 2016-03-08 2:42 ` [PATCH v5 6/9] dmaengine: rcar-dmac: group slave configuration Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-17 11:28 ` Laurent Pinchart 2016-03-17 11:28 ` Laurent Pinchart 2016-03-17 11:28 ` Laurent Pinchart 2016-03-17 11:28 ` Laurent Pinchart 2016-03-08 2:42 ` [PATCH v5 7/9] dmaengine: rcar-dmac: add iommu support for slave transfers Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` [PATCH v5 8/9] ARM: dts: r8a7790: add iommus to dmac0 and dmac1 Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund 2016-03-08 2:42 ` [PATCH v5 9/9] ARM: dts: r8a7791: " Niklas Söderlund 2016-03-08 2:42 ` Niklas Söderlund
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1457404974-1800-1-git-send-email-niklas.soderlund+renesas@ragnatech.se \ --to=niklas.soderlund+renesas@ragnatech.se \ --cc=arnd@arndb.de \ --cc=dan.j.williams@intel.com \ --cc=dmaengine@vger.kernel.org \ --cc=geert+renesas@glider.be \ --cc=iommu@lists.linux-foundation.org \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linus.walleij@linaro.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=robin.murphy@arm.com \ --cc=vinod.koul@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.