All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Murray <andrew.murray@arm.com>
To: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thierry Reding <thierry.reding@avionic-design.de>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Russell King <linux@arm.linux.org.uk>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	Lior Amsalem <alior@marvell.com>, Andrew Lunn <andrew@lunn.ch>,
	Jason Cooper <jason@lakedaemon.net>,
	Arnd Bergmann <arnd@arndb.de>, Maen Suleiman <maen@marvell.com>,
	Gregory Clement <gregory.clement@free-electrons.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Olof Johansson <olof@lixom.net>,
	Tawfik Bayouk <tawfik@marvell.com>,
	Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	Mitch Bradley <wmb@firmworks.com>,
	Liviu Dudau <Liviu.Dudau@arm.com>
Subject: Re: [PATCH v5 01/17] of/pci: Provide support for parsing PCI DT ranges property
Date: Fri, 22 Mar 2013 11:03:37 +0000	[thread overview]
Message-ID: <20130322110337.GA2573@arm.com> (raw)
In-Reply-To: <20130322112059.35675858@skate>

On Fri, Mar 22, 2013 at 10:20:59AM +0000, Thomas Petazzoni wrote:
> 
> On Fri, 22 Mar 2013 11:12:39 +0100, Thierry Reding wrote:
> 
> > This sounds like you're trying to do too much within the for loop. When
> > we discussed this previously I had a vague idea that this functionality
> > could be wrapped into something a bit more object-like.
> > 
> > What I had in mind was something like:
> > 
> > 	struct of_pci_range_parser;
> > 	struct of_pci_range;
> > 
> > 	struct of_pci_range_parser parser;
> > 	struct of_pci_range range;
> > 
> > 	err = of_pci_range_parser(&parser, np);
> > 	if (err < 0)
> > 		return err;
> > 
> > 	for_each_of_pci_range(range, parser) {
> > 		struct resource res;
> > 
> > 		...
> > 		usage of range similar to iterator
> > 		...
> > 
> > 		of_pci_range_to_resource(&res, &range);
> > 	}
> > 
> > In the above the of_pci_range structure pretty much replaces the
> > iterator and the whole is wrapped up within a parser structure to give
> > some extra flexibility and provides for easier (or more structured)
> > setup compared to doing all of it within the loop statement.
> > 
> > But aside from the (perceived?) increased robustness there's not a lot
> > of technical benefit over your implementation, so it isn't a very hard
> > objection. I find it to be a little more encapsulated and therefore
> > easier to work with, but that's possibly just a matter of taste.
> 
> I don't have a strong opinion on this. Andrew, what do you think?

The changes Thierry suggest are subtle but it does look a lot cleaner, it
would move the memset elsewhere and probably split the of_pci_process_ranges
function into two. I think this is all good. Though I'm not sure when
of_pci_range_parser would ever return an error (perhaps if ranges doesn't
exist? - should that be treated as an error?).

Perhaps Grant can provide some feedback - the patch originally provided a
parser for ARM without adding more arch code - this then became a refactoring
exercise for ranges parsing across the kernel. I think this patch has gone as
far as it can in that vein without introducing common pci_controller
structures. All we need here is a parser that [at least] ARM can use to support
the pending ARM host-bridge drivers. Is its current form likely to be acceptable?

I'm happy to update the patch for Thierry's suggestions.

Thanks,

Andrew Murray

WARNING: multiple messages have this Message-ID (diff)
From: andrew.murray@arm.com (Andrew Murray)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 01/17] of/pci: Provide support for parsing PCI DT ranges property
Date: Fri, 22 Mar 2013 11:03:37 +0000	[thread overview]
Message-ID: <20130322110337.GA2573@arm.com> (raw)
In-Reply-To: <20130322112059.35675858@skate>

