Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp246181ybg; Thu, 11 Jun 2020 23:52:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEUmGvrFLkl5tPonzM4t49i/n5pW9NDpkBwy1JPWkLVssMg70ZPjcoaso/ytMJqnH8M9JL X-Received: by 2002:a17:906:1496:: with SMTP id x22mr11446307ejc.161.1591944740699; Thu, 11 Jun 2020 23:52:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591944740; cv=none; d=google.com; s=arc-20160816; b=oi+b//ffo6DS5Ti+iagDWPsQrL4P8PDBQbevd9w1UB7xL2HjHnQwIXSIPH9l4b/+VC KRjWeSWauoMlAKiFccZ+nMHhiWNIVwZ32HYByDR//+siqL94mL4EJx/umnj4E4zuY5up rjDnmNGs9vvjfSki9DYkEx3vTbxdFDOeXCOejn8C9mjSt1M5hPuwwqkZSpNSgZ0+IY0A AAfqq2oRF9boFHYTeiB8hxjDrlqwbbu80BotYZfn763ryW5yxpP8GM6eV4mE0G16et1B rG4Q/ghgMBbVUKtGlUZANwjXfRsdv3Tb1X9tsXArWS1fs1nEyXcWB9Hlw0j+ITXtcJV+ d3UQ== 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=oTg2YlSwJF5bN41HP0oLclc91lUCKEqxXz6UTy5ttSw=; b=PVzRAlIqye/LOATQqcgW0MHaI6u5seSf8cEWlxINrATGLx6MG/0uB2Cb6YAdViHJYe Zou0OH2a+eryGYdfGNVwfzqFPJqUfttQu+PwJFE//tgsQb0pKSi3I1ZSl/5FLEI3f+8x zLuukc4hWuUWxFDBY/yOy1KlGsV+KCPTz9LrSmdCJ4q7y5uCcjpcc7UxBxdswUTT0EtK YlifVIjZARKjXDGzPex3iIPkU2hUUn7vX0hUf9kozuwXtJgSzZg2gKLVIqKp+6IRnWoS 5meGVQKS0YY7vZenc5HkYZ6NE0uU8dQH+wwQQN4gz6kpgBJuzHy1mmJaj1WqOJ9t64VA XScg== 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 u10si3363029edp.574.2020.06.11.23.51.58; Thu, 11 Jun 2020 23:52:20 -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 S1726626AbgFLGuC (ORCPT + 99 others); Fri, 12 Jun 2020 02:50:02 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:29074 "EHLO alexa-out-sd-01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726300AbgFLGuB (ORCPT ); Fri, 12 Jun 2020 02:50:01 -0400 Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-01.qualcomm.com with ESMTP; 11 Jun 2020 23:50:00 -0700 Received: from sivaprak-linux.qualcomm.com ([10.201.3.202]) by ironmsg05-sd.qualcomm.com with ESMTP; 11 Jun 2020 23:49:57 -0700 Received: by sivaprak-linux.qualcomm.com (Postfix, from userid 459349) id 7EED821876; Fri, 12 Jun 2020 12:19:55 +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, architt@codeaurora.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Subject: [PATCH V3 1/2] mtd: rawnand: qcom: avoid write to unavailable register Date: Fri, 12 Jun 2020 12:19:48 +0530 Message-Id: <1591944589-14357-2-git-send-email-sivaprak@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1591944589-14357-1-git-send-email-sivaprak@codeaurora.org> References: <1591944589-14357-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 register writes to this register on devices which are based on qpic NAND controllers. Fixes: a0637834 (mtd: nand: qcom: support for IPQ4019 QPIC NANDcontroller) Fixes: dce84760 (mtd: nand: qcom: Support for IPQ8074 QPIC NAND controller) Cc: stable@vger.kernel.org Signed-off-by: Sivaprakash Murugesan --- [V3] * Addressed Miquel comments, added flag based on nand controller hw to avoid the register writes to specific ipq platforms drivers/mtd/nand/raw/qcom_nandc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c index f1daf33..e0c55bb 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); @@ -3029,18 +3032,21 @@ static int qcom_nandc_remove(struct platform_device *pdev) static const struct qcom_nandc_props ipq806x_nandc_props = { .ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT), .is_bam = false, + .is_qpic = false, .dev_cmd_reg_start = 0x0, }; 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