Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp278271ybg; Fri, 12 Jun 2020 01:00:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/CYAHnr/t3khviEwHJNJW8LPh2EsokXd8l1cJzywvrC/QtjZn+sKxTL+YuB/Sz+hj3Cse X-Received: by 2002:a05:6402:17af:: with SMTP id j15mr10276001edy.67.1591948841566; Fri, 12 Jun 2020 01:00:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591948841; cv=none; d=google.com; s=arc-20160816; b=0kofhQi8lWIIBr2/BtygiMx1AcekkBwp08zPbpvIdVus5Q3oN7QCfLZ6fiJQ7TO7W6 Lmp67l6dS1DoT+EjT3x5SwW44QM2e4cDn+vpB7vFudKWKGJdL9QIvng0y3fuuL9eqZbs OVKljRsLtjuIONE/UuiN/J2HPPt4/gsPGw7JDllqL7v1B3IX0hVXXPGDzjJ++D8vpQIw 5Xflc2R8jfE7y9U+C9zWEJBvU7DgEHFrDlDlKEm8FlwUKkJ8h04F2opr5xCC8x+UbhWf A7XrrOKXVFw+CG9/GnjIRdtrswvuMeyEzsI1ajgB764fRx0cfFzoCDwBkXBLxwzd8f9/ dtvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=ITl6NgMh9hvDmmEWzxP7clleF3CgFCgBcypr7k04QFs=; b=jQOwETxsgV5BPNKS9bTkA6hN4ExzH4tXqckbiqTD9eL5ZAkHOmRXjZTZtWB1seHofZ IzhiHw4q6GVqP09YOiGhgHHOsio22cLu6gKd5bF409k9sp9gWUfdbu62SlkNxnJCNcMG epIGeQXxLs/MjQeFpymoeu+mqn6sCPSqx7jkoDGlkah9ic1wRna2IiZY2dTJC3hgN6PL x9f3WbKFYJnq8q++Ul2RMAW2QUm0+M+7o8TCSfc6Rvy/iBb7kZyQz4ASH520/HZejlPb /uPO/3QB/4I0OfmO9jlXVWxqsti9TDS29MEiSFeqMKDvpuBN5nLRYrQv9ow8C4JKSlsn eo+Q== 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 e5si3039124edk.409.2020.06.12.01.00.18; Fri, 12 Jun 2020 01:00:41 -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 S1726335AbgFLH61 (ORCPT + 99 others); Fri, 12 Jun 2020 03:58:27 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:18982 "EHLO alexa-out-sd-01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726262AbgFLH61 (ORCPT ); Fri, 12 Jun 2020 03:58:27 -0400 Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-01.qualcomm.com with ESMTP; 12 Jun 2020 00:58:26 -0700 Received: from sivaprak-linux.qualcomm.com ([10.201.3.202]) by ironmsg05-sd.qualcomm.com with ESMTP; 12 Jun 2020 00:58:23 -0700 Received: by sivaprak-linux.qualcomm.com (Postfix, from userid 459349) id BFDF5217CE; Fri, 12 Jun 2020 13:28:21 +0530 (IST) From: Sivaprakash Murugesan To: miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, peter.ujfalusi@ti.com, sivaprak@codeaurora.org, boris.brezillon@collabora.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Subject: [PATCH V4 1/2] mtd: rawnand: qcom: avoid write to unavailable register Date: Fri, 12 Jun 2020 13:28:15 +0530 Message-Id: <1591948696-16015-2-git-send-email-sivaprak@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1591948696-16015-1-git-send-email-sivaprak@codeaurora.org> References: <1591948696-16015-1-git-send-email-sivaprak@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SFLASHC_BURST_CFG is only available on older ipq nand platforms, this register has been removed when the NAND controller is moved as part of qpic controller. Avoid writing this register on devices which are based on qpic NAND controller. Fixes: dce84760 (mtd: nand: qcom: Support for IPQ8074 QPIC NAND controller) Cc: stable@vger.kernel.org Signed-off-by: Sivaprakash Murugesan --- drivers/mtd/nand/raw/qcom_nandc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c index f1daf33..78b5f21 100644 --- a/drivers/mtd/nand/raw/qcom_nandc.c +++ b/drivers/mtd/nand/raw/qcom_nandc.c @@ -459,11 +459,13 @@ struct qcom_nand_host { * among different NAND controllers. * @ecc_modes - ecc mode for NAND * @is_bam - whether NAND controller is using BAM + * @is_qpic - whether NAND CTRL is part of qpic IP * @dev_cmd_reg_start - NAND_DEV_CMD_* registers starting offset */ struct qcom_nandc_props { u32 ecc_modes; bool is_bam; + bool is_qpic; u32 dev_cmd_reg_start; }; @@ -2774,7 +2776,8 @@ static int qcom_nandc_setup(struct qcom_nand_controller *nandc) u32 nand_ctrl; /* kill onenand */ - nandc_write(nandc, SFLASHC_BURST_CFG, 0); + if (!nandc->props->is_qpic) + nandc_write(nandc, SFLASHC_BURST_CFG, 0); nandc_write(nandc, dev_cmd_reg_addr(nandc, NAND_DEV_CMD_VLD), NAND_DEV_CMD_VLD_VAL); @@ -3035,12 +3038,14 @@ static const struct qcom_nandc_props ipq806x_nandc_props = { static const struct qcom_nandc_props ipq4019_nandc_props = { .ecc_modes = (ECC_BCH_4BIT | ECC_BCH_8BIT), .is_bam = true, + .is_qpic = true, .dev_cmd_reg_start = 0x0, }; static const struct qcom_nandc_props ipq8074_nandc_props = { .ecc_modes = (ECC_BCH_4BIT | ECC_BCH_8BIT), .is_bam = true, + .is_qpic = true, .dev_cmd_reg_start = 0x7000, }; -- 2.7.4