[PATCH v2 1/2] mtd: name the mtd device with an optional label property

Cédric Le Goater clg at kaod.org
Thu Feb 9 01:20:19 PST 2017


On 02/09/2017 08:11 AM, Boris Brezillon wrote:
> On Wed, 8 Feb 2017 14:38:59 -0800
> Brian Norris <computersforpeace at gmail.com> wrote:
> 
>> On Wed, Jan 25, 2017 at 07:17:34PM +0100, Cédric Le Goater wrote:
>>> This can be used to easily identify a specific chip on a system with
>>> multiple chips.
>>>
>>> Drivers wanting to support this new label property will benefit from
>>> it without a change. They might want to check in the future that
>>> mtd->name is NULL before assigning a default name to the mtd device.
>>> Other drivers will keep the current behavior, which is to override
>>> mtd->name with their own value.
>>>
>>> Suggested-by: Boris Brezillon <boris.brezillon at free-electrons.com>
>>> Signed-off-by: Cédric Le Goater <clg at kaod.org>
>>> ---
>>>
>>>  Changes since v1:
>>>
>>>  - moved the use of the "label" property from mtd_set_dev_defaults()
>>>    to mtd_set_of_node() to let drivers keep control on how mtd->name
>>>    is set and allocated.
>>>
>>>  include/linux/mtd/mtd.h | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
>>> index 13f8052b9ff9..f4fe15517295 100644
>>> --- a/include/linux/mtd/mtd.h
>>> +++ b/include/linux/mtd/mtd.h
>>> @@ -24,6 +24,7 @@
>>>  #include <linux/uio.h>
>>>  #include <linux/notifier.h>
>>>  #include <linux/device.h>
>>> +#include <linux/of.h>
>>>  
>>>  #include <mtd/mtd-abi.h>
>>>  
>>> @@ -385,6 +386,7 @@ static inline void mtd_set_of_node(struct mtd_info *mtd,
>>>  				   struct device_node *np)
>>>  {
>>>  	mtd->dev.of_node = np;
>>> +	of_property_read_string(np, "label", &mtd->name);  
>>
>> Seems like this could be done only if '!mtd->name'?
>>
>> As it stands, you're still clobbering some names, e.g. ones from
>> physmap_of.c.
> 
> Indeed. I thought all users of
> mtd_set_of_node()/nand_set_flash_node()/spi_nor_set_flash_node() were
> calling this function before initializing mtd->name, which is
> apparently not true.
> 
>> Notably, this driver already supports a "linux,mtd-name"
>> (which your new property should probably supersede), but it seems like
>> you're breaking compatibility.
> 
> Well, we're not really breaking things until someone starts defining a
> 'label' property under the flash node ;-). Moreover, if we want to
> deprecate 'linux,mtd-name' in favor of 'label', we should definitely
> override the 'linux,mtd-name' value with the 'label' one if someone
> defined both (which is bad ;-)).
> 
> Anyway, I agree, we'd better check if !mtd->name before assigning the
> label name.
> Cedric, can you send a v3?


yes. will do in the morning.

Thanks,

C. 



More information about the linux-mtd mailing list