mirror of
https://github.com/raspberrypi/linux.git
synced 2026-01-04 18:27:36 +00:00
spi: spi-qpic-snand: reuse qcom_spi_check_raw_flash_errors()
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>
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user