Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp3494548pxb; Tue, 7 Sep 2021 00:21:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwENoCuxm6g1nIx1S89rVG8krgF9rJ99ddQQAlYmCVql8SwglSaq0wa3ncpF/ThESQn7DW1 X-Received: by 2002:a6b:b20c:: with SMTP id b12mr13118824iof.145.1630999260832; Tue, 07 Sep 2021 00:21:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630999260; cv=none; d=google.com; s=arc-20160816; b=bvQzFvXt2iyfxM+c4YJbVn0NpNJNAEhtQxs7Of2K2BXJW5HMydKXCUFZkFjOXutN+y /31XEMoJXfNuHTnAz5jHYgMFqCZ3KWSVFahTuVVQo65mk/FDp9LEeVXgs5ZUIWt7k0w+ eKfw2DErhp4E8Yd+93PWnJcAG90u8auKgiR59NELQfwqnnjhcz3pE0pyP1p2SO7R2S5s VPvWV5wFxZsyITy3wZA4h3gwWmHKcI/oBLYC2zZK1QCxDuWKJdPlqVbAuuaCt8nXrAne ktOUjedUijzjRWOgW0Ry6sNIojlA0mVFZ7g7Gkx6D9SXldTfaAoWPHqznHAFik/UNZ0E /3Zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=YrBijwlv1FtjjWmiSDMM8fkNAv4JUVE2aNjsaGvhfwo=; b=fm8iJVsMxhabtxZzjmJcGsxL14a4E/va0fGyCgBZUoLmZUYxykDbKbeHFmkpFasFS6 T4mia7abWeaOe2G92gwnS8+qAwGHvfmQZ1ez+1IIfKaXsIyO2ZONnvfHfO+IedpInHzn 5NHGKp9F47VQrUMo6Howc9o257fnNLMxqGiSrELU1lbVdMXuFM58ssdsmfi/Yq/ZlKfQ Q5lVsLSQO93YJhNc0mXZcXCaFiPml8cwF4yfTILVmr8l7Loqe5ME+3cQ1R7nrlPQi0u6 dWbwXjwm1LCrTF44JzcyL9uRsW1uULSXoItTvD/K4NWEFETFaHL4s0R9umHqPTn1jxuN udjg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t44si6090964jal.14.2021.09.07.00.20.50; Tue, 07 Sep 2021 00:21:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236566AbhIGHHe (ORCPT + 99 others); Tue, 7 Sep 2021 03:07:34 -0400 Received: from alexa-out.qualcomm.com ([129.46.98.28]:5117 "EHLO alexa-out.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235480AbhIGHHV (ORCPT ); Tue, 7 Sep 2021 03:07:21 -0400 Received: from ironmsg-lv-alpha.qualcomm.com ([10.47.202.13]) by alexa-out.qualcomm.com with ESMTP; 07 Sep 2021 00:06:15 -0700 X-QCInternal: smtphost Received: from ironmsg02-blr.qualcomm.com ([10.86.208.131]) by ironmsg-lv-alpha.qualcomm.com with ESMTP/TLS/AES256-SHA; 07 Sep 2021 00:06:14 -0700 X-QCInternal: smtphost Received: from mdalam-linux.qualcomm.com ([10.201.2.71]) by ironmsg02-blr.qualcomm.com with ESMTP; 07 Sep 2021 12:36:02 +0530 Received: by mdalam-linux.qualcomm.com (Postfix, from userid 466583) id AC9D5222D3; Tue, 7 Sep 2021 12:36:01 +0530 (IST) From: Md Sadre Alam To: miquel.raynal@bootlin.com, mani@kernel.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: mdalam@codeaurora.org, sricharan@codeaurora.org, stable@kernel.org Subject: [PATCH V6] mtd: rawnand: qcom: Update code word value for raw read Date: Tue, 7 Sep 2021 12:35:57 +0530 Message-Id: <1630998357-1359-1-git-send-email-mdalam@codeaurora.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From QPIC V2 onwards there is a separate register to read last code word "QPIC_NAND_READ_LOCATION_LAST_CW_n". qcom_nandc_read_cw_raw() is used to read only one code word at a time. If we will configure number of code words to 1 in in QPIC_NAND_DEV0_CFG0 register then QPIC controller thinks its reading the last code word, since from QPIC V2 onwards we are having separate register to read the last code word, we have to configure "QPIC_NAND_READ_LOCATION_LAST_CW_n" register to fetch data from controller buffer to system memory. Fixes: 503ee5aad430 ("mtd: rawnand: qcom: update last code word register") Cc: stable@kernel.org Signed-off-by: Md Sadre Alam --- Changes in V6: * Incorporated "commit hash" comment from Miquèl * updated commit hash to 12 digits in Fixes tag. Changes in V5: * Incorporated "hash commit" comment from Mani. * Updated commit hash Changes in V4: * Incorporated "Change log" comment from Miquèl * Updated change log Changes in V3: * Incorporated "Fixes tags are missing" comment from Miquèl * Added Fixes tag Fixes:503ee5aa ("mtd: rawnand: qcom: update last code word register") Changes in V2: * Incorporated "stable tags are missing" comment from Miquèl * Added stable tags Cc:stable@kernel.org drivers/mtd/nand/raw/qcom_nandc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c index ef0bade..04e6f7b 100644 --- a/drivers/mtd/nand/raw/qcom_nandc.c +++ b/drivers/mtd/nand/raw/qcom_nandc.c @@ -1676,13 +1676,17 @@ qcom_nandc_read_cw_raw(struct mtd_info *mtd, struct nand_chip *chip, struct nand_ecc_ctrl *ecc = &chip->ecc; int data_size1, data_size2, oob_size1, oob_size2; int ret, reg_off = FLASH_BUF_ACC, read_loc = 0; + int raw_cw = cw; nand_read_page_op(chip, page, 0, NULL, 0); host->use_ecc = false; + if (nandc->props->qpic_v2) + raw_cw = ecc->steps - 1; + clear_bam_transaction(nandc); set_address(host, host->cw_size * cw, page); - update_rw_regs(host, 1, true, cw); + update_rw_regs(host, 1, true, raw_cw); config_nand_page_read(chip); data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); @@ -1711,7 +1715,7 @@ qcom_nandc_read_cw_raw(struct mtd_info *mtd, struct nand_chip *chip, nandc_set_read_loc(chip, cw, 3, read_loc, oob_size2, 1); } - config_nand_cw_read(chip, false, cw); + config_nand_cw_read(chip, false, raw_cw); read_data_dma(nandc, reg_off, data_buf, data_size1, 0); reg_off += data_size1; -- 2.7.4