On Fri, Mar 22, 2013 at 10:20:59AM +0000, Thomas Petazzoni wrote:
> 
> On Fri, 22 Mar 2013 11:12:39 +0100, Thierry Reding wrote:
> 
> > This sounds like you're trying to do too much within the for loop. When
> > we discussed this previously I had a vague idea that this functionality
> > could be wrapped into something a bit more object-like.
> > 
> > What I had in mind was something like:
> > 
> > 	struct of_pci_range_parser;
> > 	struct of_pci_range;
> > 
> > 	struct of_pci_range_parser parser;
> > 	struct of_pci_range range;
> > 
> > 	err = of_pci_range_parser(&parser, np);
> > 	if (err < 0)
> > 		return err;
> > 
> > 	for_each_of_pci_range(range, parser) {
> > 		struct resource res;
> > 
> > 		...
> > 		usage of range similar to iterator
> > 		...
> > 
> > 		of_pci_range_to_resource(&res, &range);
> > 	}
> > 
> > In the above the of_pci_range structure pretty much replaces the
> > iterator and the whole is wrapped up within a parser structure to give
> > some extra flexibility and provides for easier (or more structured)
> > setup compared to doing all of it within the loop statement.
> > 
> > But aside from the (perceived?) increased robustness there's not a lot
> > of technical benefit over your implementation, so it isn't a very hard
> > objection. I find it to be a little more encapsulated and therefore
> > easier to work with, but that's possibly just a matter of taste.
> 
> I don't have a strong opinion on this. Andrew, what do you think?

The changes Thierry suggest are subtle but it does look a lot cleaner, it
would move the memset elsewhere and probably split the of_pci_process_ranges
function into two. I think this is all good. Though I'm not sure when
of_pci_range_parser would ever return an error (perhaps if ranges doesn't
exist? - should that be treated as an error?).

Perhaps Grant can provide some feedback - the patch originally provided a
parser for ARM without adding more arch code - this then became a refactoring
exercise for ranges parsing across the kernel. I think this patch has gone as
far as it can in that vein without introducing common pci_controller
structures. All we need here is a parser that [at least] ARM can use to support
the pending ARM host-bridge drivers. Is its current form likely to be acceptable?

I'm happy to update the patch for Thierry's suggestions.

Thanks,

Andrew Murray

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Murray <andrew.murray-5wv7dgnIgG8@public.gmane.org>
To: Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
Cc: Lior Amsalem <alior-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
	Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org>,
	Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	Jason Cooper <jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org>,
	"linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
	Liviu Dudau <Liviu.Dudau-5wv7dgnIgG8@public.gmane.org>,
	Maen Suleiman <maen-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
	Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
	Tawfik Bayouk <tawfik-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>,
	Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Subject: Re: [PATCH v5 01/17] of/pci: Provide support for parsing PCI DT ranges property
Date: Fri, 22 Mar 2013 11:03:37 +0000	[thread overview]
Message-ID: <20130322110337.GA2573@arm.com> (raw)
In-Reply-To: <20130322112059.35675858@skate>

On Fri, Mar 22, 2013 at 10:20:59AM +0000, Thomas Petazzoni wrote:
> 
> On Fri, 22 Mar 2013 11:12:39 +0100, Thierry Reding wrote:
> 
> > This sounds like you're trying to do too much within the for loop. When
> > we discussed this previously I had a vague idea that this functionality
> > could be wrapped into something a bit more object-like.
> > 
> > What I had in mind was something like:
> > 
> > 	struct of_pci_range_parser;
> > 	struct of_pci_range;
> > 
> > 	struct of_pci_range_parser parser;
> > 	struct of_pci_range range;
> > 
> > 	err = of_pci_range_parser(&parser, np);
> > 	if (err < 0)
> > 		return err;
> > 
> > 	for_each_of_pci_range(range, parser) {
> > 		struct resource res;
> > 
> > 		...
> > 		usage of range similar to iterator
> > 		...
> > 
> > 		of_pci_range_to_resource(&res, &range);
> > 	}
> > 
> > In the above the of_pci_range structure pretty much replaces the
> > iterator and the whole is wrapped up within a parser structure to give
> > some extra flexibility and provides for easier (or more structured)
> > setup compared to doing all of it within the loop statement.
> > 
> > But aside from the (perceived?) increased robustness there's not a lot
> > of technical benefit over your implementation, so it isn't a very hard
> > objection. I find it to be a little more encapsulated and therefore
> > easier to work with, but that's possibly just a matter of taste.
> 
> I don't have a strong opinion on this. Andrew, what do you think?

