[PATCH v7 1/7] of: Provide function to request and map memory
Rob Herring
robherring2 at gmail.com
Mon Jun 9 07:36:10 PDT 2014
On Sat, Jun 7, 2014 at 12:59 AM, Grant Likely <grant.likely at secretlab.ca> wrote:
> On Fri, 6 Jun 2014 10:19:28 -0500, Rob Herring <robherring2 at gmail.com> wrote:
>> On Thu, Jun 5, 2014 at 12:26 PM, Matthias Brugger
>> <matthias.bgg at gmail.com> wrote:
>> > A call to of_iomap does not request the memory region.
>> > This patch adds the function of_io_request_and_map which requests
>> > the memory region before mapping it.
>> >
>> > Signed-off-by: Matthias Brugger <matthias.bgg at gmail.com>
>> > ---
>> > drivers/of/address.c | 28 ++++++++++++++++++++++++++++
>> > include/linux/of_address.h | 8 ++++++++
>> > 2 files changed, 36 insertions(+)
>> >
>> > diff --git a/drivers/of/address.c b/drivers/of/address.c
>> > index cb4242a..c55b107 100644
>> > --- a/drivers/of/address.c
>> > +++ b/drivers/of/address.c
>> > @@ -721,3 +721,31 @@ void __iomem *of_iomap(struct device_node *np, int index)
>> > return ioremap(res.start, resource_size(&res));
>> > }
>> > EXPORT_SYMBOL(of_iomap);
>> > +
>> > +/**
>> > + * of_io_request_and_map - Requests a resource and maps the memory mapped IO
>> > + * for a given device_node
>>
>> I believe docbook requires this to be 1 line.
>>
>> > + * @device: the device whose io range will be mapped
>> > + * @index: index of the io range
>> > + * @name: name of the resource
>> > + *
>> > + * Returns a pointer to the requested and mapped memory
>> > + */
>> > +void __iomem *of_io_request_and_map(struct device_node *np, int index, char *name)
>> > +{
>> > + struct resource res;
>> > + void __iomem *mem;
>> > +
>> > + if (of_address_to_resource(np, index, &res))
>> > + return NULL;
>> > +
>> > + if (!request_mem_region(res.start, resource_size(&res), name))
>>
>> Use the np->name here and drop the name parameter.
>
> Name here would be the name of the owner (the driver), not the name of
> the node. Passing the name separately is fine by me.
This function is for when there is no driver. If there is a driver,
the devm_* functions should be used. I would like to see some standard
naming and consistency here rather than allowing random strings or
NULL to be passed by the caller.
Rob
More information about the linux-arm-kernel
mailing list