|
|
@@ -10,6 +10,7 @@
|
|
|
#include <linux/mtd/spinand.h>
|
|
|
|
|
|
#define SPINAND_MFR_MACRONIX 0xC2
|
|
|
+#define MACRONIX_ECCSR_MASK 0x0F
|
|
|
|
|
|
static SPINAND_OP_VARIANTS(read_cache_variants,
|
|
|
SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
|
|
|
@@ -55,7 +56,12 @@ static int mx35lf1ge4ab_get_eccsr(struct spinand_device *spinand, u8 *eccsr)
|
|
|
SPI_MEM_OP_DUMMY(1, 1),
|
|
|
SPI_MEM_OP_DATA_IN(1, eccsr, 1));
|
|
|
|
|
|
- return spi_mem_exec_op(spinand->spimem, &op);
|
|
|
+ int ret = spi_mem_exec_op(spinand->spimem, &op);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ *eccsr &= MACRONIX_ECCSR_MASK;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static int mx35lf1ge4ab_ecc_get_status(struct spinand_device *spinand,
|