* [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node()
@ 2015-11-01 23:02 Boris Brezillon
2015-11-01 23:05 ` Boris Brezillon
0 siblings, 1 reply; 4+ messages in thread
From: Boris Brezillon @ 2015-11-01 23:02 UTC (permalink / raw)
To: David Woodhouse, Brian Norris, linux-mtd
Cc: Ezequiel Garcia, Marek Vasut, Scott Wood, Josh Wu, Robert Jarzmik,
Kyungmin Park, Han Xu, Stefan Agner, linux-kernel,
Boris Brezillon
Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci':
---8<----
virtual patch
@@
struct nand_chip c;
struct nand_chip *cp;
@@
(
-(cp)->flash_node
+nand_get_flash_node(cp)
|
-(c).flash_node
+nand_get_flash_node(&c)
)
---8<----
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
Hi Brian,
I think this patch could be part of your series too.
Best Regards,
Boris
drivers/mtd/nand/brcmnand/brcmnand.c | 2 +-
drivers/mtd/nand/nand_base.c | 6 +++---
drivers/mtd/nand/vf610_nfc.c | 6 +++---
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
index a37659d..2a437c7 100644
--- a/drivers/mtd/nand/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/brcmnand/brcmnand.c
@@ -1816,7 +1816,7 @@ static int brcmnand_setup_dev(struct brcmnand_host *host)
memset(cfg, 0, sizeof(*cfg));
- ret = of_property_read_u32(chip->flash_node,
+ ret = of_property_read_u32(nand_get_flash_node(chip),
"brcm,nand-oob-sector-size",
&oob_sector);
if (ret) {
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 939ab3d..4ac4efe 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3989,11 +3989,11 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
struct nand_flash_dev *type;
int ret;
- if (chip->flash_node) {
+ if (nand_get_flash_node(chip)) {
/* MTD can automatically handle DT partitions, etc. */
- mtd_set_of_node(mtd, chip->flash_node);
+ mtd_set_of_node(mtd, nand_get_flash_node(chip));
- ret = nand_dt_init(mtd, chip, chip->flash_node);
+ ret = nand_dt_init(mtd, chip, nand_get_flash_node(chip));
if (ret)
return ret;
}
diff --git a/drivers/mtd/nand/vf610_nfc.c b/drivers/mtd/nand/vf610_nfc.c
index b6df4c6..1c86c6b 100644
--- a/drivers/mtd/nand/vf610_nfc.c
+++ b/drivers/mtd/nand/vf610_nfc.c
@@ -707,7 +707,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
for_each_available_child_of_node(nfc->dev->of_node, child) {
if (of_device_is_compatible(child, "fsl,vf610-nfc-nandcs")) {
- if (chip->flash_node) {
+ if (nand_get_flash_node(chip)) {
dev_err(nfc->dev,
"Only one NAND chip supported!\n");
err = -EINVAL;
@@ -718,7 +718,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
}
}
- if (!chip->flash_node) {
+ if (!nand_get_flash_node(chip)) {
dev_err(nfc->dev, "NAND chip sub-node missing!\n");
err = -ENODEV;
goto err_clk;
@@ -814,7 +814,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
return mtd_device_register(mtd, NULL, 0);
error:
- of_node_put(chip->flash_node);
+ of_node_put(nand_get_flash_node(chip));
err_clk:
clk_disable_unprepare(nfc->clk);
return err;
--
2.1.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node()
2015-11-01 23:02 [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node() Boris Brezillon
@ 2015-11-01 23:05 ` Boris Brezillon
0 siblings, 0 replies; 4+ messages in thread
From: Boris Brezillon @ 2015-11-01 23:05 UTC (permalink / raw)
To: David Woodhouse, Brian Norris, linux-mtd
Cc: Ezequiel Garcia, Marek Vasut, Scott Wood, Josh Wu, Robert Jarzmik,
Kyungmin Park, Han Xu, Stefan Agner, linux-kernel
Oops, this patch was meant to be sent in reply to your "mtd: migrate
'of_node' handling to core, not in mtd_part_parser_data" series. Sorry
for the noise.
On Mon, 2 Nov 2015 00:02:34 +0100
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci':
>
> ---8<----
> virtual patch
>
> @@
> struct nand_chip c;
> struct nand_chip *cp;
> @@
> (
> -(cp)->flash_node
> +nand_get_flash_node(cp)
> |
> -(c).flash_node
> +nand_get_flash_node(&c)
> )
> ---8<----
>
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
> Hi Brian,
>
> I think this patch could be part of your series too.
>
> Best Regards,
>
> Boris
>
> drivers/mtd/nand/brcmnand/brcmnand.c | 2 +-
> drivers/mtd/nand/nand_base.c | 6 +++---
> drivers/mtd/nand/vf610_nfc.c | 6 +++---
> 3 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
> index a37659d..2a437c7 100644
> --- a/drivers/mtd/nand/brcmnand/brcmnand.c
> +++ b/drivers/mtd/nand/brcmnand/brcmnand.c
> @@ -1816,7 +1816,7 @@ static int brcmnand_setup_dev(struct brcmnand_host *host)
>
> memset(cfg, 0, sizeof(*cfg));
>
> - ret = of_property_read_u32(chip->flash_node,
> + ret = of_property_read_u32(nand_get_flash_node(chip),
> "brcm,nand-oob-sector-size",
> &oob_sector);
> if (ret) {
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 939ab3d..4ac4efe 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3989,11 +3989,11 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
> struct nand_flash_dev *type;
> int ret;
>
> - if (chip->flash_node) {
> + if (nand_get_flash_node(chip)) {
> /* MTD can automatically handle DT partitions, etc. */
> - mtd_set_of_node(mtd, chip->flash_node);
> + mtd_set_of_node(mtd, nand_get_flash_node(chip));
>
> - ret = nand_dt_init(mtd, chip, chip->flash_node);
> + ret = nand_dt_init(mtd, chip, nand_get_flash_node(chip));
> if (ret)
> return ret;
> }
> diff --git a/drivers/mtd/nand/vf610_nfc.c b/drivers/mtd/nand/vf610_nfc.c
> index b6df4c6..1c86c6b 100644
> --- a/drivers/mtd/nand/vf610_nfc.c
> +++ b/drivers/mtd/nand/vf610_nfc.c
> @@ -707,7 +707,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
> for_each_available_child_of_node(nfc->dev->of_node, child) {
> if (of_device_is_compatible(child, "fsl,vf610-nfc-nandcs")) {
>
> - if (chip->flash_node) {
> + if (nand_get_flash_node(chip)) {
> dev_err(nfc->dev,
> "Only one NAND chip supported!\n");
> err = -EINVAL;
> @@ -718,7 +718,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
> }
> }
>
> - if (!chip->flash_node) {
> + if (!nand_get_flash_node(chip)) {
> dev_err(nfc->dev, "NAND chip sub-node missing!\n");
> err = -ENODEV;
> goto err_clk;
> @@ -814,7 +814,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
> return mtd_device_register(mtd, NULL, 0);
>
> error:
> - of_node_put(chip->flash_node);
> + of_node_put(nand_get_flash_node(chip));
> err_clk:
> clk_disable_unprepare(nfc->clk);
> return err;
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 00/11] mtd: migrate 'of_node' handling to core, not in mtd_part_parser_data
@ 2015-10-31 3:33 Brian Norris
2015-11-01 23:03 ` [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node() Boris Brezillon
0 siblings, 1 reply; 4+ messages in thread
From: Brian Norris @ 2015-10-31 3:33 UTC (permalink / raw)
To: linux-mtd
Cc: linux-kernel, Brian Norris, Boris Brezillon, Ezequiel Garcia,
Marek Vasut, Scott Wood, Josh Wu, Robert Jarzmik, Kyungmin Park,
Han Xu
Hi,
I noticed that, for MTD drivers that want to support DT partition parsing
(essentially all recent ones), it's a bit awkward to set the tell MTD which DT
node to use. I also noticed that this info is duplicated in a few places;
namely, some sub-subsystems (like SPI NOR and NAND) need their own field to
track the DT node, so let's have the propagate the 'MTD' DT node down for us.
Besides simplifying the boilerplate throughout MTD, this series also has the
side effect of producing 'of_node' symlinks in sysfs. e.g.:
# ls -al /sys/class/mtd/mtd0/of_node
lrwxrwxrwx 1 root root 0 Oct 26 19:17 /sys/class/mtd/mtd0/of_node -> ../../../../firmware/devicetree/base/spi@ff130000/flash@0
For NAND, this potentially has some other bigger initial side effects, since
nand_dt_init() handles a bit more automagically for drivers that defined their
->flash_node. But these drivers should probably convert anyway. So, please test
your favorite driver!
v1 -> v2:
* add helper functions for getting/setting the MTD/SPI-NOR/NAND DT node
* fix some build errors
* drop spi_nor's flash_node field (just use the MTD of_node)
Regards,
Brian
Brian Norris (11):
mtd: add get/set of_node/flash_node helpers
mtd: ofpart: grab device tree node directly from master device node
mtd: {nand,spi-nor}: assign MTD of_node
mtd: nand: convert to nand_set_flash_node()
mtd: spi-nor: convert to spi_nor_{get,set}_flash_node()
mtd: nand: drop unnecessary partition parser data
mtd: spi-nor: drop unnecessary partition parser data
mtd: spi-nor: drop flash_node field
mtd: drop unnecessary partition parser data
mtd: ofpart: drop 'of_node' partition parser data
mtd: physmap_of: assign parent for the concatenated MTD
drivers/mtd/devices/m25p80.c | 10 +++-------
drivers/mtd/devices/mtd_dataflash.c | 5 ++---
drivers/mtd/devices/spear_smi.c | 6 ++----
drivers/mtd/devices/st_spi_fsm.c | 5 ++---
drivers/mtd/maps/lantiq-flash.c | 5 ++---
drivers/mtd/maps/physmap_of.c | 6 +++---
drivers/mtd/nand/atmel_nand.c | 7 +++----
drivers/mtd/nand/brcmnand/brcmnand.c | 5 ++---
drivers/mtd/nand/davinci_nand.c | 10 +++-------
drivers/mtd/nand/fsl_elbc_nand.c | 5 ++---
drivers/mtd/nand/fsl_ifc_nand.c | 5 ++---
drivers/mtd/nand/fsl_upm.c | 5 ++---
drivers/mtd/nand/fsmc_nand.c | 9 ++++-----
drivers/mtd/nand/gpio.c | 8 +++-----
drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 5 ++---
drivers/mtd/nand/hisi504_nand.c | 5 ++---
drivers/mtd/nand/lpc32xx_mlc.c | 7 +++----
drivers/mtd/nand/lpc32xx_slc.c | 7 +++----
drivers/mtd/nand/mpc5121_nfc.c | 5 ++---
drivers/mtd/nand/mxc_nand.c | 5 ++---
drivers/mtd/nand/nand_base.c | 3 +++
drivers/mtd/nand/ndfc.c | 5 ++---
drivers/mtd/nand/omap2.c | 6 ++----
drivers/mtd/nand/orion_nand.c | 6 ++----
drivers/mtd/nand/plat_nand.c | 5 ++---
drivers/mtd/nand/pxa3xx_nand.c | 10 +++++-----
drivers/mtd/nand/sh_flctl.c | 6 ++----
drivers/mtd/nand/socrates_nand.c | 5 ++---
drivers/mtd/nand/sunxi_nand.c | 6 ++----
drivers/mtd/nand/vf610_nfc.c | 8 ++------
drivers/mtd/ofpart.c | 12 ++++--------
drivers/mtd/onenand/omap2.c | 8 +++-----
drivers/mtd/spi-nor/fsl-quadspi.c | 6 ++----
drivers/mtd/spi-nor/nxp-spifi.c | 6 ++----
drivers/mtd/spi-nor/spi-nor.c | 2 +-
drivers/staging/mt29f_spinand/mt29f_spinand.c | 5 ++---
include/linux/mtd/mtd.h | 11 +++++++++++
include/linux/mtd/nand.h | 11 +++++++++++
include/linux/mtd/partitions.h | 2 --
include/linux/mtd/spi-nor.h | 13 +++++++++++--
40 files changed, 120 insertions(+), 141 deletions(-)
--
2.6.0.rc2.230.g3dd15c0
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node()
2015-10-31 3:33 [PATCH v2 00/11] mtd: migrate 'of_node' handling to core, not in mtd_part_parser_data Brian Norris
@ 2015-11-01 23:03 ` Boris Brezillon
2015-11-11 23:55 ` Brian Norris
0 siblings, 1 reply; 4+ messages in thread
From: Boris Brezillon @ 2015-11-01 23:03 UTC (permalink / raw)
To: David Woodhouse, Brian Norris, linux-mtd
Cc: Ezequiel Garcia, Marek Vasut, Scott Wood, Josh Wu, Robert Jarzmik,
Kyungmin Park, Han Xu, Stefan Agner, linux-kernel,
Boris Brezillon
Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci':
---8<----
virtual patch
@@
struct nand_chip c;
struct nand_chip *cp;
@@
(
-(cp)->flash_node
+nand_get_flash_node(cp)
|
-(c).flash_node
+nand_get_flash_node(&c)
)
---8<----
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
Hi Brian,
I think this patch could be part of your series too.
Best Regards,
Boris
drivers/mtd/nand/brcmnand/brcmnand.c | 2 +-
drivers/mtd/nand/nand_base.c | 6 +++---
drivers/mtd/nand/vf610_nfc.c | 6 +++---
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
index a37659d..2a437c7 100644
--- a/drivers/mtd/nand/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/brcmnand/brcmnand.c
@@ -1816,7 +1816,7 @@ static int brcmnand_setup_dev(struct brcmnand_host *host)
memset(cfg, 0, sizeof(*cfg));
- ret = of_property_read_u32(chip->flash_node,
+ ret = of_property_read_u32(nand_get_flash_node(chip),
"brcm,nand-oob-sector-size",
&oob_sector);
if (ret) {
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 939ab3d..4ac4efe 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3989,11 +3989,11 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips,
struct nand_flash_dev *type;
int ret;
- if (chip->flash_node) {
+ if (nand_get_flash_node(chip)) {
/* MTD can automatically handle DT partitions, etc. */
- mtd_set_of_node(mtd, chip->flash_node);
+ mtd_set_of_node(mtd, nand_get_flash_node(chip));
- ret = nand_dt_init(mtd, chip, chip->flash_node);
+ ret = nand_dt_init(mtd, chip, nand_get_flash_node(chip));
if (ret)
return ret;
}
diff --git a/drivers/mtd/nand/vf610_nfc.c b/drivers/mtd/nand/vf610_nfc.c
index b6df4c6..1c86c6b 100644
--- a/drivers/mtd/nand/vf610_nfc.c
+++ b/drivers/mtd/nand/vf610_nfc.c
@@ -707,7 +707,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
for_each_available_child_of_node(nfc->dev->of_node, child) {
if (of_device_is_compatible(child, "fsl,vf610-nfc-nandcs")) {
- if (chip->flash_node) {
+ if (nand_get_flash_node(chip)) {
dev_err(nfc->dev,
"Only one NAND chip supported!\n");
err = -EINVAL;
@@ -718,7 +718,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
}
}
- if (!chip->flash_node) {
+ if (!nand_get_flash_node(chip)) {
dev_err(nfc->dev, "NAND chip sub-node missing!\n");
err = -ENODEV;
goto err_clk;
@@ -814,7 +814,7 @@ static int vf610_nfc_probe(struct platform_device *pdev)
return mtd_device_register(mtd, NULL, 0);
error:
- of_node_put(chip->flash_node);
+ of_node_put(nand_get_flash_node(chip));
err_clk:
clk_disable_unprepare(nfc->clk);
return err;
--
2.1.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node()
2015-11-01 23:03 ` [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node() Boris Brezillon
@ 2015-11-11 23:55 ` Brian Norris
0 siblings, 0 replies; 4+ messages in thread
From: Brian Norris @ 2015-11-11 23:55 UTC (permalink / raw)
To: Boris Brezillon
Cc: David Woodhouse, linux-mtd, Ezequiel Garcia, Marek Vasut,
Scott Wood, Josh Wu, Robert Jarzmik, Kyungmin Park, Han Xu,
Stefan Agner, linux-kernel
On Mon, Nov 02, 2015 at 12:03:38AM +0100, Boris Brezillon wrote:
> Used semantic patch with 'make coccicheck MODE=patch COCCI=script.cocci':
>
> ---8<----
> virtual patch
>
> @@
> struct nand_chip c;
> struct nand_chip *cp;
> @@
> (
> -(cp)->flash_node
> +nand_get_flash_node(cp)
> |
> -(c).flash_node
> +nand_get_flash_node(&c)
> )
> ---8<----
>
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
> Hi Brian,
>
> I think this patch could be part of your series too.
>
> Best Regards,
>
> Boris
Thanks! Pushed to l2-mtd.git/next
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-11-11 23:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-01 23:02 [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node() Boris Brezillon
2015-11-01 23:05 ` Boris Brezillon
-- strict thread matches above, loose matches on Subject: below --
2015-10-31 3:33 [PATCH v2 00/11] mtd: migrate 'of_node' handling to core, not in mtd_part_parser_data Brian Norris
2015-11-01 23:03 ` [PATCH v2 12/11] mtd: nand: convert to nand_get_flash_node() Boris Brezillon
2015-11-11 23:55 ` Brian Norris
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).