From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> To: Rob Herring <robh@kernel.org>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Robin Murphy <robin.murphy@arm.com>, Florian Fainelli <f.fainelli@gmail.com>, Stefan Wahren <wahrenst@gmx.net>, Frank Rowand <frowand.list@gmail.com>, Arnd Bergmann <arnd@arndb.de>, Marek Vasut <marek.vasut@gmail.com>, Geert Uytterhoeven <geert+renesas@glider.be>, Simon Horman <horms+renesas@verge.net.au>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Oza Pawandeep <oza.oza@broadcom.com> Subject: Re: [PATCH 00/11] of: dma-ranges fixes and improvements Date: Mon, 30 Sep 2019 11:20:55 +0200 [thread overview] Message-ID: <202216c6e456bfd1a30f7cdb000aa714e3855e10.camel@suse.de> (raw) In-Reply-To: <20190927002455.13169-1-robh@kernel.org> [-- Attachment #1: Type: text/plain, Size: 2313 bytes --] On Thu, 2019-09-26 at 19:24 -0500, Rob Herring wrote: > This series fixes several issues related to 'dma-ranges'. Primarily, > 'dma-ranges' in a PCI bridge node does correctly set dma masks for PCI > devices not described in the DT. A common case needing dma-ranges is a > 32-bit PCIe bridge on a 64-bit system. This affects several platforms > including Broadcom, NXP, Renesas, and Arm Juno. There's been several > attempts to fix these issues, most recently earlier this week[1]. > > In the process, I found several bugs in the address translation. It > appears that things have happened to work as various DTs happen to use > 1:1 addresses. > > First 3 patches are just some clean-up. The 4th patch adds a unittest > exhibiting the issues. Patches 5-9 rework how of_dma_configure() works > making it work on either a struct device child node or a struct > device_node parent node so that it works on bus leaf nodes like PCI > bridges. Patches 10 and 11 fix 2 issues with address translation for > dma-ranges. > > My testing on this has been with QEMU virt machine hacked up to set PCI > dma-ranges and the unittest. Nicolas reports this series resolves the > issues on Rpi4 and NXP Layerscape platforms. > > Rob > > [1] > https://lore.kernel.org/linux-arm-kernel/20190924181244.7159-1-nsaenzjulienne@suse.de/ > > Rob Herring (5): > of: Remove unused of_find_matching_node_by_address() > of: Make of_dma_get_range() private > of/unittest: Add dma-ranges address translation tests > of/address: Translate 'dma-ranges' for parent nodes missing > 'dma-ranges' > of/address: Fix of_pci_range_parser_one translation of DMA addresses > > Robin Murphy (6): > of: address: Report of_dma_get_range() errors meaningfully > of: Ratify of_dma_configure() interface > of/address: Introduce of_get_next_dma_parent() helper > of: address: Follow DMA parent for "dma-coherent" > of: Factor out #{addr,size}-cells parsing > of: Make of_dma_get_range() work on bus nodes Re-tested the whole series. Verified both the unittests run fine and PCIe's behaviour is fixed. Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Also for the whole series: Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Regards, Nicolas [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 488 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> To: Rob Herring <robh@kernel.org>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>, Frank Rowand <frowand.list@gmail.com>, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Marek Vasut <marek.vasut@gmail.com>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Oza Pawandeep <oza.oza@broadcom.com>, Stefan Wahren <wahrenst@gmx.net>, Simon Horman <horms+renesas@verge.net.au>, Geert Uytterhoeven <geert+renesas@glider.be>, Robin Murphy <robin.murphy@arm.com> Subject: Re: [PATCH 00/11] of: dma-ranges fixes and improvements Date: Mon, 30 Sep 2019 11:20:55 +0200 [thread overview] Message-ID: <202216c6e456bfd1a30f7cdb000aa714e3855e10.camel@suse.de> (raw) In-Reply-To: <20190927002455.13169-1-robh@kernel.org> [-- Attachment #1.1: Type: text/plain, Size: 2313 bytes --] On Thu, 2019-09-26 at 19:24 -0500, Rob Herring wrote: > This series fixes several issues related to 'dma-ranges'. Primarily, > 'dma-ranges' in a PCI bridge node does correctly set dma masks for PCI > devices not described in the DT. A common case needing dma-ranges is a > 32-bit PCIe bridge on a 64-bit system. This affects several platforms > including Broadcom, NXP, Renesas, and Arm Juno. There's been several > attempts to fix these issues, most recently earlier this week[1]. > > In the process, I found several bugs in the address translation. It > appears that things have happened to work as various DTs happen to use > 1:1 addresses. > > First 3 patches are just some clean-up. The 4th patch adds a unittest > exhibiting the issues. Patches 5-9 rework how of_dma_configure() works > making it work on either a struct device child node or a struct > device_node parent node so that it works on bus leaf nodes like PCI > bridges. Patches 10 and 11 fix 2 issues with address translation for > dma-ranges. > > My testing on this has been with QEMU virt machine hacked up to set PCI > dma-ranges and the unittest. Nicolas reports this series resolves the > issues on Rpi4 and NXP Layerscape platforms. > > Rob > > [1] > https://lore.kernel.org/linux-arm-kernel/20190924181244.7159-1-nsaenzjulienne@suse.de/ > > Rob Herring (5): > of: Remove unused of_find_matching_node_by_address() > of: Make of_dma_get_range() private > of/unittest: Add dma-ranges address translation tests > of/address: Translate 'dma-ranges' for parent nodes missing > 'dma-ranges' > of/address: Fix of_pci_range_parser_one translation of DMA addresses > > Robin Murphy (6): > of: address: Report of_dma_get_range() errors meaningfully > of: Ratify of_dma_configure() interface > of/address: Introduce of_get_next_dma_parent() helper > of: address: Follow DMA parent for "dma-coherent" > of: Factor out #{addr,size}-cells parsing > of: Make of_dma_get_range() work on bus nodes Re-tested the whole series. Verified both the unittests run fine and PCIe's behaviour is fixed. Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Also for the whole series: Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Regards, Nicolas [-- Attachment #1.2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 488 bytes --] [-- Attachment #2: Type: text/plain, Size: 176 bytes --] _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-09-30 9:21 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-27 0:24 [PATCH 00/11] of: dma-ranges fixes and improvements Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 0:24 ` [PATCH 01/11] of: Remove unused of_find_matching_node_by_address() Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 9:17 ` Geert Uytterhoeven 2019-09-27 9:17 ` Geert Uytterhoeven 2019-09-27 9:17 ` Geert Uytterhoeven 2019-09-30 12:49 ` Christoph Hellwig 2019-09-30 12:49 ` Christoph Hellwig 2019-09-27 0:24 ` [PATCH 02/11] of: Make of_dma_get_range() private Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 9:18 ` Geert Uytterhoeven 2019-09-27 9:18 ` Geert Uytterhoeven 2019-09-27 9:18 ` Geert Uytterhoeven 2019-09-30 12:53 ` Christoph Hellwig 2019-09-30 12:53 ` Christoph Hellwig 2019-09-27 0:24 ` [PATCH 03/11] of: address: Report of_dma_get_range() errors meaningfully Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 9:15 ` Geert Uytterhoeven 2019-09-27 9:15 ` Geert Uytterhoeven 2019-09-27 9:15 ` Geert Uytterhoeven 2019-09-30 12:54 ` Christoph Hellwig 2019-09-30 12:54 ` Christoph Hellwig 2019-09-27 0:24 ` [PATCH 04/11] of/unittest: Add dma-ranges address translation tests Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 0:24 ` [PATCH 05/11] of: Ratify of_dma_configure() interface Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-30 12:57 ` Christoph Hellwig 2019-09-30 12:57 ` Christoph Hellwig 2019-09-30 13:32 ` Nicolas Saenz Julienne 2019-09-30 13:32 ` Nicolas Saenz Julienne 2019-09-30 21:24 ` Rob Herring 2019-09-30 21:24 ` Rob Herring 2019-09-30 21:24 ` Rob Herring 2019-10-01 15:43 ` Nicolas Saenz Julienne 2019-10-01 15:43 ` Nicolas Saenz Julienne 2019-10-01 15:43 ` Nicolas Saenz Julienne 2019-10-04 1:53 ` Rob Herring 2019-10-04 1:53 ` Rob Herring 2019-10-04 1:53 ` Rob Herring 2019-10-07 17:51 ` Nicolas Saenz Julienne 2019-10-07 17:51 ` Nicolas Saenz Julienne 2019-10-07 17:51 ` Nicolas Saenz Julienne 2019-09-27 0:24 ` [PATCH 06/11] of/address: Introduce of_get_next_dma_parent() helper Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 9:24 ` Geert Uytterhoeven 2019-09-27 9:24 ` Geert Uytterhoeven 2019-09-27 9:24 ` Geert Uytterhoeven 2019-09-27 0:24 ` [PATCH 07/11] of: address: Follow DMA parent for "dma-coherent" Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 0:24 ` [PATCH 08/11] of: Factor out #{addr,size}-cells parsing Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 9:27 ` Geert Uytterhoeven 2019-09-27 9:27 ` Geert Uytterhoeven 2019-09-27 9:27 ` Geert Uytterhoeven 2019-09-27 0:24 ` [PATCH 09/11] of: Make of_dma_get_range() work on bus nodes Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 0:24 ` [PATCH 10/11] of/address: Translate 'dma-ranges' for parent nodes missing 'dma-ranges' Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-27 0:24 ` [PATCH 11/11] of/address: Fix of_pci_range_parser_one translation of DMA addresses Rob Herring 2019-09-27 0:24 ` Rob Herring 2019-09-29 11:16 ` [PATCH 00/11] of: dma-ranges fixes and improvements Arnd Bergmann 2019-09-29 11:16 ` Arnd Bergmann 2019-09-29 11:16 ` Arnd Bergmann 2019-09-30 8:20 ` Christoph Hellwig 2019-09-30 8:20 ` Christoph Hellwig 2019-09-30 8:56 ` Thierry Reding 2019-09-30 8:56 ` Thierry Reding 2019-09-30 9:55 ` Robin Murphy 2019-09-30 9:55 ` Robin Murphy 2019-09-30 13:35 ` Thierry Reding 2019-09-30 13:35 ` Thierry Reding 2019-09-30 9:20 ` Nicolas Saenz Julienne [this message] 2019-09-30 9:20 ` Nicolas Saenz Julienne 2019-09-30 12:40 ` Marek Vasut 2019-09-30 12:40 ` Marek Vasut 2019-09-30 12:52 ` Robin Murphy 2019-09-30 12:52 ` Robin Murphy 2019-09-30 12:54 ` Marek Vasut 2019-09-30 12:54 ` Marek Vasut 2019-09-30 13:05 ` Robin Murphy 2019-09-30 13:05 ` Robin Murphy
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=202216c6e456bfd1a30f7cdb000aa714e3855e10.camel@suse.de \ --to=nsaenzjulienne@suse.de \ --cc=arnd@arndb.de \ --cc=devicetree@vger.kernel.org \ --cc=f.fainelli@gmail.com \ --cc=frowand.list@gmail.com \ --cc=geert+renesas@glider.be \ --cc=horms+renesas@verge.net.au \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=marek.vasut@gmail.com \ --cc=oza.oza@broadcom.com \ --cc=robh@kernel.org \ --cc=robin.murphy@arm.com \ --cc=wahrenst@gmx.net \ /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.