mbox series

[v2,00/25] mtd: spi-nor: Move manufacturer/SFDP code out

Message ID 20200313194130.342251-1-tudor.ambarus@microchip.com (mailing list archive)
Headers show
Series mtd: spi-nor: Move manufacturer/SFDP code out | expand

Message

Tudor Ambarus March 13, 2020, 7:42 p.m. UTC
From: Tudor Ambarus <tudor.ambarus@microchip.com>

Hello,

This patch series is an attempt at getting all manufacturer specific
quirks/code out of the core to make the core logic more readable and
thus ease maintainance.

This is a respin of the last chunk of Boris's work from
https://patchwork.ozlabs.org/cover/1009290/.

(Re)tested an erase-write-read-compare with a 1MB file on the following
flashes: n25q256a, w25q256jvm, is25lp256, gd25q256, mx25l25635e,
s25fl256s0.

v2:
1/ The mtk-quadspi driver was replaced by a new spi-mtk-nor driver.
In order to test these, one has to merge the mtk-mtd-spi-move from
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git,
in spi-nor/next and add this patch set on top of the merge.

2/ new patch:
mtd: spi-nor: Emphasise which is the generic set_4byte_addr_mode()
    method
- macronix_set_4byte() is renamed to spi_nor_set_4byte_addr_mode(),
  it will be the only 4 byte address mode method exposed to the
  manufacturer drivers
- adapt the rest of the patches based on this

3/ new patch
mtd: spi-nor: Drop the MFR definitions
- MFR definitions are unlikely to be used, drop them.

Boris Brezillon (21):
  mtd: spi-nor: Stop prefixing generic functions with a manufacturer
    name
  mtd: spi-nor: Prepare core / manufacturer code split
  mtd: spi-nor: Expose stuctures and functions to manufacturer drivers
  mtd: spi-nor: Add the concept of SPI NOR manufacturer driver
  mtd: spi-nor: Move Atmel bits out of core.c
  mtd: spi-nor: Move Eon bits out of core.c
  mtd: spi-nor: Move ESMT bits out of core.c
  mtd: spi-nor: Move Everspin bits out of core.c
  mtd: spi-nor: Move Fujitsu bits out of core.c
  mtd: spi-nor: Move GigaDevice bits out of core.c
  mtd: spi-nor: Move Intel bits out of core.c
  mtd: spi-nor: Move ISSI bits out of core.c
  mtd: spi-nor: Move Macronix bits out of core.c
  mtd: spi-nor: Move Micron/ST bits out of core.c
  mtd: spi-nor: Move Spansion bits out of core.c
  mtd: spi-nor: Move SST bits out of core.c
  mtd: spi-nor: Move Winbond bits out of core.c
  mtd: spi-nor: Move Catalyst bits out of core.c
  mtd: spi-nor: Move Xilinx bits out of core.c
  mtd: spi-nor: Move XMC bits out of core.c
  mtd: spi-nor: Get rid of the now empty spi_nor_ids[] table

