drivers/of: Make of_io_request_and_map() "name" argument optional

Message ID 22064afa92ed2e4b33a93685aabb1d07c7c8846d.camel@kernel.crashing.org
State New
Headers show
Series
  • drivers/of: Make of_io_request_and_map() "name" argument optional
Related show

Commit Message

Benjamin Herrenschmidt June 12, 2018, 12:01 a.m.
These days of_address_to_resource() puts a reasonable name
in the resource struct, thus make the "name" argument an
optional override.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Just something I noticed ... we should probably update the
callers to stop passing stupid names..

 drivers/of/address.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rob Herring June 12, 2018, 10:18 p.m. | #1
On Tue, Jun 12, 2018 at 10:01:07AM +1000, Benjamin Herrenschmidt wrote:
> These days of_address_to_resource() puts a reasonable name
> in the resource struct, thus make the "name" argument an
> optional override.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> 
> Just something I noticed ... we should probably update the
> callers to stop passing stupid names..

Sounds like a coccinelle patch.

When do we need an actual name passed in? It does get exposed to 
userspace, but no one seemed to care when names changed from full path 
(which is commonly used) to just the node name.

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Benjamin Herrenschmidt June 12, 2018, 10:53 p.m. | #2
On Tue, 2018-06-12 at 16:18 -0600, Rob Herring wrote:
> On Tue, Jun 12, 2018 at 10:01:07AM +1000, Benjamin Herrenschmidt wrote:
> > These days of_address_to_resource() puts a reasonable name
> > in the resource struct, thus make the "name" argument an
> > optional override.
> > 
> > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > ---
> > 
> > Just something I noticed ... we should probably update the
> > callers to stop passing stupid names..
> 
> Sounds like a coccinelle patch.

Quite possibly, though I'm absolutely not proficient with coccinelle :-)

> When do we need an actual name passed in? It does get exposed to 
> userspace, but no one seemed to care when names changed from full path 
> (which is commonly used) to just the node name.

Not sure, I had a look at the names looked rather random.

> 
> Rob
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/of/address.c b/drivers/of/address.c
index 580bbf6ca2b1..cf83c05f5650 100644
--- a/drivers/of/address.c
+++ b/drivers/of/address.c
@@ -774,7 +774,7 @@  EXPORT_SYMBOL(of_iomap);
  *			   for a given device_node
  * @device:	the device whose io range will be mapped
  * @index:	index of the io range
- * @name:	name of the resource
+ * @name:	name "override" for the memory region request or NULL
  *
  * Returns a pointer to the requested and mapped memory or an ERR_PTR() encoded
  * error code on failure. Usage example:
@@ -784,7 +784,7 @@  EXPORT_SYMBOL(of_iomap);
  *		return PTR_ERR(base);
  */
 void __iomem *of_io_request_and_map(struct device_node *np, int index,
-					const char *name)
+				    const char *name)
 {
 	struct resource res;
 	void __iomem *mem;
@@ -792,6 +792,8 @@  void __iomem *of_io_request_and_map(struct device_node *np, int index,
 	if (of_address_to_resource(np, index, &res))
 		return IOMEM_ERR_PTR(-EINVAL);
 
+	if (!name)
+		name = res.name;
 	if (!request_mem_region(res.start, resource_size(&res), name))
 		return IOMEM_ERR_PTR(-EBUSY);