{"id":818526,"url":"http://patchwork.ozlabs.org/api/patches/818526/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/5f6bcfa9-05ec-4cdc-483d-65b098b198d8@free.fr/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<5f6bcfa9-05ec-4cdc-483d-65b098b198d8@free.fr>","list_archive_url":null,"date":"2017-09-26T10:22:54","name":"[RESEND,v11,1/3] of/pci: Add dma-ranges parsing support","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"8fde7c4f54dd47e1cefcd830761cf7893e6816e5","submitter":{"id":67482,"url":"http://patchwork.ozlabs.org/api/people/67482/?format=json","name":"Marc Gonzalez","email":"marc_gonzalez@sigmadesigns.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/5f6bcfa9-05ec-4cdc-483d-65b098b198d8@free.fr/mbox/","series":[{"id":5101,"url":"http://patchwork.ozlabs.org/api/series/5101/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=5101","date":"2017-09-26T10:21:13","name":"Tango PCIe host bridge MSI support + required API","version":11,"mbox":"http://patchwork.ozlabs.org/series/5101/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/818526/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/818526/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linux-pci-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-pci-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1dLf6CmDz9tXH\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 21:01:46 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S936971AbdIZLBq (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 26 Sep 2017 07:01:46 -0400","from smtp5-g21.free.fr ([212.27.42.5]:16584 \"EHLO\n\tsmtp5-g21.free.fr\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S935241AbdIZLBp (ORCPT <rfc822;linux-pci@vger.kernel.org>);\n\tTue, 26 Sep 2017 07:01:45 -0400","from [172.27.0.114] (unknown [92.154.11.170])\n\t(Authenticated sender: marc.w.gonzalez)\n\tby smtp5-g21.free.fr (Postfix) with ESMTPSA id 999495FFB1;\n\tTue, 26 Sep 2017 13:01:27 +0200 (CEST)"],"Subject":"[RESEND PATCH v11 1/3] of/pci: Add dma-ranges parsing support","To":"Bjorn Helgaas <helgaas@kernel.org>","Cc":"linux-pci <linux-pci@vger.kernel.org>,\n\tMarc Zyngier <marc.zyngier@arm.com>, Robin Murphy <robin.murphy@arm.com>,\n\tRob Herring <robh@kernel.org>, Linus Walleij <linus.walleij@linaro.org>,\n\tArd Biesheuvel <ard.biesheuvel@linaro.org>,\n\tArnd Bergmann <arnd@arndb.de>, Mason <slash.tmp@free.fr>","References":"<93a30f88-17e1-af14-0c50-54f829c1158b@free.fr>","From":"Marc Gonzalez <marc_gonzalez@sigmadesigns.com>","Message-ID":"<5f6bcfa9-05ec-4cdc-483d-65b098b198d8@free.fr>","Date":"Tue, 26 Sep 2017 12:22:54 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tFirefox/52.0 SeaMonkey/2.49.1","MIME-Version":"1.0","In-Reply-To":"<93a30f88-17e1-af14-0c50-54f829c1158b@free.fr>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","Sender":"linux-pci-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-pci.vger.kernel.org>","X-Mailing-List":"linux-pci@vger.kernel.org"},"content":"Several host bridge drivers duplicate of_pci_range_parser_init()\nin order to parse their dma-ranges property.\n\nProvide of_pci_dma_range_parser_init() for that use-case.\n\nReviewed-by: Rob Herring <robh@kernel.org>\nReviewed-by: Linus Walleij <linus.walleij@linaro.org>\nSigned-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>\n---\n drivers/of/address.c       | 19 ++++++++++++++++---\n include/linux/of_address.h | 10 +++++++++-\n 2 files changed, 25 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/of/address.c b/drivers/of/address.c\nindex 580bbf6ca2b1..4cfd29e4ee1b 100644\n--- a/drivers/of/address.c\n+++ b/drivers/of/address.c\n@@ -232,8 +232,8 @@ int of_pci_address_to_resource(struct device_node *dev, int bar,\n }\n EXPORT_SYMBOL_GPL(of_pci_address_to_resource);\n \n-int of_pci_range_parser_init(struct of_pci_range_parser *parser,\n-\t\t\t\tstruct device_node *node)\n+static int parser_init(struct of_pci_range_parser *parser,\n+\t\t\tstruct device_node *node, const char *name)\n {\n \tconst int na = 3, ns = 2;\n \tint rlen;\n@@ -242,7 +242,7 @@ int of_pci_range_parser_init(struct of_pci_range_parser *parser,\n \tparser->pna = of_n_addr_cells(node);\n \tparser->np = parser->pna + na + ns;\n \n-\tparser->range = of_get_property(node, \"ranges\", &rlen);\n+\tparser->range = of_get_property(node, name, &rlen);\n \tif (parser->range == NULL)\n \t\treturn -ENOENT;\n \n@@ -250,8 +250,21 @@ int of_pci_range_parser_init(struct of_pci_range_parser *parser,\n \n \treturn 0;\n }\n+\n+int of_pci_range_parser_init(struct of_pci_range_parser *parser,\n+\t\t\t\tstruct device_node *node)\n+{\n+\treturn parser_init(parser, node, \"ranges\");\n+}\n EXPORT_SYMBOL_GPL(of_pci_range_parser_init);\n \n+int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,\n+\t\t\t\tstruct device_node *node)\n+{\n+\treturn parser_init(parser, node, \"dma-ranges\");\n+}\n+EXPORT_SYMBOL_GPL(of_pci_dma_range_parser_init);\n+\n struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser,\n \t\t\t\t\t\tstruct of_pci_range *range)\n {\ndiff --git a/include/linux/of_address.h b/include/linux/of_address.h\nindex 37864734ca50..8beed2de98e9 100644\n--- a/include/linux/of_address.h\n+++ b/include/linux/of_address.h\n@@ -49,6 +49,8 @@ extern const __be32 *of_get_address(struct device_node *dev, int index,\n \n extern int of_pci_range_parser_init(struct of_pci_range_parser *parser,\n \t\t\tstruct device_node *node);\n+extern int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,\n+\t\t\tstruct device_node *node);\n extern struct of_pci_range *of_pci_range_parser_one(\n \t\t\t\t\tstruct of_pci_range_parser *parser,\n \t\t\t\t\tstruct of_pci_range *range);\n@@ -85,7 +87,13 @@ static inline const __be32 *of_get_address(struct device_node *dev, int index,\n static inline int of_pci_range_parser_init(struct of_pci_range_parser *parser,\n \t\t\tstruct device_node *node)\n {\n-\treturn -1;\n+\treturn -ENOSYS;\n+}\n+\n+static inline int of_pci_dma_range_parser_init(struct of_pci_range_parser *parser,\n+\t\t\tstruct device_node *node)\n+{\n+\treturn -ENOSYS;\n }\n \n static inline struct of_pci_range *of_pci_range_parser_one(\n","prefixes":["RESEND","v11","1/3"]}