From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: linux-mtd@lists.infradead.org,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>,
Richard Weinberger <richard@nod.at>,
Cyrille Pitchen <cyrille.pitchen@atmel.com>,
devicetree@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>
Subject: Re: [PATCH 1/3] mtd: name the mtd device with an optional label property
Date: Tue, 24 Jan 2017 15:13:53 +0100 [thread overview]
Message-ID: <20170124151353.5bbffae0@bbrezillon> (raw)
In-Reply-To: <1484573225-19095-2-git-send-email-clg@kaod.org>
Hi Cédric,
On Mon, 16 Jan 2017 14:27:03 +0100
Cédric Le Goater <clg@kaod.org> wrote:
> This can be used to easily identify a specific chip on a system with
> multiple chips.
>
> Suggested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> ---
> drivers/mtd/mtdcore.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> index 052772f7caef..bf61557b599d 100644
> --- a/drivers/mtd/mtdcore.c
> +++ b/drivers/mtd/mtdcore.c
> @@ -654,6 +654,13 @@ static int mtd_add_device_partitions(struct mtd_info *mtd,
> */
> static void mtd_set_dev_defaults(struct mtd_info *mtd)
> {
> + /*
> + * If DT support is enabled and we have a valid of_node pointer, try to
> + * extract the MTD name from the label property.
> + */
> + if (IS_ENABLED(CONFIG_OF) && mtd->dev.of_node)
> + of_property_read_string(mtd->dev.of_node, "label", &mtd->name);
> +
I realize this kind of thing would be better placed in mtd_set_of_node()
(see the patch below). Modifying the mtd->name pointer in the back of
MTD drivers is not such a good idea (suppose the driver allocated the
memory with a regular kmalloc() and tries to free mtd->name in the remove
path).
If we move that to mtd_set_of_node(), drivers that wants to support this
label property just have to check if mtd->name is NULL (after calling
mtd_set_of_node() or nand_set_flash_node()) before assigning a default
name.
For unmodified drivers we keep the existing behavior: they'll just
unconditionally override mtd->name with their own value (which might or
might not be dynamically allocated).
> if (mtd->dev.parent) {
> if (!mtd->owner && mtd->dev.parent->driver)
> mtd->owner = mtd->dev.parent->driver->owner;
--->8---
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 13f8052b9ff9..a12b68f941e3 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -385,6 +385,8 @@ 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);
}
static inline struct device_node *mtd_get_of_node(struct mtd_info *mtd)
WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: "Cédric Le Goater" <clg-Bxea+6Xhats@public.gmane.org>
Cc: linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Brian Norris
<computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Marek Vasut <marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Richard Weinberger <richard-/L3Ra7n9ekc@public.gmane.org>,
Cyrille Pitchen
<cyrille.pitchen-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>
Subject: Re: [PATCH 1/3] mtd: name the mtd device with an optional label property
Date: Tue, 24 Jan 2017 15:13:53 +0100 [thread overview]
Message-ID: <20170124151353.5bbffae0@bbrezillon> (raw)
In-Reply-To: <1484573225-19095-2-git-send-email-clg-Bxea+6Xhats@public.gmane.org>
Hi Cédric,
On Mon, 16 Jan 2017 14:27:03 +0100
Cédric Le Goater <clg-Bxea+6Xhats@public.gmane.org> wrote:
> This can be used to easily identify a specific chip on a system with
> multiple chips.
>
> Suggested-by: Boris Brezillon <boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
> Signed-off-by: Cédric Le Goater <clg-Bxea+6Xhats@public.gmane.org>
> ---
> drivers/mtd/mtdcore.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> index 052772f7caef..bf61557b599d 100644
> --- a/drivers/mtd/mtdcore.c
> +++ b/drivers/mtd/mtdcore.c
> @@ -654,6 +654,13 @@ static int mtd_add_device_partitions(struct mtd_info *mtd,
> */
> static void mtd_set_dev_defaults(struct mtd_info *mtd)
> {
> + /*
> + * If DT support is enabled and we have a valid of_node pointer, try to
> + * extract the MTD name from the label property.
> + */
> + if (IS_ENABLED(CONFIG_OF) && mtd->dev.of_node)
> + of_property_read_string(mtd->dev.of_node, "label", &mtd->name);
> +
I realize this kind of thing would be better placed in mtd_set_of_node()
(see the patch below). Modifying the mtd->name pointer in the back of
MTD drivers is not such a good idea (suppose the driver allocated the
memory with a regular kmalloc() and tries to free mtd->name in the remove
path).
If we move that to mtd_set_of_node(), drivers that wants to support this
label property just have to check if mtd->name is NULL (after calling
mtd_set_of_node() or nand_set_flash_node()) before assigning a default
name.
For unmodified drivers we keep the existing behavior: they'll just
unconditionally override mtd->name with their own value (which might or
might not be dynamically allocated).
> if (mtd->dev.parent) {
> if (!mtd->owner && mtd->dev.parent->driver)
> mtd->owner = mtd->dev.parent->driver->owner;
--->8---
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 13f8052b9ff9..a12b68f941e3 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -385,6 +385,8 @@ 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);
}
static inline struct device_node *mtd_get_of_node(struct mtd_info *mtd)
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-01-24 14:14 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-16 13:27 [PATCH 0/3] Add a "label" property to the mtd device Cédric Le Goater
2017-01-16 13:27 ` Cédric Le Goater
2017-01-16 13:27 ` [PATCH 1/3] mtd: name the mtd device with an optional label property Cédric Le Goater
2017-01-16 13:27 ` Cédric Le Goater
2017-01-16 13:32 ` Boris Brezillon
2017-01-16 13:32 ` Boris Brezillon
2017-01-24 14:13 ` Boris Brezillon [this message]
2017-01-24 14:13 ` Boris Brezillon
2017-01-24 14:27 ` Boris Brezillon
2017-01-24 14:27 ` Boris Brezillon
2017-01-25 16:47 ` Cédric Le Goater
2017-01-25 16:47 ` Cédric Le Goater
2017-01-25 16:51 ` Boris Brezillon
2017-01-25 16:51 ` Boris Brezillon
2017-01-25 16:53 ` Cédric Le Goater
2017-01-25 16:53 ` Cédric Le Goater
2017-01-16 13:27 ` [PATCH 2/3] dt-bindings: mtd: add a common label property to all mtd devices Cédric Le Goater
2017-01-16 13:27 ` Cédric Le Goater
2017-01-16 13:52 ` Boris Brezillon
2017-01-16 13:52 ` Boris Brezillon
2017-01-16 14:39 ` Cédric Le Goater
2017-01-16 14:39 ` Cédric Le Goater
2017-01-16 14:56 ` [PATCH v2 " Cédric Le Goater
2017-01-16 14:56 ` Cédric Le Goater
2017-01-19 16:42 ` Rob Herring
2017-01-19 16:42 ` Rob Herring
2017-01-16 13:27 ` [PATCH 3/3] mtd: spi-nor: add SPI_NOR_DUAL_READ to mx66l51235l Cédric Le Goater
2017-01-16 13:27 ` Cédric Le Goater
2017-01-16 16:15 ` Marek Vasut
2017-01-16 16:15 ` Marek Vasut
2017-01-16 16:39 ` Cédric Le Goater
2017-01-16 16:39 ` Cédric Le Goater
2017-01-17 18:19 ` Rob Lippert
2017-01-17 18:19 ` Rob Lippert
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=20170124151353.5bbffae0@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=clg@kaod.org \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@atmel.com \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=mark.rutland@arm.com \
--cc=richard@nod.at \
--cc=robh+dt@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.