Re: [PATCH] of: Add of_get_memory_prop()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 18, 2019 at 03:32:14PM -0700, rananta@xxxxxxxxxxxxxx wrote:
> On 2019-09-18 13:13, Rob Herring wrote:
> > On Wed, Sep 18, 2019 at 1:47 PM Raghavendra Rao Ananta
> > <rananta@xxxxxxxxxxxxxx> wrote:
> > > 
> > > On some embedded systems, the '/memory' dt-property gets updated
> > > by the bootloader (for example, the DDR configuration) and then
> > > gets passed onto the kernel. The device drivers may have to read
> > > the properties at runtime to make decisions. Hence, add
> > > of_get_memory_prop() for the device drivers to query the requested
> > 
> > Function name doesn't match. Device drivers don't need to access the
> > FDT.
> > 
> > > properties.
> > > 
> > > Signed-off-by: Raghavendra Rao Ananta <rananta@xxxxxxxxxxxxxx>
> > > ---
> > >  drivers/of/fdt.c       | 27 +++++++++++++++++++++++++++
> > >  include/linux/of_fdt.h |  1 +
> > >  2 files changed, 28 insertions(+)
> > 
> > We don't add kernel api's without users.
> > 
> > > 
> > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> > > index 223d617ecfe1..925cf2852433 100644
> > > --- a/drivers/of/fdt.c
> > > +++ b/drivers/of/fdt.c
> > > @@ -79,6 +79,33 @@ void __init of_fdt_limit_memory(int limit)
> > >         }
> > >  }
> > > 
> > > +/**
> > > + * of_fdt_get_memory_prop - Return the requested property from the
> > > /memory node
> > > + *
> > > + * On match, returns a non-zero positive value which represents the
> > > property
> > > + * value. Otherwise returns -ENOENT.
> > > + */
> > > +int of_fdt_get_memory_prop(const char *pname)
> > > +{
> > > +       int memory;
> > > +       int len;
> > > +       fdt32_t *prop = NULL;
> > > +
> > > +       if (!pname)
> > > +               return -EINVAL;
> > > +
> > > +       memory = fdt_path_offset(initial_boot_params, "/memory");
> > 
> > Memory nodes should have a unit-address, so this won't work frequently.
> Sorry, can you please elaborate more on this? What do you mean by
> unit-address and working frequently?

A memory node is typically going to be something like: /memory@80000000. 
So your function will not work for any of those cases. And just 
'/memory' generates a dtc warning.

Rob




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux