spi: spi-qpic-snand: reuse qcom_spi_check_raw_flash_errors()
authorGabor Juhos <j4g8y7@gmail.com>
Wed, 14 May 2025 10:16:38 +0000 (12:16 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 21 May 2025 17:56:06 +0000 (18:56 +0100)
The qcom_spi_check_raw_flash_errors() function can be used to
verify the flash status after raw operations.

Move the function slightly up in the code and change the
qcom_spi_read_last_cw() function to call it instead of using
an open coded implementation of the same check.

Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Link: https://patch.msgid.link/20250514-qpic-snand-error-check-v1-1-c0ebd3aae72a@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-qpic-snand.c

index 7207bbb..a90829e 100644 (file)
@@ -524,6 +524,22 @@ static void qcom_spi_config_single_cw_page_read(struct qcom_nand_controller *sna
        qcom_read_reg_dma(snandc, NAND_FLASH_STATUS, 1, 0);
 }
 
+static int qcom_spi_check_raw_flash_errors(struct qcom_nand_controller *snandc, int cw_cnt)
+{
+       int i;
+
+       qcom_nandc_dev_to_mem(snandc, true);
+
+       for (i = 0; i < cw_cnt; i++) {
+               u32 flash = le32_to_cpu(snandc->reg_read_buf[i]);
+
+               if (flash & (FS_OP_ERR | FS_MPU_ERR))
+                       return -EIO;
+       }
+
+       return 0;
+}
+
 static int qcom_spi_read_last_cw(struct qcom_nand_controller *snandc,
                                 const struct spi_mem_op *op)
 {
@@ -569,11 +585,9 @@ static int qcom_spi_read_last_cw(struct qcom_nand_controller *snandc,
                return ret;
        }
 
-       qcom_nandc_dev_to_mem(snandc, true);
-       u32 flash = le32_to_cpu(snandc->reg_read_buf[0]);
-
-       if (flash & (FS_OP_ERR | FS_MPU_ERR))
-               return -EIO;
+       ret = qcom_spi_check_raw_flash_errors(snandc, 1);
+       if (ret)
+               return ret;
 
        bbpos = mtd->writesize - ecc_cfg->cw_size * (num_cw - 1);
 
@@ -654,22 +668,6 @@ static int qcom_spi_check_error(struct qcom_nand_controller *snandc, u8 *data_bu
        return 0;
 }
 
-static int qcom_spi_check_raw_flash_errors(struct qcom_nand_controller *snandc, int cw_cnt)
-{
-       int i;
-
-       qcom_nandc_dev_to_mem(snandc, true);
-
-       for (i = 0; i < cw_cnt; i++) {
-               u32 flash = le32_to_cpu(snandc->reg_read_buf[i]);
-
-               if (flash & (FS_OP_ERR | FS_MPU_ERR))
-                       return -EIO;
-       }
-
-       return 0;
-}
-
 static int qcom_spi_read_cw_raw(struct qcom_nand_controller *snandc, u8 *data_buf,
                                u8 *oob_buf, int cw)
 {