[PATCH v5 01/17] of/pci: Provide support for parsing PCI DT ranges property

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri Mar 22 06:20:59 EDT 2013


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?

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the linux-arm-kernel mailing list