mtd: spi-nor: Respect flash's hwcaps in spi_nor_adjust_hwcaps()

The smart spi_nor_adjust_hwcaps() does not respect the SPI flash's
hwcaps, and only looks to the controller on what can be supported.

The flash's hwcaps needs to be AND'ed before checking.

Fixes: 71025f013c ("mtd: spi-nor-core: Rework hwcaps selection")
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
This commit is contained in:
Bin Meng 2021-07-30 15:20:16 +08:00 committed by Jagan Teki
parent cb42425aa1
commit 87e7219f9c

View File

@ -2858,10 +2858,11 @@ spi_nor_adjust_hwcaps(struct spi_nor *nor,
unsigned int cap;
/*
* Enable all caps by default. We will mask them after checking what's
* really supported using spi_mem_supports_op().
* Start by assuming the controller supports every capability.
* We will mask them after checking what's really supported
* using spi_mem_supports_op().
*/
*hwcaps = SNOR_HWCAPS_ALL;
*hwcaps = SNOR_HWCAPS_ALL & params->hwcaps.mask;
/* X-X-X modes are not supported yet, mask them all. */
*hwcaps &= ~SNOR_HWCAPS_X_X_X;