mbox series

[v2,0/8] mtd: rawnand: bcm47xx: Convert to exec_op() (and more)

Message ID 20200518162837.304471-1-boris.brezillon@collabora.com (mailing list archive)
Headers show
Series mtd: rawnand: bcm47xx: Convert to exec_op() (and more) | expand

Message

Boris Brezillon May 18, 2020, 4:28 p.m. UTC
Hello,

A bit of context to explain the motivation behind those conversions
I've been sending for the last couple of weeks. The raw NAND subsystem
carries a lot of history which makes any rework not only painful, but
also subject to regressions which we only detect when someone dares to
update its kernel on one of those ancient HW. While carrying drivers
for old HW is not a problem per se, carrying ancient and unmaintained
drivers that are not converted to new APIs is a maintenance burden,
hence this massive conversion attempt I'm conducting here.

So here is a series converting the BCM47XX NAND controller driver to
exec_op(), plus a bunch of minor improvements done along the way.
I hope I'll find someone to test those changes, but if there's no one
still having access to this  HW or no interest in keeping it supported
in recent kernel versions, we should definitely consider removing the
driver instead.

No major changes in this v2, apart from fixes for things reported by
Miquel. See the changelog on each patch for more details.

Regards,

Boris

Boris Brezillon (8):
  mtd: rawnand: Add an is_last flag to nand_subop
  mtd: rawnand: bcm47xx: Drop dependency on BCMA
  mtd: rawnand: bcm47xx: Allow compiling the driver when COMPILE_TEST=y
  mtd: rawnand: bcm47xx: Demistify a few more things
  mtd: rawnand: bcm47xx: Implement the exec_op() interface
  mtd: rawnand: bcm47xx: Get rid of the legacy implementation
  mtd: rawnand: bcm47xx: Simplify the init() function
  mtd: rawnand: bcm47xx: Merge all source files

 drivers/mtd/nand/raw/Kconfig                  |   3 +-
 drivers/mtd/nand/raw/Makefile                 |   2 +-
 .../mtd/nand/raw/bcm47xx-nand-controller.c    | 343 +++++++++++++
 drivers/mtd/nand/raw/bcm47xxnflash/Makefile   |   5 -
 .../nand/raw/bcm47xxnflash/bcm47xxnflash.h    |  26 -
 drivers/mtd/nand/raw/bcm47xxnflash/main.c     |  77 ---
 .../mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c  | 450 ------------------
 drivers/mtd/nand/raw/nand_base.c              |   2 +
 include/linux/mtd/rawnand.h                   |   2 +
 9 files changed, 349 insertions(+), 561 deletions(-)
 create mode 100644 drivers/mtd/nand/raw/bcm47xx-nand-controller.c
 delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/Makefile
 delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/bcm47xxnflash.h
 delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/main.c
 delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c

Comments

Miquel Raynal June 3, 2020, 2:22 p.m. UTC | #1
Hello,

Boris Brezillon <boris.brezillon@collabora.com> wrote on Mon, 18 May
2020 18:28:29 +0200:

> Hello,
> 
> A bit of context to explain the motivation behind those conversions
> I've been sending for the last couple of weeks. The raw NAND subsystem
> carries a lot of history which makes any rework not only painful, but
> also subject to regressions which we only detect when someone dares to
> update its kernel on one of those ancient HW. While carrying drivers
> for old HW is not a problem per se, carrying ancient and unmaintained
> drivers that are not converted to new APIs is a maintenance burden,
> hence this massive conversion attempt I'm conducting here.
> 
> So here is a series converting the BCM47XX NAND controller driver to
> exec_op(), plus a bunch of minor improvements done along the way.
> I hope I'll find someone to test those changes, but if there's no one
> still having access to this  HW or no interest in keeping it supported
> in recent kernel versions, we should definitely consider removing the
> driver instead.
> 
> No major changes in this v2, apart from fixes for things reported by
> Miquel. See the changelog on each patch for more details.
> 
> Regards,
> 
> Boris
> 
> Boris Brezillon (8):
>   mtd: rawnand: Add an is_last flag to nand_subop
>   mtd: rawnand: bcm47xx: Drop dependency on BCMA
>   mtd: rawnand: bcm47xx: Allow compiling the driver when COMPILE_TEST=y
>   mtd: rawnand: bcm47xx: Demistify a few more things
>   mtd: rawnand: bcm47xx: Implement the exec_op() interface
>   mtd: rawnand: bcm47xx: Get rid of the legacy implementation
>   mtd: rawnand: bcm47xx: Simplify the init() function
>   mtd: rawnand: bcm47xx: Merge all source files
> 
>  drivers/mtd/nand/raw/Kconfig                  |   3 +-
>  drivers/mtd/nand/raw/Makefile                 |   2 +-
>  .../mtd/nand/raw/bcm47xx-nand-controller.c    | 343 +++++++++++++
>  drivers/mtd/nand/raw/bcm47xxnflash/Makefile   |   5 -
>  .../nand/raw/bcm47xxnflash/bcm47xxnflash.h    |  26 -
>  drivers/mtd/nand/raw/bcm47xxnflash/main.c     |  77 ---
>  .../mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c  | 450 ------------------
>  drivers/mtd/nand/raw/nand_base.c              |   2 +
>  include/linux/mtd/rawnand.h                   |   2 +
>  9 files changed, 349 insertions(+), 561 deletions(-)
>  create mode 100644 drivers/mtd/nand/raw/bcm47xx-nand-controller.c
>  delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/Makefile
>  delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/bcm47xxnflash.h
>  delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/main.c
>  delete mode 100644 drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c
> 

Anyone to test this series?

If not I will apply it as soon as v5.8-rc1 is released.


Thanks,
Miquèl