OSDN Git Service

mtd: spi-nor: Add generic formula for SR block protection handling
authorJungseung Lee <js07.lee@samsung.com>
Wed, 18 Mar 2020 12:06:13 +0000 (21:06 +0900)
committerTudor Ambarus <tudor.ambarus@microchip.com>
Tue, 24 Mar 2020 09:43:28 +0000 (11:43 +0200)
commit2d284768b49bcf1c643c08a201ff2161041178ef
tree90bb26bd07740c47c6c73c839a27306dd50882c1
parentb0e2d252f9280835a24e007dcd6feaef5a8809cd
mtd: spi-nor: Add generic formula for SR block protection handling

The current mainline locking was restricted and could only be applied
to flashes that have 3 block protection bits and fixed locking ratio.

A new method of normalization was reached at the end of the discussion [1].

    (1) - if bp slot is insufficient.
    (2) - if bp slot is sufficient.

    if (bp_slots_needed > bp_slots)    // (1)
        min_prot_length = sector_size << (bp_slots_needed - bp_slots);
    else                               // (2)
        min_prot_length = sector_size;

This patch changes logic to handle block protection based on min_prot_length.
It is suitable for the overall flashes with exception of some corner cases
(see EON and catalyst) and easy to extend and apply for the case of 2bit or
4bit block protection.

[1] http://lists.infradead.org/pipermail/linux-mtd/2020-February/093934.html

Signed-off-by: Jungseung Lee <js07.lee@samsung.com>
Reviewed-by: Michael Walle <michael@walle.cc>
Tested-by: Michael Walle <michael@walle.cc>
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
drivers/mtd/spi-nor/core.c