mtd: spi-nor: fix selection of uniform erase type in flexible conf
authorTudor.Ambarus@microchip.com <Tudor.Ambarus@microchip.com>
Fri, 16 Nov 2018 17:46:37 +0000 (17:46 +0000)
committerBoris Brezillon <boris.brezillon@bootlin.com>
Tue, 20 Nov 2018 13:26:59 +0000 (14:26 +0100)
commite8828ec1c003727fc001eab06aa19bd2ca9b677e
treea8474b344051117c5683aec5f86a79468c10cfea
parenta6a66f80c85e8e20573ca03fabf32445954a88d5
mtd: spi-nor: fix selection of uniform erase type in flexible conf

There are uniform, non-uniform and flexible erase flash configurations.

The non-uniform erase types, are the erase types that can _not_ erase
the entire flash by their own.

As the code was, in case flashes had flexible erase capabilities
(support both uniform and non-uniform erase types in the same flash
configuration) and supported multiple uniform erase type sizes, the
code did not sort the uniform erase types, and could select a wrong
erase type size.

Sort the uniform erase mask in case of flexible erase flash
configurations, in order to select the best uniform erase type size.

Uniform, non-uniform, and flexible configurations with just a valid
uniform erase type, are not affected by this change.

Uniform erase tested on mx25l3273fm2i-08g and sst26vf064B-104i/sn.
Non uniform erase tested on sst26vf064B-104i/sn.

Fixes: 5390a8df769e ("mtd: spi-nor: add support to non-uniform SFDP SPI NOR flash memories")
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
drivers/mtd/spi-nor/spi-nor.c