mtd: spi-nor: core: Allow flashes to specify MTD writesize
authorPratyush Yadav <p.yadav@ti.com>
Tue, 1 Dec 2020 10:27:10 +0000 (15:57 +0530)
committerVignesh Raghavendra <vigneshr@ti.com>
Mon, 7 Dec 2020 17:27:29 +0000 (22:57 +0530)
commitafd473e8582702e89aed89a4be957ffd37423009
tree089903e9705052b0f7bd04a63b06b39c68d2906a
parentc69942bda5152d764ee7d897d1627d64c7177ea1
mtd: spi-nor: core: Allow flashes to specify MTD writesize

Some flashes like the Cypress S28 family use ECC. Under this ECC scheme,
multi-pass writes to an ECC block is not allowed. In other words, once
data is programmed to an ECC block, it can't be programmed again without
erasing it first.

Upper layers like file systems need to be given this information so they
do not cause error conditions on the flash by attempting multi-pass
programming. This can be done by setting 'writesize' in 'struct
mtd_info'.

Set the default to 1 but allow flashes to modify it in fixup hooks. If
more flashes show up with this constraint in the future it might be
worth it to add it to 'struct flash_info', but for now increasing its
size is not worth it.

Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Link: https://lore.kernel.org/r/20201201102711.8727-3-p.yadav@ti.com
drivers/mtd/spi-nor/core.c
drivers/mtd/spi-nor/core.h