The changes Thierry suggest are subtle but it does look a lot cleaner, it
would move the memset elsewhere and probably split the of_pci_process_ranges
function into two. I think this is all good. Though I'm not sure when
of_pci_range_parser would ever return an error (perhaps if ranges doesn't
exist? - should that be treated as an error?).

Perhaps Grant can provide some feedback - the patch originally provided a
parser for ARM without adding more arch code - this then became a refactoring
exercise for ranges parsing across the kernel. I think this patch has gone as
far as it can in that vein without introducing common pci_controller
structures. All we need here is a parser that [at least] ARM can use to support
the pending ARM host-bridge drivers. Is its current form likely to be acceptable?

I'm happy to update the patch for Thierry's suggestions.

Thanks,

Andrew Murray

  reply	other threads:[~2013-03-22 11:04 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-21 17:30 [PATCH v5 00/17] PCIe support for the Armada 370 and Armada XP SoCs Thomas Petazzoni
2013-03-21 17:30 ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 01/17] of/pci: Provide support for parsing PCI DT ranges property Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-22 10:00   ` Andrew Murray
2013-03-22 10:00     ` Andrew Murray
2013-03-22 10:00     ` Andrew Murray
2013-03-22 10:12   ` Thierry Reding
2013-03-22 10:12     ` Thierry Reding
2013-03-22 10:20     ` Thomas Petazzoni
2013-03-22 10:20       ` Thomas Petazzoni
2013-03-22 10:20       ` Thomas Petazzoni
2013-03-22 11:03       ` Andrew Murray [this message]
2013-03-22 11:03         ` Andrew Murray
2013-03-22 11:03         ` Andrew Murray
2013-03-21 17:30 ` [PATCH v5 02/17] of/pci: Add of_pci_get_devfn() function Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 03/17] of/pci: Add of_pci_parse_bus_range() function Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 04/17] pci: infrastructure to add drivers in drivers/pci/host Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 05/17] arm: pci: add a align_resource hook Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 06/17] clk: mvebu: create parent-child relation for PCIe clocks on Armada 370 Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 07/17] clk: mvebu: add more PCIe clocks for Armada XP Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 08/17] pci: PCIe driver for Marvell Armada 370/XP systems Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 09/17] arm: mvebu: PCIe support is now available on mvebu Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 10/17] arm: mvebu: add PCIe Device Tree informations for Armada 370 Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 11/17] arm: mvebu: add PCIe Device Tree informations for Armada XP Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 12/17] arm: mvebu: PCIe Device Tree informations for OpenBlocks AX3-4 Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 13/17] arm: mvebu: PCIe Device Tree informations for Armada XP DB Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 14/17] arm: mvebu: PCIe Device Tree informations for Armada 370 Mirabox Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 15/17] arm: mvebu: PCIe Device Tree informations for Armada 370 DB Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 16/17] arm: mvebu: PCIe Device Tree informations for Armada XP GP Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni
2013-03-21 17:30 ` [PATCH v5 17/17] arm: mvebu: update defconfig with PCI and USB support Thomas Petazzoni
2013-03-21 17:30   ` Thomas Petazzoni

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=20130322110337.GA2573@arm.com \
    --to=andrew.murray@arm.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=alior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=grant.likely@secretlab.ca \
    --cc=gregory.clement@free-electrons.com \
    --cc=jason@lakedaemon.net \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=maen@marvell.com \
    --cc=olof@lixom.net \
    --cc=tawfik@marvell.com \
    --cc=thierry.reding@avionic-design.de \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=wmb@firmworks.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: link
Be 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.