From patchwork Wed Apr 12 06:16:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arseniy Krasnov X-Patchwork-Id: 82274 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp107705vqo; Tue, 11 Apr 2023 23:33:36 -0700 (PDT) X-Google-Smtp-Source: AKy350Z1RUCfJDaX0sduAcE9/YmUSZn6Y+vSJctfBSc9CUqZ7VpftQkhNI0Gnvn+qcNQM7iQd6gT X-Received: by 2002:a17:907:75e5:b0:94c:ea3b:27a with SMTP id jz5-20020a17090775e500b0094cea3b027amr995622ejc.16.1681281216212; Tue, 11 Apr 2023 23:33:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681281216; cv=none; d=google.com; s=arc-20160816; b=ev+6OkZPNM2G06YX+MM4we9L/5BD22y+B0Mq2tgyjeAhZodY18ViPY7IW6n5qGnYk8 NjJ9PG8sGmVyjy2IBBUrtknzR707v+l0o1cn2jLNnjOHJbYNb1cjYLhaoVcuaE4DgMOC bDDERAaznDanxttLsFHSr9Z1+fy8GZHSOi65eFIHhjVYpLhG7t+CNN15LUdxxWsyptEq qD0o7mg0Hkclnts3Ilh6Q4x7OPELxegwT1eDLRt6jlZTFktTxoL8uSQ3KXjVHc2WFR1P Yd/m1sDbo71nn+YomMB/yNUWEPDTWx5pEGOgS9Y0vkClY7DuUuqr8V3j746l9h/B7zio qqYQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=HsWlt2hUmy9E6I75trQqDK7lPoanqWGp8KNo6fzJ1jI=; b=z87UX0oZ8iGUXvofYL6ewHw4qB/lX+kQraVeIVO1QZLesIkGJz1LKYbgXuyaMkcqp0 hjxTD9upMT1tQO2vv4bfoakSI+A5fI6xwd6NQknUtWq+exgfyIOTPtQHgkZ3Q57PoPIP KQdl3XTkQlwRUEL9QHnWYIkH/hN95Kv3TmtsEexp9OZp4nNhmaJ5f2uodqlbKFDeWs5P iPOxJMOGXeQ7ME6IFQHbCjd+rQ9tEuHTjfIBKltA+/bH0n1C0VL5A7do1hyYtjVvhtvk gSGDrcZa8g9J7KorrguVydd66uMqNfvCVMEmxeZOUpcFIZMNEOnBxEyz3QjzPe4ourZ3 vy9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=YFdUhvFy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p20-20020a17090628d400b009314f2c4e80si7771032ejd.873.2023.04.11.23.33.11; Tue, 11 Apr 2023 23:33:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=YFdUhvFy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229533AbjDLGVY (ORCPT + 99 others); Wed, 12 Apr 2023 02:21:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41216 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229451AbjDLGVX (ORCPT ); Wed, 12 Apr 2023 02:21:23 -0400 Received: from mx.sberdevices.ru (mx.sberdevices.ru [45.89.227.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1394129 for ; Tue, 11 Apr 2023 23:21:18 -0700 (PDT) Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id 42AA65FD5F; Wed, 12 Apr 2023 09:21:16 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1681280476; bh=HsWlt2hUmy9E6I75trQqDK7lPoanqWGp8KNo6fzJ1jI=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=YFdUhvFyHk5aOUP3MDGRfbzpNbVzBXqw1nuttiGdWrLiiv+IU1qCK7DnsUplTPcSl LgNpg8Eg83npIAUsxAylbmFczuAE9E/RpIgLC5T6yAxe/ylu9LfUu/VM5vw45vGwqP +t5cnuXYfDhtwuiYeXHwJrRqJ3lPSYOMmacBhS/pWxLyu9GgKp4RGtbudAop1uEoL0 oFkGxukYEvbEKHyEUyKSxiliB/vsBdo1r0SmY7fXiXmKaPlqJ/apTEpTZkxfYlTapR DuhO8FcYiq7d2i2aAP5P0PI//bGrv0AKmVV601OLbiWSYyM64NVBHVwfX1jHbgFlV5 ILf4QKqfa71/A== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Wed, 12 Apr 2023 09:21:16 +0300 (MSK) From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Yixun Lan , Jianxin Pan CC: , , Arseniy Krasnov , , , , Subject: [PATCH v1 1/5] mtd: rawnand: meson: fix NAND access for read/write Date: Wed, 12 Apr 2023 09:16:55 +0300 Message-ID: <20230412061700.1492474-2-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 X-Originating-IP: [172.16.1.6] X-ClientProxiedBy: S-MS-EXCH01.sberdevices.ru (172.16.1.4) To S-MS-EXCH01.sberdevices.ru (172.16.1.4) X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2023/04/12 04:12:00 #21090163 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762951132562850349?= X-GMAIL-MSGID: =?utf-8?q?1762951132562850349?= This fixes read/write functionality. New command sequences were ported from old vendor's driver. Without this patch driver works unstable. This change is tested with 'nanddump'/'nandwrite' utilities and mounting JFFS2 filesystem on AXG family (A113X SoC). Fixes: 8fae856c5350 ("mtd: rawnand: meson: add support for Amlogic NAND flash controller") Signed-off-by: Arseniy Krasnov --- drivers/mtd/nand/raw/meson_nand.c | 116 ++++++++++++++++++++++++++---- 1 file changed, 101 insertions(+), 15 deletions(-) diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c index 074e14225c06..256c37c76526 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -26,6 +26,7 @@ #define NFC_CMD_IDLE (0xc << 14) #define NFC_CMD_CLE (0x5 << 14) #define NFC_CMD_ALE (0x6 << 14) +#define NFC_CMD_DRD (0x8 << 14) #define NFC_CMD_ADL ((0 << 16) | (3 << 20)) #define NFC_CMD_ADH ((1 << 16) | (3 << 20)) #define NFC_CMD_AIL ((2 << 16) | (3 << 20)) @@ -84,6 +85,7 @@ #define DMA_BUSY_TIMEOUT 0x100000 #define CMD_FIFO_EMPTY_TIMEOUT 1000 +#define DEVICE_READY_TIMEOUT 1000 #define MAX_CE_NUM 2 @@ -255,8 +257,26 @@ static void meson_nfc_select_chip(struct nand_chip *nand, int chip) } } +static int meson_nfc_wait_cmd_finish(struct meson_nfc *nfc, + unsigned int timeout_ms) +{ + u32 cmd_size = 0; + int ret; + + /* wait cmd fifo is empty */ + ret = readl_relaxed_poll_timeout(nfc->reg_base + NFC_REG_CMD, cmd_size, + !NFC_CMD_GET_SIZE(cmd_size), + 10, timeout_ms * 1000); + if (ret) + dev_err(nfc->dev, "wait for empty CMD FIFO timed out\n"); + + return ret; +} + static void meson_nfc_cmd_idle(struct meson_nfc *nfc, u32 time) { + meson_nfc_wait_cmd_finish(nfc, 0); + writel(nfc->param.chip_select | NFC_CMD_IDLE | (time & 0x3ff), nfc->reg_base + NFC_REG_CMD); } @@ -308,23 +328,9 @@ static void meson_nfc_drain_cmd(struct meson_nfc *nfc) */ meson_nfc_cmd_idle(nfc, 0); meson_nfc_cmd_idle(nfc, 0); + meson_nfc_wait_cmd_finish(nfc, 1000); } -static int meson_nfc_wait_cmd_finish(struct meson_nfc *nfc, - unsigned int timeout_ms) -{ - u32 cmd_size = 0; - int ret; - - /* wait cmd fifo is empty */ - ret = readl_relaxed_poll_timeout(nfc->reg_base + NFC_REG_CMD, cmd_size, - !NFC_CMD_GET_SIZE(cmd_size), - 10, timeout_ms * 1000); - if (ret) - dev_err(nfc->dev, "wait for empty CMD FIFO time out\n"); - - return ret; -} static int meson_nfc_wait_dma_finish(struct meson_nfc *nfc) { @@ -631,6 +637,48 @@ static int meson_nfc_rw_cmd_prepare_and_execute(struct nand_chip *nand, return 0; } +static uint8_t meson_nfc_read_byte(struct nand_chip *nand) +{ + struct meson_nfc *nfc = nand_get_controller_data(nand); + + writel(NFC_CMD_DRD, nfc->reg_base + NFC_REG_CMD); + meson_nfc_cmd_idle(nfc, nfc->timing.twb); + meson_nfc_drain_cmd(nfc); + + return readl(nfc->reg_base + NFC_REG_BUF); +} + +static int meson_nfc_wait_dev_ready(struct nand_chip *nand) +{ + struct meson_nfc *nfc = nand_get_controller_data(nand); + u32 cs = nfc->param.chip_select; + unsigned long cnt = 0; + + meson_nfc_drain_cmd(nfc); + + writel(cs | NFC_CMD_CLE | NAND_CMD_STATUS, nfc->reg_base + NFC_REG_CMD); + + /* 10 ms. */ + while (cnt < DEVICE_READY_TIMEOUT) { + uint8_t status; + + status = meson_nfc_read_byte(nand); + + if (status & NAND_STATUS_READY) + break; + + usleep_range(10, 11); + cnt++; + } + + if (cnt == DEVICE_READY_TIMEOUT) { + dev_err(nfc->dev, "device ready timeout\n"); + return -ETIMEDOUT; + } + + return 0; +} + static int meson_nfc_write_page_sub(struct nand_chip *nand, int page, int raw) { @@ -643,6 +691,10 @@ static int meson_nfc_write_page_sub(struct nand_chip *nand, u32 cmd; int ret; + ret = meson_nfc_wait_dev_ready(nand); + if (ret) + return ret; + meson_nfc_select_chip(nand, nand->cur_cs); data_len = mtd->writesize + mtd->oobsize; @@ -667,12 +719,20 @@ static int meson_nfc_write_page_sub(struct nand_chip *nand, NFC_CMD_SCRAMBLER_DISABLE); } + ret = meson_nfc_wait_dma_finish(nfc); + if (ret) + return ret; + cmd = nfc->param.chip_select | NFC_CMD_CLE | NAND_CMD_PAGEPROG; writel(cmd, nfc->reg_base + NFC_REG_CMD); meson_nfc_queue_rb(nfc, PSEC_TO_MSEC(sdr->tPROG_max)); meson_nfc_dma_buffer_release(nand, data_len, info_len, DMA_TO_DEVICE); + ret = meson_nfc_wait_dev_ready(nand); + if (ret) + return ret; + return ret; } @@ -720,6 +780,21 @@ static void meson_nfc_check_ecc_pages_valid(struct meson_nfc *nfc, } while (!ret); } +static inline int meson_nfc_send_read(struct nand_chip *nand) +{ + struct meson_nfc *nfc = nand_get_controller_data(nand); + u32 cs = nfc->param.chip_select; + int ret; + + ret = meson_nfc_wait_dev_ready(nand); + if (ret) + return ret; + + writel(cs | NFC_CMD_CLE | NAND_CMD_READ0, nfc->reg_base + NFC_REG_CMD); + + return 0; +} + static int meson_nfc_read_page_sub(struct nand_chip *nand, int page, int raw) { @@ -734,10 +809,18 @@ static int meson_nfc_read_page_sub(struct nand_chip *nand, data_len = mtd->writesize + mtd->oobsize; info_len = nand->ecc.steps * PER_INFO_BYTE; + ret = meson_nfc_wait_dev_ready(nand); + if (ret) + return ret; + ret = meson_nfc_rw_cmd_prepare_and_execute(nand, page, DIRREAD); if (ret) return ret; + ret = meson_nfc_send_read(nand); + if (ret) + return ret; + ret = meson_nfc_dma_buffer_setup(nand, meson_chip->data_buf, data_len, meson_chip->info_buf, info_len, DMA_FROM_DEVICE); @@ -754,6 +837,9 @@ static int meson_nfc_read_page_sub(struct nand_chip *nand, } ret = meson_nfc_wait_dma_finish(nfc); + if (ret) + return ret; + meson_nfc_check_ecc_pages_valid(nfc, nand, raw); meson_nfc_dma_buffer_release(nand, data_len, info_len, DMA_FROM_DEVICE); From patchwork Wed Apr 12 06:16:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arseniy Krasnov X-Patchwork-Id: 82273 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp105593vqo; Tue, 11 Apr 2023 23:29:33 -0700 (PDT) X-Google-Smtp-Source: AKy350YnSkEfDwOCvbnPfbMt7R9K7rinsJeIpcm8cCB8BOww4tnzyxxK49g3cYpQevUPncqzvQMe X-Received: by 2002:a17:906:fb8c:b0:92f:495b:bc7c with SMTP id lr12-20020a170906fb8c00b0092f495bbc7cmr1597056ejb.23.1681280972976; Tue, 11 Apr 2023 23:29:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681280972; cv=none; d=google.com; s=arc-20160816; b=aCd3Tt2qIG825VFdF0XcWpmXOFljpAdXRm5WqxSvIzkBkQ4zIHJFP614JEtlPswcwF PmFE4PbEzeVnUHYK3JHagL3fz4+KaEKWEThfiTINEqiEAQQplPovqCNcOrS2yLewYWqk YD/k9rx03hzlmLLW4m3dlAZXNCYfM5xlSQ3tI1eGT/oMudZykfaqVmQLiIbBmPWQVBaN mTkPloAxloRt7gK+wUfdu4e40s6L8KvBRMv9mDcoVFvPYw8LcSkEStd6FvO7BPHVL+4z 2am9gE36+7xp/u65lloehaaJ7tkRDUG/ofKEB1eKYuKcH7d0CtwIb3r0Gu44H8SNp5wc K02w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Y/eHmQmhsT9LVvYGckzElMjsdyU8uNoVK685QSt2va4=; b=OsBnnELyTI3NxM83NkgCPZevgK6Lhq8eX6OqWEhlb+fLRx2F+GhXLppqRgZpIaMK1N GrWaPqD/wEZizrGO8wCO8T5cJ+OzWmW2GVSlYf/9hWwXBLBt2DduiaTReICzSTPujAfP qXt0+ldK7W2lHRnGmQnwSqxKBYWzQMpY4bPzIy6mzzolhwQpc5xEQmqkpY+Lsd7q7gZw MX3gUZJItW805nz5UTwfSqEEOTHBZssttFHkUhTRdH1YmCdQi5Vcu9UPM+dkksgaGWQo qFYEpZGPyDpjD9zVoW/vlWhAPZdiyEW5iaLDKIuetBf79g3qqu6QBd4fF3S8Nlce3xTx ET/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=QJZ3f3x5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t1-20020a170906268100b00946ee4b9087si1036458ejc.513.2023.04.11.23.29.09; Tue, 11 Apr 2023 23:29:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=QJZ3f3x5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229679AbjDLGV3 (ORCPT + 99 others); Wed, 12 Apr 2023 02:21:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229451AbjDLGV0 (ORCPT ); Wed, 12 Apr 2023 02:21:26 -0400 Received: from mx.sberdevices.ru (mx.sberdevices.ru [45.89.227.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FE181A7 for ; Tue, 11 Apr 2023 23:21:20 -0700 (PDT) Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id B13835FD61; Wed, 12 Apr 2023 09:21:18 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1681280478; bh=Y/eHmQmhsT9LVvYGckzElMjsdyU8uNoVK685QSt2va4=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=QJZ3f3x5ssA86aHvq/VV7bMRBW5rB4ErigDHPJ2d6T+cJ8hv+Z+nkz3Ogu+NXHtS0 rTn0nr2hmkY79UMmCHF5cwaeh5Q2ZErJ/HrPaw40dlDbYqjn+2BiPStVG3Wn0Q+P7W d6LWPZvfUSCSCV9EzSMUbDhTFHxJbDtFlNYlqZK4QhHRzoJrHXLlc9htE0wlVJqByD MsCv3RScLlUh+PMCosHsnL2L06PLiQ+vFbN1KY5xPi4Ys7937k8U030/UsG0M2gEND VZd6kAU0eP81v+Njuoqma19DrpV4UD4gqucJVdlgwb+8Euc+2hP/2LkzWHKsQLwUIE LKrZ9JtHlQ/Lw== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Wed, 12 Apr 2023 09:21:18 +0300 (MSK) From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Yixun Lan , Jianxin Pan CC: , , Arseniy Krasnov , , , , Subject: [PATCH v1 2/5] mtd: rawnand: meson: replace GENMASK() macro with define Date: Wed, 12 Apr 2023 09:16:56 +0300 Message-ID: <20230412061700.1492474-3-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 X-Originating-IP: [172.16.1.6] X-ClientProxiedBy: S-MS-EXCH01.sberdevices.ru (172.16.1.4) To S-MS-EXCH01.sberdevices.ru (172.16.1.4) X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2023/04/12 04:12:00 #21090163 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762950877709480365?= X-GMAIL-MSGID: =?utf-8?q?1762950877709480365?= Signed-off-by: Arseniy Krasnov --- drivers/mtd/nand/raw/meson_nand.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c index 256c37c76526..45b53d420aed 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -110,6 +110,8 @@ #define PER_INFO_BYTE 8 +#define NFC_CMD_RAW_LEN (GENMASK(13, 0)) + struct meson_nfc_nand_chip { struct list_head node; struct nand_chip nand; @@ -300,7 +302,7 @@ static void meson_nfc_cmd_access(struct nand_chip *nand, int raw, bool dir, if (raw) { len = mtd->writesize + mtd->oobsize; - cmd = (len & GENMASK(13, 0)) | scrambler | DMA_DIR(dir); + cmd = (len & NFC_CMD_RAW_LEN) | scrambler | DMA_DIR(dir); writel(cmd, nfc->reg_base + NFC_REG_CMD); return; } @@ -550,7 +552,7 @@ static int meson_nfc_read_buf(struct nand_chip *nand, u8 *buf, int len) if (ret) goto out; - cmd = NFC_CMD_N2M | (len & GENMASK(13, 0)); + cmd = NFC_CMD_N2M | (len & NFC_CMD_RAW_LEN); writel(cmd, nfc->reg_base + NFC_REG_CMD); meson_nfc_drain_cmd(nfc); @@ -574,7 +576,7 @@ static int meson_nfc_write_buf(struct nand_chip *nand, u8 *buf, int len) if (ret) return ret; - cmd = NFC_CMD_M2N | (len & GENMASK(13, 0)); + cmd = NFC_CMD_M2N | (len & NFC_CMD_RAW_LEN); writel(cmd, nfc->reg_base + NFC_REG_CMD); meson_nfc_drain_cmd(nfc); From patchwork Wed Apr 12 06:16:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arseniy Krasnov X-Patchwork-Id: 82277 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp109688vqo; Tue, 11 Apr 2023 23:38:36 -0700 (PDT) X-Google-Smtp-Source: AKy350abqSokx6fFwiKptdGIeIR0b3JtL2v993jbdndLIYcc+2G9Fi6UIEhKAuMBRkl9vgMqWPUr X-Received: by 2002:a17:902:ecc6:b0:1a1:b528:9bea with SMTP id a6-20020a170902ecc600b001a1b5289beamr23164059plh.50.1681281516168; Tue, 11 Apr 2023 23:38:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681281516; cv=none; d=google.com; s=arc-20160816; b=ajfBe2oQOV//IAOio/B8JFk+o6HmNG9gNi+oMLWgvwgujxizRlo6nLgdpiQMtXiusM mp95cMeIdUzCPBNaaJzidjhBfeAAdp1TngFb/gSulwezKkLwaSF7cXPenEsaq1wxzTVD f9B1jVX6q/sxbYJci7Umxi2YUJ8moBlLc2VcmJhdJoXgwChIVTmicjwwQomEzkxnZJcj eLEL1sc0eNXXn18qsa0EzKSHrum75U4E+63oRUR4mDQYkBKUlSgGt62Sauwmv8FWxhaj 0/NOh/2MnxcgU7uVXIVJeNBeMQQuG57aiPOFwPbkD/bnSHZnoFidS/uj61kBnImw4AdT JeOQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ijR0GjfEvDOCR18/yaVWHDk9s/uQwtd45e8HbVoRBEQ=; b=lw5TcEdJui2jgr0nU0Itwk/V1LN7vZIzh+suAUtrWUnyAnlBIO6aH2XkeWGOkJM8WS LmG4dWZyKjiNX0Fl1ftByljsIOfLgN36Z6HrPOr4QgNEHIe8TeBfWzQt36tK/s805wP9 wnMVEnjNDjZYkLEYPasbSdDgo1/lG7pM06c0W7W1R2JOT8z7Us53TAmWIu4nDSqBEu7L lvEOuphI9l7adu3q1scGE0/J1MWBMvTqpeFV33uVyc9EFC23/3EcbiJC7yeRnDKb4CWO I6vg9qJLyM+DVhn2pAggPyCf1FwNOR+1DRYBuwK2LzLYq3Y190Rkah1soj8LuBjbhfu1 EmIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=PfZzkCq9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v202-20020a6361d3000000b0051b2893b8c9si2087950pgb.442.2023.04.11.23.38.24; Tue, 11 Apr 2023 23:38:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=PfZzkCq9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229671AbjDLGVb (ORCPT + 99 others); Wed, 12 Apr 2023 02:21:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229574AbjDLGV0 (ORCPT ); Wed, 12 Apr 2023 02:21:26 -0400 Received: from mx.sberdevices.ru (mx.sberdevices.ru [45.89.227.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9CB6E49 for ; Tue, 11 Apr 2023 23:21:22 -0700 (PDT) Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id 0E3E35FD62; Wed, 12 Apr 2023 09:21:21 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1681280481; bh=ijR0GjfEvDOCR18/yaVWHDk9s/uQwtd45e8HbVoRBEQ=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=PfZzkCq9CfP69XL505bFICG6fQTHQzkN70Rkt6pEOLy6eMuNbijDMoHHDAOY49mQo q1cXnKYiwWKg2qrhAHi2oC4sHDDazFy2C7SO+2qlfiiuBMjh7uJqfRu1jI+84xxHF3 RF4PLF+/2LCXHbjA6gFaB408oiHijSXmao+vbdqEvGulBHdb/RSVLuv54sEjRLZ9Lv tw8a/fB/sM9YPQQbl/x2Q0HNBBDLq0gNraT/NUC8T+NVAmscMoSkGh/ZWaCsZurxau CQBrljvgymE+ZEguk0nVtlfO62vqMQIdoETUXJR+hQI4RahO7T1cBjLn0uwEbsp9Fu ix43OXeg9E9Wg== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Wed, 12 Apr 2023 09:21:21 +0300 (MSK) From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Yixun Lan , Jianxin Pan CC: , , Arseniy Krasnov , , , , Subject: [PATCH v1 3/5] mtd: rawnand: meson: check buffer length Date: Wed, 12 Apr 2023 09:16:57 +0300 Message-ID: <20230412061700.1492474-4-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 X-Originating-IP: [172.16.1.6] X-ClientProxiedBy: S-MS-EXCH01.sberdevices.ru (172.16.1.4) To S-MS-EXCH01.sberdevices.ru (172.16.1.4) X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2023/04/12 04:12:00 #21090163 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762951447199363204?= X-GMAIL-MSGID: =?utf-8?q?1762951447199363204?= With this chip, buffer length is limited by hardware, so check it before command execution to avoid length trim. Signed-off-by: Arseniy Krasnov --- drivers/mtd/nand/raw/meson_nand.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c index 45b53d420aed..f84a10238e4d 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -543,6 +543,9 @@ static int meson_nfc_read_buf(struct nand_chip *nand, u8 *buf, int len) u32 cmd; u8 *info; + if (len > NFC_CMD_RAW_LEN) + return -EINVAL; + info = kzalloc(PER_INFO_BYTE, GFP_KERNEL); if (!info) return -ENOMEM; @@ -571,6 +574,9 @@ static int meson_nfc_write_buf(struct nand_chip *nand, u8 *buf, int len) int ret = 0; u32 cmd; + if (len > NFC_CMD_RAW_LEN) + return -EINVAL; + ret = meson_nfc_dma_buffer_setup(nand, buf, len, NULL, 0, DMA_TO_DEVICE); if (ret) @@ -1269,6 +1275,7 @@ static int meson_nand_attach_chip(struct nand_chip *nand) struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); struct mtd_info *mtd = nand_to_mtd(nand); int nsectors = mtd->writesize / 1024; + int raw_writesize; int ret; if (!mtd->name) { @@ -1280,6 +1287,13 @@ static int meson_nand_attach_chip(struct nand_chip *nand) return -ENOMEM; } + raw_writesize = mtd->writesize + mtd->oobsize; + if (raw_writesize > NFC_CMD_RAW_LEN) { + dev_err(nfc->dev, "too big write size in raw mode: %d > %ld\n", + raw_writesize, NFC_CMD_RAW_LEN); + return -EINVAL; + } + if (nand->bbt_options & NAND_BBT_USE_FLASH) nand->bbt_options |= NAND_BBT_NO_OOB; From patchwork Wed Apr 12 06:16:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arseniy Krasnov X-Patchwork-Id: 82272 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp105158vqo; Tue, 11 Apr 2023 23:28:23 -0700 (PDT) X-Google-Smtp-Source: AKy350bCfSQgv/Vb0eHEb0L/Srl1cg2mIbWv0BeM7d8LeVuGKZtKgUTGULSzVSj25h+1DVOf1kPw X-Received: by 2002:a17:907:3e99:b0:93d:425a:b935 with SMTP id hs25-20020a1709073e9900b0093d425ab935mr16499872ejc.25.1681280902995; Tue, 11 Apr 2023 23:28:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681280902; cv=none; d=google.com; s=arc-20160816; b=dtK+jgwf91NiiDDvgUUYQFPFZEK/EFVzmRvDdhC77MeQSF7pQPDlAviof3NRZYYnUa 1cGPyD2+ooDhzdZseS1VXRbu1EiLtyWbRJFRFbiz6scbrGbDcvTUs/m5z+LfbYiB7y15 W6Z8FXZVJfOr2HZkqBT+I+vIsemLzOWKp2SvcjNy0RRXSyTcG75d2yW9cH136TbfQrKr MDBHAeiRIVW+jtYEyGaOTIczmBD2Am9QLa5AMgRqG2FJ6cxLhRQyiSJwmgVh/K+f3s5N ZYpSYCHi6sLhcUgySlMdneyyXsnjOFeu5mVb7A+537KhnZ5Ohy5ijEicnIq88dLbnKvb /a8w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=yOrNA4RDuoM2vY5YhSP/eGA0DmXdgsqQqlqaL/M6BtI=; b=Tccole1NhfZhwRIAbalGnndBE/4kvUBQihfR+uMOMcQ+tnta82taOX3lBX4mPUkDBK A7P+Nu+IrX6fAJaN4UlkaR/epiJ2zlfw7ZOErwghoXgq6joyD58W+I4rits05oPyOLXk nCt0nxdg0mAiF+gcRB2drsvbO01b3mFMeYtiCht6ahAJR5b5shmR5eWBFGMafY9QdCHp 2xLTUytDAaqRAPyxSWDJc9DrInneVSQHOE688O+ATnpVeorXajuymv2bJfuawuU4KWOy LR6tLIHLcBXQ81QZEOxkBG/CtL86UsUPfbHCWhEGqH5LN0vT2i4x3LZ9OWH7sZaBQOPk CajQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=SmeasOpR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id vw12-20020a170907a70c00b00934e42a80a9si3864909ejc.3.2023.04.11.23.27.59; Tue, 11 Apr 2023 23:28:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=SmeasOpR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229720AbjDLGVh (ORCPT + 99 others); Wed, 12 Apr 2023 02:21:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229615AbjDLGV0 (ORCPT ); Wed, 12 Apr 2023 02:21:26 -0400 Received: from mx.sberdevices.ru (mx.sberdevices.ru [45.89.227.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 960F3129 for ; Tue, 11 Apr 2023 23:21:24 -0700 (PDT) Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id 03AF45FD63; Wed, 12 Apr 2023 09:21:23 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1681280483; bh=yOrNA4RDuoM2vY5YhSP/eGA0DmXdgsqQqlqaL/M6BtI=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=SmeasOpRVy5aK9D7zQO00XNQdh/v8N9hvNJ2Zj0L995muidQCpGzGjWGdqdtdt4KD GoM+st3GB75u96nvynvGqdmcCzYVgGePL46Z55tt7LYKE3J+lDhPeBv/4DncerKkTP Y1/wJ3GFslOsHrhGLC/wS6w8/pg6roJQwAFJfdIo2lCyo0ky3p+1a1HUrg1i3itj/i ek9GaBfFEtZiu0sDwxoh0Phh5eHCcLvP1jTGRzw/mcounSc+4+AgF/FAVVW7YJwGKh 0bhEE3QWKl6gZ6I1WW9gzHEPLoagteTuCzYvGKxi969Yt9nqvs+0gABPK1h23JX/UG qe8haXiN1aXOg== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Wed, 12 Apr 2023 09:21:22 +0300 (MSK) From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jianxin Pan , Yixun Lan CC: , , Arseniy Krasnov , , , , Subject: [PATCH v1 4/5] mtd: rawnand: meson: clear OOB buffer before read Date: Wed, 12 Apr 2023 09:16:58 +0300 Message-ID: <20230412061700.1492474-5-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 X-Originating-IP: [172.16.1.6] X-ClientProxiedBy: S-MS-EXCH01.sberdevices.ru (172.16.1.4) To S-MS-EXCH01.sberdevices.ru (172.16.1.4) X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2023/04/12 04:12:00 #21090163 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762950803993772780?= X-GMAIL-MSGID: =?utf-8?q?1762950803993772780?= This NAND reads only few user's bytes in ECC mode (not full OOB), so fill OOB buffer with zeroes to not return garbage from previous reads to user. Otherwise 'nanddump' utility prints something like this for just erased page: ... 0x000007f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff OOB Data: ff ff ff ff 00 00 ff ff 80 cf 22 99 cb ad d3 be OOB Data: 63 27 ae 06 16 0a 2f eb bb dd 46 74 41 8e 88 6e OOB Data: 38 a1 2d e6 77 d4 05 06 f2 a5 7e 25 eb 34 7c ff OOB Data: 38 ea de 14 10 de 9b 40 33 16 6a cc 9d aa 2f 5e Signed-off-by: Arseniy Krasnov --- drivers/mtd/nand/raw/meson_nand.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c index f84a10238e4d..f2f2472cb511 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -858,9 +858,12 @@ static int meson_nfc_read_page_sub(struct nand_chip *nand, static int meson_nfc_read_page_raw(struct nand_chip *nand, u8 *buf, int oob_required, int page) { + struct mtd_info *mtd = nand_to_mtd(nand); u8 *oob_buf = nand->oob_poi; int ret; + memset(oob_buf, 0, mtd->oobsize); + ret = meson_nfc_read_page_sub(nand, page, 1); if (ret) return ret; @@ -881,6 +884,8 @@ static int meson_nfc_read_page_hwecc(struct nand_chip *nand, u8 *buf, u8 *oob_buf = nand->oob_poi; int ret, i; + memset(oob_buf, 0, mtd->oobsize); + ret = meson_nfc_read_page_sub(nand, page, 0); if (ret) return ret; From patchwork Wed Apr 12 06:16:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arseniy Krasnov X-Patchwork-Id: 82276 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp109683vqo; Tue, 11 Apr 2023 23:38:35 -0700 (PDT) X-Google-Smtp-Source: AKy350Zb++opVM4+LwITsykyyOavp9reIjNyQBIWTbzoHclWs/NMj8lZG1wxv/WG9pgRjUWqmtHS X-Received: by 2002:a17:90b:792:b0:23d:1b82:7236 with SMTP id l18-20020a17090b079200b0023d1b827236mr22285170pjz.16.1681281514979; Tue, 11 Apr 2023 23:38:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681281514; cv=none; d=google.com; s=arc-20160816; b=MNMBnIKAvfTiu6PBGgByfGMbqkb4TpyW6aOgyWt+c19/4ccKlNO7+HxOqPkcbLQgIV z9wyPEzNrMF+gclo3bv8PfNS4a6qu9v04RgupV63zfz/1+OxX1R3Sh0WRbYDCNCdds6O juRVCC2UyO7Bknr7pJCvcSK4JIyqS5tsYqBwp6BRmZIDsce5N1MPkriGXU0E51RDvKpg CFaV7rHjTnDhQBj2g0BS8Abnp8IdvBSp6yE5K0MZrx5KuJVmHUvPNO++4Dormird4Y/I s+azxVMAxqCKo5i3ylXz+25Ye/lYn2LpxdQUiq1Vc9o7M1ebejwxlkzOwxpVmTuU90m/ FlMQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=LO7pNly68Ih3sc3StizhIculbRddDBriZg8uwOnKxL4=; b=Zc7x8rgflyHdy6U0XPKXawBm4/W0wDBR5iEXyaVy8PeXZUoz6D922oJNk4bXKlz/kB yOm93zd7C4KQYlsA1fwrQRijv+qg9gL/iYaoSagxxbi5gOrEIM4BsXiFTefrD5PFPI9i wPk7c9AvxbuvonQ0oGinP2eWsuiLEj8ubtspLNFttCxt/hlIEDh/7FBL3CqZTlbWc32E eFqyYGqtWaDDZVtDey+aPA0nt2aIueAaGBq3JtVLkCHArBtngCbKIv2mEJbSniN05DDn 3zQXzuJZkDrCONOyF7n+SZC6kJJ32g+ExJX4DTmy0U7cSFNpdESLjPJyO8S7GbE4B1ig Bn8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=pg4D5A1F; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x2-20020a17090abc8200b00240ad93edfesi1249358pjr.5.2023.04.11.23.38.23; Tue, 11 Apr 2023 23:38:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sberdevices.ru header.s=mail header.b=pg4D5A1F; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=sberdevices.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229735AbjDLGVk (ORCPT + 99 others); Wed, 12 Apr 2023 02:21:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229667AbjDLGV1 (ORCPT ); Wed, 12 Apr 2023 02:21:27 -0400 Received: from mx.sberdevices.ru (mx.sberdevices.ru [45.89.227.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DEBBD59DD for ; Tue, 11 Apr 2023 23:21:26 -0700 (PDT) Received: from s-lin-edge02.sberdevices.ru (localhost [127.0.0.1]) by mx.sberdevices.ru (Postfix) with ESMTP id 287CA5FD5E; Wed, 12 Apr 2023 09:21:25 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1681280485; bh=LO7pNly68Ih3sc3StizhIculbRddDBriZg8uwOnKxL4=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=pg4D5A1FKYj6OdmHRb3KvNJ5byOcm5ZDqyX9APpnV4K5+kIOdB7PG4dl7yQRKDh+z bbwtvtvxSd1juCOQ6K6yBUnMFAx4Z4sr7EFzPVxJd378p3uj7ISIYRB4k7exD/6nvz 1WM24AITDzsW7xzV21UFJd4unaV+5Gspeyu6eFnsme4JpaofR63Ydji8i6DrAnjDNN WMWwS2/8IfnkXBbduOPEWB5m8H2smr2umJ5ny39CqXBZtGnqoe0jU6gw3VbqlRUfE5 mn7wqrj+vHTyFFeVdfaNLN7eoMlA/J09QLcmJ0kMjw+hTxJ1yxM1mmdz30ndBy/QB9 8NazJeVldbzgw== Received: from S-MS-EXCH01.sberdevices.ru (S-MS-EXCH01.sberdevices.ru [172.16.1.4]) by mx.sberdevices.ru (Postfix) with ESMTP; Wed, 12 Apr 2023 09:21:25 +0300 (MSK) From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Yixun Lan , Jianxin Pan CC: , , Arseniy Krasnov , , , , Subject: [PATCH v1 5/5] mtd: rawnand: meson: remove unneeded bitwise OR with zeroes Date: Wed, 12 Apr 2023 09:16:59 +0300 Message-ID: <20230412061700.1492474-6-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 X-Originating-IP: [172.16.1.6] X-ClientProxiedBy: S-MS-EXCH01.sberdevices.ru (172.16.1.4) To S-MS-EXCH01.sberdevices.ru (172.16.1.4) X-KSMG-Rule-ID: 4 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiPhishing: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2023/04/12 04:12:00 #21090163 X-KSMG-AntiVirus-Status: Clean, skipped X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762951445571564633?= X-GMAIL-MSGID: =?utf-8?q?1762951445571564633?= Both operations have no effect. Signed-off-by: Arseniy Krasnov --- drivers/mtd/nand/raw/meson_nand.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson_nand.c index f2f2472cb511..f0486aba5f41 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -609,12 +609,12 @@ static int meson_nfc_rw_cmd_prepare_and_execute(struct nand_chip *nand, cmd0 = in ? NAND_CMD_READ0 : NAND_CMD_SEQIN; nfc->cmdfifo.rw.cmd0 = cs | NFC_CMD_CLE | cmd0; - addrs[0] = cs | NFC_CMD_ALE | 0; + addrs[0] = cs | NFC_CMD_ALE; if (mtd->writesize <= 512) { cmd_num--; row_start = 1; } else { - addrs[1] = cs | NFC_CMD_ALE | 0; + addrs[1] = cs | NFC_CMD_ALE; row_start = 2; }