Tudor Ambarus (4):
  mtd: spi-nor: Emphasise which is the generic set_4byte_addr_mode()
    method
  mtd: spi-nor: Move SFDP logic out of the core
  mtd: spi-nor: Drop the MFR definitions
  mtd: spi-nor: Trim what is exposed in spi-nor.h

 drivers/mtd/spi-nor/Kconfig                   |   75 +-
 drivers/mtd/spi-nor/Makefile                  |   25 +-
 drivers/mtd/spi-nor/atmel.c                   |   46 +
 drivers/mtd/spi-nor/catalyst.c                |   29 +
 drivers/mtd/spi-nor/controllers/Kconfig       |   75 +
 drivers/mtd/spi-nor/controllers/Makefile      |    8 +
 .../spi-nor/{ => controllers}/aspeed-smc.c    |    0
 .../{ => controllers}/cadence-quadspi.c       |    0
 .../mtd/spi-nor/{ => controllers}/hisi-sfc.c  |    0
 .../spi-nor/{ => controllers}/intel-spi-pci.c |    0
 .../{ => controllers}/intel-spi-platform.c    |    0
 .../mtd/spi-nor/{ => controllers}/intel-spi.c |    0
 .../mtd/spi-nor/{ => controllers}/intel-spi.h |    0
 .../mtd/spi-nor/{ => controllers}/nxp-spifi.c |    0
 drivers/mtd/spi-nor/{spi-nor.c => core.c}     | 2501 ++---------------
 drivers/mtd/spi-nor/core.h                    |  431 +++
 drivers/mtd/spi-nor/eon.c                     |   34 +
 drivers/mtd/spi-nor/esmt.c                    |   25 +
 drivers/mtd/spi-nor/everspin.c                |   27 +
 drivers/mtd/spi-nor/fujitsu.c                 |   20 +
 drivers/mtd/spi-nor/gigadevice.c              |   59 +
 drivers/mtd/spi-nor/intel.c                   |   32 +
 drivers/mtd/spi-nor/issi.c                    |   83 +
 drivers/mtd/spi-nor/macronix.c                |   98 +
 drivers/mtd/spi-nor/micron-st.c               |  153 +
 drivers/mtd/spi-nor/sfdp.c                    | 1205 ++++++++
 drivers/mtd/spi-nor/sfdp.h                    |   98 +
 drivers/mtd/spi-nor/spansion.c                |   95 +
 drivers/mtd/spi-nor/sst.c                     |  151 +
 drivers/mtd/spi-nor/winbond.c                 |  112 +
 drivers/mtd/spi-nor/xilinx.c                  |   94 +
 drivers/mtd/spi-nor/xmc.c                     |   23 +
 include/linux/mtd/spi-nor.h                   |  275 +-
 33 files changed, 3120 insertions(+), 2654 deletions(-)
 create mode 100644 drivers/mtd/spi-nor/atmel.c
 create mode 100644 drivers/mtd/spi-nor/catalyst.c
 create mode 100644 drivers/mtd/spi-nor/controllers/Kconfig
 create mode 100644 drivers/mtd/spi-nor/controllers/Makefile
 rename drivers/mtd/spi-nor/{ => controllers}/aspeed-smc.c (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/cadence-quadspi.c (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/hisi-sfc.c (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/intel-spi-pci.c (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/intel-spi-platform.c (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/intel-spi.c (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/intel-spi.h (100%)
 rename drivers/mtd/spi-nor/{ => controllers}/nxp-spifi.c (100%)
 rename drivers/mtd/spi-nor/{spi-nor.c => core.c} (51%)
 create mode 100644 drivers/mtd/spi-nor/core.h
 create mode 100644 drivers/mtd/spi-nor/eon.c
 create mode 100644 drivers/mtd/spi-nor/esmt.c
 create mode 100644 drivers/mtd/spi-nor/everspin.c
 create mode 100644 drivers/mtd/spi-nor/fujitsu.c
 create mode 100644 drivers/mtd/spi-nor/gigadevice.c
 create mode 100644 drivers/mtd/spi-nor/intel.c
 create mode 100644 drivers/mtd/spi-nor/issi.c
 create mode 100644 drivers/mtd/spi-nor/macronix.c
 create mode 100644 drivers/mtd/spi-nor/micron-st.c
 create mode 100644 drivers/mtd/spi-nor/sfdp.c
 create mode 100644 drivers/mtd/spi-nor/sfdp.h
 create mode 100644 drivers/mtd/spi-nor/spansion.c
 create mode 100644 drivers/mtd/spi-nor/sst.c
 create mode 100644 drivers/mtd/spi-nor/winbond.c
 create mode 100644 drivers/mtd/spi-nor/xilinx.c
 create mode 100644 drivers/mtd/spi-nor/xmc.c

Comments

Vignesh Raghavendra March 16, 2020, 9:47 a.m. UTC | #1
On 14/03/20 1:12 am, Tudor.Ambarus@microchip.com wrote:
> Boris Brezillon (21):
>   mtd: spi-nor: Stop prefixing generic functions with a manufacturer
>     name
>   mtd: spi-nor: Prepare core / manufacturer code split
>   mtd: spi-nor: Expose stuctures and functions to manufacturer drivers
>   mtd: spi-nor: Add the concept of SPI NOR manufacturer driver


>   mtd: spi-nor: Move Atmel bits out of core.c
>   mtd: spi-nor: Move Eon bits out of core.c
>   mtd: spi-nor: Move ESMT bits out of core.c
>   mtd: spi-nor: Move Everspin bits out of core.c
>   mtd: spi-nor: Move Fujitsu bits out of core.c
>   mtd: spi-nor: Move GigaDevice bits out of core.c
>   mtd: spi-nor: Move Intel bits out of core.c
>   mtd: spi-nor: Move ISSI bits out of core.c
>   mtd: spi-nor: Move Macronix bits out of core.c
>   mtd: spi-nor: Move Micron/ST bits out of core.c
>   mtd: spi-nor: Move Spansion bits out of core.c
>   mtd: spi-nor: Move SST bits out of core.c
>   mtd: spi-nor: Move Winbond bits out of core.c
>   mtd: spi-nor: Move Catalyst bits out of core.c
>   mtd: spi-nor: Move Xilinx bits out of core.c
>   mtd: spi-nor: Move XMC bits out of core.c


I skimmed through patches 7 to 22 and did not see any issues. No
objections from me.
Tudor Ambarus March 17, 2020, 7:40 a.m. UTC | #2
On Friday, March 13, 2020 9:42:33 PM EET Tudor Ambarus - M18064 wrote:
> From: Tudor Ambarus <tudor.ambarus@microchip.com>
> 
> Hello,
> 
> This patch series is an attempt at getting all manufacturer specific
> quirks/code out of the core to make the core logic more readable and
> thus ease maintainance.
> 
> This is a respin of the last chunk of Boris's work from
> https://patchwork.ozlabs.org/cover/1009290/.
> 
> (Re)tested an erase-write-read-compare with a 1MB file on the following
> flashes: n25q256a, w25q256jvm, is25lp256, gd25q256, mx25l25635e,
> s25fl256s0.
> 
> v2:
> 1/ The mtk-quadspi driver was replaced by a new spi-mtk-nor driver.
> In order to test these, one has to merge the mtk-mtd-spi-move from
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git,
> in spi-nor/next and add this patch set on top of the merge.
> 
> 2/ new patch:
> mtd: spi-nor: Emphasise which is the generic set_4byte_addr_mode()
>     method
> - macronix_set_4byte() is renamed to spi_nor_set_4byte_addr_mode(),
>   it will be the only 4 byte address mode method exposed to the
>   manufacturer drivers
> - adapt the rest of the patches based on this
> 
> 3/ new patch
> mtd: spi-nor: Drop the MFR definitions
> - MFR definitions are unlikely to be used, drop them.
> 
> Boris Brezillon (21):
>   mtd: spi-nor: Stop prefixing generic functions with a manufacturer
>     name
>   mtd: spi-nor: Prepare core / manufacturer code split
>   mtd: spi-nor: Expose stuctures and functions to manufacturer drivers
>   mtd: spi-nor: Add the concept of SPI NOR manufacturer driver
>   mtd: spi-nor: Move Atmel bits out of core.c
>   mtd: spi-nor: Move Eon bits out of core.c
>   mtd: spi-nor: Move ESMT bits out of core.c
>   mtd: spi-nor: Move Everspin bits out of core.c
>   mtd: spi-nor: Move Fujitsu bits out of core.c
>   mtd: spi-nor: Move GigaDevice bits out of core.c
>   mtd: spi-nor: Move Intel bits out of core.c
>   mtd: spi-nor: Move ISSI bits out of core.c
>   mtd: spi-nor: Move Macronix bits out of core.c
>   mtd: spi-nor: Move Micron/ST bits out of core.c
>   mtd: spi-nor: Move Spansion bits out of core.c
>   mtd: spi-nor: Move SST bits out of core.c
>   mtd: spi-nor: Move Winbond bits out of core.c
>   mtd: spi-nor: Move Catalyst bits out of core.c
>   mtd: spi-nor: Move Xilinx bits out of core.c
>   mtd: spi-nor: Move XMC bits out of core.c
>   mtd: spi-nor: Get rid of the now empty spi_nor_ids[] table
> 
> Tudor Ambarus (4):
>   mtd: spi-nor: Emphasise which is the generic set_4byte_addr_mode()
>     method
>   mtd: spi-nor: Move SFDP logic out of the core
>   mtd: spi-nor: Drop the MFR definitions
>   mtd: spi-nor: Trim what is exposed in spi-nor.h
> 
>  drivers/mtd/spi-nor/Kconfig                   |   75 +-
>  drivers/mtd/spi-nor/Makefile                  |   25 +-
>  drivers/mtd/spi-nor/atmel.c                   |   46 +
>  drivers/mtd/spi-nor/catalyst.c                |   29 +
>  drivers/mtd/spi-nor/controllers/Kconfig       |   75 +
>  drivers/mtd/spi-nor/controllers/Makefile      |    8 +
>  .../spi-nor/{ => controllers}/aspeed-smc.c    |    0
>  .../{ => controllers}/cadence-quadspi.c       |    0
>  .../mtd/spi-nor/{ => controllers}/hisi-sfc.c  |    0
>  .../spi-nor/{ => controllers}/intel-spi-pci.c |    0
>  .../{ => controllers}/intel-spi-platform.c    |    0
>  .../mtd/spi-nor/{ => controllers}/intel-spi.c |    0
>  .../mtd/spi-nor/{ => controllers}/intel-spi.h |    0
>  .../mtd/spi-nor/{ => controllers}/nxp-spifi.c |    0
>  drivers/mtd/spi-nor/{spi-nor.c => core.c}     | 2501 ++---------------
>  drivers/mtd/spi-nor/core.h                    |  431 +++
>  drivers/mtd/spi-nor/eon.c                     |   34 +
>  drivers/mtd/spi-nor/esmt.c                    |   25 +
>  drivers/mtd/spi-nor/everspin.c                |   27 +
>  drivers/mtd/spi-nor/fujitsu.c                 |   20 +
>  drivers/mtd/spi-nor/gigadevice.c              |   59 +
>  drivers/mtd/spi-nor/intel.c                   |   32 +
>  drivers/mtd/spi-nor/issi.c                    |   83 +
>  drivers/mtd/spi-nor/macronix.c                |   98 +
>  drivers/mtd/spi-nor/micron-st.c               |  153 +
>  drivers/mtd/spi-nor/sfdp.c                    | 1205 ++++++++
>  drivers/mtd/spi-nor/sfdp.h                    |   98 +
>  drivers/mtd/spi-nor/spansion.c                |   95 +
>  drivers/mtd/spi-nor/sst.c                     |  151 +
>  drivers/mtd/spi-nor/winbond.c                 |  112 +
>  drivers/mtd/spi-nor/xilinx.c                  |   94 +
>  drivers/mtd/spi-nor/xmc.c                     |   23 +
>  include/linux/mtd/spi-nor.h                   |  275 +-
>  33 files changed, 3120 insertions(+), 2654 deletions(-)
>  create mode 100644 drivers/mtd/spi-nor/atmel.c
>  create mode 100644 drivers/mtd/spi-nor/catalyst.c
>  create mode 100644 drivers/mtd/spi-nor/controllers/Kconfig
>  create mode 100644 drivers/mtd/spi-nor/controllers/Makefile
>  rename drivers/mtd/spi-nor/{ => controllers}/aspeed-smc.c (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/cadence-quadspi.c (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/hisi-sfc.c (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/intel-spi-pci.c (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/intel-spi-platform.c (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/intel-spi.c (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/intel-spi.h (100%)
>  rename drivers/mtd/spi-nor/{ => controllers}/nxp-spifi.c (100%)
>  rename drivers/mtd/spi-nor/{spi-nor.c => core.c} (51%)
>  create mode 100644 drivers/mtd/spi-nor/core.h
>  create mode 100644 drivers/mtd/spi-nor/eon.c
>  create mode 100644 drivers/mtd/spi-nor/esmt.c
>  create mode 100644 drivers/mtd/spi-nor/everspin.c
>  create mode 100644 drivers/mtd/spi-nor/fujitsu.c
>  create mode 100644 drivers/mtd/spi-nor/gigadevice.c
>  create mode 100644 drivers/mtd/spi-nor/intel.c
>  create mode 100644 drivers/mtd/spi-nor/issi.c
>  create mode 100644 drivers/mtd/spi-nor/macronix.c
>  create mode 100644 drivers/mtd/spi-nor/micron-st.c
>  create mode 100644 drivers/mtd/spi-nor/sfdp.c
>  create mode 100644 drivers/mtd/spi-nor/sfdp.h
>  create mode 100644 drivers/mtd/spi-nor/spansion.c
>  create mode 100644 drivers/mtd/spi-nor/sst.c
>  create mode 100644 drivers/mtd/spi-nor/winbond.c
>  create mode 100644 drivers/mtd/spi-nor/xilinx.c
>  create mode 100644 drivers/mtd/spi-nor/xmc.c

All applied to spi-nor/next. Thanks,
ta