[v2,0/3] mtd: rawnand: sunxi: Some cleanup

Message ID 20230204143520.9682-1-samuel@sholland.org
Headers
Series mtd: rawnand: sunxi: Some cleanup |

Message

Samuel Holland Feb. 4, 2023, 2:35 p.m. UTC
  (Apologies for the delay in sending v2. As discussed previously[1],
the first patch needs to be merged in the same merge window as commit
34569d869532 from v1 of the series, even if the others don't make it.)

I have an A33 tablet with MLC NAND, and I wanted to use mainline Linux
to dump the NAND. To do that, I updated this driver's ECC ops to fully
utilize the hardware for ECC and scrambling. This made the driver
compatible with the existing (scrambled) on-flash bad block map, and I
was able to read the full NAND contents.

This series contains some cleanup from that effort. The first patch
ensures we can make good use of the hardware ECC/descrambler. The other
two patches simplify some code for managing the ECC engine.

[1]: https://lore.kernel.org/linux-mtd/20230102175351.64690aaf@xps-13/

Changes in v2:
 - Update commit message to address backward-compatibility concerns
 - Keep `struct sunxi_nand_hw_ecc` but change the pointer to a value
 - Split ECC_CTL precomputation and structure updates to two patches

Samuel Holland (3):
  mtd: rawnand: sunxi: Update OOB layout to match hardware
  mtd: rawnand: sunxi: Embed sunxi_nand_hw_ecc by value
  mtd: rawnand: sunxi: Precompute the ECC_CTL register value

 drivers/mtd/nand/raw/sunxi_nand.c | 73 +++++++++----------------------
 1 file changed, 20 insertions(+), 53 deletions(-)