[PATCH v2 00/11] mtd: migrate 'of_node' handling to core, not in mtd_part_parser_data

Brian Norris computersforpeace at gmail.com
Fri Oct 30 20:33:19 PDT 2015


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 at ff130000/flash at 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




More information about the linux-mtd mailing list