From 3bd7261e676b211d8865b931fb318e01d3b72a12 Mon Sep 17 00:00:00 2001 From: Sarthak Garg Date: Mon, 26 Apr 2021 15:37:59 +0530 Subject: [PATCH] mtd: msm_qpic_nand: Enable Pagescope read feature and reset status_desc Enable Pagescope read feature and reset status_desc variable upon every page read. This makes status_desc variable points to correct memory for status register values for every page count. Change-Id: Ic9b5f81de11ca5a249302570bf4b7f38d96b4e38 Signed-off-by: Sarthak Garg --- drivers/mtd/devices/msm_qpic_nand.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/devices/msm_qpic_nand.c b/drivers/mtd/devices/msm_qpic_nand.c index eb9540ce8786..fee7296a8efc 100644 --- a/drivers/mtd/devices/msm_qpic_nand.c +++ b/drivers/mtd/devices/msm_qpic_nand.c @@ -2018,14 +2018,14 @@ static int msm_nand_read_pagescope(struct mtd_info *mtd, loff_t from, } cmd_list = (struct msm_nand_rw_cmd_desc *)&dma_buffer->cmd_list; - status_desc = - (struct msm_nand_read_status_desc *)&dma_buffer->result[0]; ecc_capability = flash_dev->ecc_capability; while (rw_params.page_count-- > 0) { uint32_t cw_desc_cnt = 1; struct sps_command_element *curr_ce, *start_ce; + status_desc = + (struct msm_nand_read_status_desc *)&dma_buffer->result[0]; erased_page = false; data.addr0 = (rw_params.page << 16) | rw_params.oob_col; data.addr1 = (rw_params.page >> 16) & 0xff; @@ -4517,6 +4517,7 @@ static int msm_nand_probe(struct platform_device *pdev) info->nand_chip.qpic_min_version = qpic_version.qpic_minor; if (info->nand_chip.qpic_version >= 2 && info->nand_chip.qpic_min_version >= 1) { + info->nand_chip.caps = MSM_NAND_CAP_PAGE_SCOPE_READ; mutex_lock(&info->lock); err = msm_nand_get_device(info->nand_chip.dev); if (err) {