From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Boris Brezillon <boris.brezillon@bootlin.com>,
Andrew Lunn <andrew@lunn.ch>,
linux-doc <linux-doc@vger.kernel.org>,
Sekhar Nori <nsekhar@ti.com>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
linux-i2c <linux-i2c@vger.kernel.org>,
Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
Rob Herring <robh@kernel.org>,
Florian Fainelli <f.fainelli@gmail.com>,
Kevin Hilman <khilman@kernel.org>,
Richard Weinberger <richard@nod.at>,
Russell King <linux@armlinux.org.uk>,
Marek Vasut <marek.vasut@gmail.com>,
Paolo Abeni <pabeni@redhat.com>,
Dan Carpenter <dan.carpenter@oracle.com>,
Grygorii Strashko <grygorii.strashko@ti.com>,
David Lechner <david@lechnology.com>,
Arnd Bergmann <arnd@arndb.de>,
Sven Van Asbroeck <svendev@arcx.com>,
"open list:MEMORY TECHNOLOGY..." <linux-mtd@lists.infradead.org>,
Linux-OMAP <linux-omap@vger.kernel.org>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jonathan Corbet <corbet@lwn.net>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Lukas Wunner <lukas@wunner.de>, Naren <naren.kernel@gmail.com>,
netdev <netdev@vger.kernel.org>, Alban Bedel <albeu@free.fr>,
Andrew Morton <akpm@linux-foundation.org>,
Brian Norris <computersforpeace@gmail.com>,
David Woodhouse <dwmw2@infradead.org>,
"David S . Miller" <davem@davemloft.net>
Subject: Re: [PATCH v2 01/29] nvmem: add support for cell lookups
Date: Tue, 28 Aug 2018 15:48:21 +0100 [thread overview]
Message-ID: <626e6122-2e58-3317-89b2-77959c9310f7@linaro.org> (raw)
In-Reply-To: <CAMRc=MeALxpyBQhWxGPt9BubO_ZwKGih1d8zhRzFYZ0+3kHFAA@mail.gmail.com>
On 28/08/18 15:41, Bartosz Golaszewski wrote:
> 2018-08-28 15:45 GMT+02:00 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>:
>>
>>
...
>>> I would like to support an additional use case here: the provider is
>>> generic and is not aware of its cells at all. Since the only way of
>>> defining nvmem cells is through DT or nvmem_config, we lack a way to
>>> allow machine code to define cells without the provider code being
>>> aware.
>>
>>
>> machine driver should be able to do
>> nvmem_device_get()
>> nvmem_add_cells()
>>
>
> Indeed, I missed the fact that you can retrieve the nvmem device by
> name. Except that we cannot know that the nvmem provider has been
> registered yet when calling nvmem_device_get(). This could potentially
> be solved by my other patch that adds notifiers to nvmem, but it would
> require much more boilerplate code in every board file. I think that
> removing nvmem_cell_info from nvmem_config and having external cell
> definitions would be cleaner.
Yes, notifiers would work!
...
>>>
>>> Yes, I would like to rework nvmem a bit. I don't see any non-DT users
>>> defining nvmem-cells using nvmem_config. I think that what we need is
>>> a way of specifying cell config outside of nvmem providers in some
>>> kind of structures. These tables would reference the provider by name
>>> and define the cells. Then we would have an additional lookup
>>> structure which would associate the consumer (by dev_id and con_id,
>>> where dev_id could optionally be NULL and where we would fall back to
>>> using con_id only) and the nvmem provider + cell together. Similarly
>>> to how GPIO consumers are associated with the gpiochip and hwnum. How
>>> does it sound?
>>
>> Yes, sounds good.
>>
>> Correct me if am wrong!
>> You should be able to add the new cells using struct nvmem_cell_info and add
>> them to particular provider using nvmem_add_cells().
>>
>> Sounds like thats exactly what nvmem_add_lookup_table() would look like.
>>
>> We should add new nvmem_device_cell_get(nvmem, conn_id) which would return
>> nvmem cell which is specific to the provider. This cell can be used by the
>> machine driver to read/write.
>
> Except that we could do it lazily - when the nvmem provider actually
> gets registered instead of doing it right away and risking that the
> device isn't even there yet.
>
Yes, it makes more sense to do it once the provider is actually present!
>>
>>>>>
>>>>> BTW: of_nvmem_cell_get() seems to always allocate an nvmem_cell
>>>>> instance even if the cell for this node was already added to the nvmem
>>>>> device.
>>>>
>>>>
>>>> I hope you got the reason why of_nvmem_cell_get() always allocates new
>>>> instance for every get!!
>>>
>>>
>>>
>>> I admit I didn't test it, but just from reading the code it seems like
>>> in nvmem_cell_get() for DT-users we'll always get to
>>> of_nvmem_cell_get() and in there we always end up calling line 873:
>>> cell = kzalloc(sizeof(*cell), GFP_KERNEL);
>>>
>> That is correct, this cell is created when we do a get and release when we
>> do a put().
>>
>
> Shouldn't we add the cell to the list, and check first if it's there
> and only create it if not?
Yes I agree, duplicate entry checks are missing!
--srini
>
> Bart
>
next prev parent reply other threads:[~2018-08-28 14:48 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-10 8:04 [PATCH v2 00/29] at24: remove at24_platform_data Bartosz Golaszewski
2018-08-10 8:04 ` [PATCH v2 01/29] nvmem: add support for cell lookups Bartosz Golaszewski
2018-08-24 15:08 ` Boris Brezillon
2018-08-24 15:27 ` Andrew Lunn
2018-08-25 6:27 ` Boris Brezillon
2018-08-27 8:56 ` Bartosz Golaszewski
2018-08-27 9:00 ` Boris Brezillon
2018-08-27 13:37 ` Bartosz Golaszewski
2018-08-27 14:01 ` Boris Brezillon
2018-08-28 10:15 ` Srinivas Kandagatla
2018-08-28 11:56 ` Bartosz Golaszewski
2018-08-28 13:45 ` Srinivas Kandagatla
2018-08-28 14:41 ` Bartosz Golaszewski
2018-08-28 14:48 ` Srinivas Kandagatla [this message]
2018-08-28 14:53 ` Boris Brezillon
2018-08-28 15:09 ` Srinivas Kandagatla
2018-08-10 8:04 ` [PATCH v2 02/29] Documentation: nvmem: document lookup entries Bartosz Golaszewski
2018-08-31 20:30 ` Brian Norris
2018-09-01 13:11 ` Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 03/29] nvmem: add a notifier chain Bartosz Golaszewski
2018-08-10 8:33 ` Srinivas Kandagatla
2018-08-10 8:05 ` [PATCH v2 04/29] nvmem: provide nvmem_dev_name() Bartosz Golaszewski
2018-08-10 8:10 ` Srinivas Kandagatla
2018-08-10 8:05 ` [PATCH v2 05/29] nvmem: remove the name field from struct nvmem_device Bartosz Golaszewski
2018-08-10 8:33 ` Srinivas Kandagatla
2018-08-10 8:05 ` [PATCH v2 06/29] mtd: Add support for reading MTD devices via the nvmem API Bartosz Golaszewski
2018-08-17 16:27 ` Boris Brezillon
2018-08-19 11:31 ` Alban
2018-08-19 16:46 ` Boris Brezillon
2018-08-20 10:43 ` Srinivas Kandagatla
2018-08-20 18:20 ` Boris Brezillon
2018-08-20 18:50 ` Bartosz Golaszewski
2018-08-20 19:06 ` Boris Brezillon
2018-08-20 21:27 ` Alban
2018-08-21 5:07 ` Boris Brezillon
2018-08-21 9:50 ` Srinivas Kandagatla
2018-08-21 9:56 ` Boris Brezillon
2018-08-21 10:11 ` Srinivas Kandagatla
2018-08-21 10:43 ` Boris Brezillon
2018-08-21 11:39 ` Alban
2018-08-21 12:00 ` Srinivas Kandagatla
2018-08-21 13:01 ` Boris Brezillon
2018-08-23 10:29 ` Alban
2018-08-24 14:39 ` Boris Brezillon
2018-08-28 10:20 ` Srinivas Kandagatla
2018-08-20 22:53 ` Alban
2018-08-21 5:44 ` Boris Brezillon
2018-08-21 9:38 ` Srinivas Kandagatla
2018-08-21 11:31 ` Boris Brezillon
2018-08-21 13:34 ` Srinivas Kandagatla
2018-08-21 13:37 ` Srinivas Kandagatla
2018-08-21 13:57 ` Boris Brezillon
2018-08-21 12:27 ` Alban
2018-08-21 12:57 ` Boris Brezillon
2018-08-21 13:57 ` Alban
2018-08-21 14:26 ` Boris Brezillon
2018-08-21 14:33 ` Srinivas Kandagatla
2018-08-10 8:05 ` [PATCH v2 07/29] ARM: davinci: dm365-evm: use nvmem lookup for mac address Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 08/29] ARM: davinci: dm644-evm: " Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 09/29] ARM: davinci: dm646x-evm: " Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 10/29] ARM: davinci: da830-evm: " Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 11/29] ARM: davinci: mityomapl138: add nvmem cells lookup entries Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 12/29] ARM: davinci: da850-evm: use nvmem lookup for mac address Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 13/29] ARM: davinci: da850-evm: remove unnecessary include Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 14/29] net: simplify eth_platform_get_mac_address() Bartosz Golaszewski
2018-08-10 14:39 ` Andy Shevchenko
2018-08-10 16:17 ` Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 15/29] net: split eth_platform_get_mac_address() into subroutines Bartosz Golaszewski
2018-08-31 19:54 ` Brian Norris
2018-08-10 8:05 ` [PATCH v2 16/29] net: add support for nvmem to eth_platform_get_mac_address() Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 17/29] net: davinci_emac: use eth_platform_get_mac_address() Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 18/29] ARM: davinci: da850-evm: remove dead MTD code Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 19/29] ARM: davinci: mityomapl138: don't read the MAC address from machine code Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 20/29] ARM: davinci: dm365-evm: use device properties for at24 eeprom Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 21/29] ARM: davinci: da830-evm: " Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 22/29] ARM: davinci: dm644x-evm: " Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 23/29] ARM: davinci: dm646x-evm: " Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 24/29] ARM: davinci: sffsdr: fix the at24 eeprom device name Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 25/29] ARM: davinci: sffsdr: use device properties for at24 eeprom Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 26/29] ARM: davinci: remove dead code related to MAC address reading Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 27/29] ARM: davinci: mityomapl138: use nvmem notifiers Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 28/29] ARM: davinci: mityomapl138: use device properties for at24 eeprom Bartosz Golaszewski
2018-08-10 8:05 ` [PATCH v2 29/29] eeprom: at24: kill at24_platform_data Bartosz Golaszewski
2018-08-10 8:41 ` [PATCH v2 00/29] at24: remove at24_platform_data Srinivas Kandagatla
2018-08-31 19:46 ` Brian Norris
2018-10-03 20:15 ` Bartosz Golaszewski
2018-10-03 20:30 ` Lukas Wunner
2018-10-03 21:04 ` Florian Fainelli
2018-10-04 11:06 ` Bartosz Golaszewski
2018-10-04 13:58 ` Arnd Bergmann
2018-10-04 14:35 ` Sowmini Varadhan
2018-10-04 14:38 ` Arnd Bergmann
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=626e6122-2e58-3317-89b2-77959c9310f7@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=akpm@linux-foundation.org \
--cc=albeu@free.fr \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=bgolaszewski@baylibre.com \
--cc=boris.brezillon@bootlin.com \
--cc=brgl@bgdev.pl \
--cc=computersforpeace@gmail.com \
--cc=corbet@lwn.net \
--cc=dan.carpenter@oracle.com \
--cc=davem@davemloft.net \
--cc=david@lechnology.com \
--cc=dwmw2@infradead.org \
--cc=f.fainelli@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=grygorii.strashko@ti.com \
--cc=ivan.khoronzhuk@linaro.org \
--cc=khilman@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=lukas@wunner.de \
--cc=marek.vasut@gmail.com \
--cc=mchehab+samsung@kernel.org \
--cc=naren.kernel@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=pabeni@redhat.com \
--cc=richard@nod.at \
--cc=robh@kernel.org \
--cc=svendev@arcx.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).