From nobody Sun Feb 8 11:41:17 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 102EDC001DD for ; Wed, 28 Jun 2023 09:51:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232554AbjF1JvV (ORCPT ); Wed, 28 Jun 2023 05:51:21 -0400 Received: from mx2.sberdevices.ru ([45.89.224.132]:26937 "EHLO mx1.sberdevices.ru" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235569AbjF1JfQ (ORCPT ); Wed, 28 Jun 2023 05:35:16 -0400 Received: from p-infra-ksmg-sc-msk02 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id DE9F5120010; Wed, 28 Jun 2023 12:34:58 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru DE9F5120010 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1687944898; bh=dOUQdfK74PQSGyCiBDX2998V8/GfU3xv1b3HjiouC2E=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=aKBK/RpKxYyT8ThvGIbVURq4k4RHsVWZ0kSqR+I633ilDxvsfigYOqlCeeXw8bevB x7Tx9/SoHG80nL5UfDA6HxNXcOzqcqc3MeeemF8NoTOKZxCnc58SIjfpLNZ7/gRf3G jGs/m0p3v61hR82BHuqHHK6xnW6ArRbtfwzDhW4isS2qLK2g4n0k78EkK91EcZxrq6 jvaToz2zOnXeTdl1tQv525ciU0jF4KH4keoSwlFtqmNnLKsmfy/d8lE/HHiboZNS9+ 3+8rtTj1gjQNn4iMw6BXtPeEbfXVGNBCpJT/f+Eg8pZM10s1/QLvoKZw/HYrApjek4 c9jMJUh7FYC0g== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Wed, 28 Jun 2023 12:34:57 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Wed, 28 Jun 2023 12:34:01 +0300 From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl CC: , , Arseniy Krasnov , , , , , Subject: [RFC PATCH v1 1/2] dt-bindings: nand: meson: support for 512B ECC step size Date: Wed, 28 Jun 2023 12:29:35 +0300 Message-ID: <20230628092937.538683-2-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230628092937.538683-1-AVKrasnov@sberdevices.ru> References: <20230628092937.538683-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m02.sberdevices.ru (172.16.192.103) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 178300 [Jun 28 2023] X-KSMG-AntiSpam-Version: 5.9.59.0 X-KSMG-AntiSpam-Envelope-From: AVKrasnov@sberdevices.ru X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 517 517 b0056c19d8e10afbb16cb7aad7258dedb0179a79, {Tracking_from_domain_doesnt_match_to}, d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;p-i-exch-sc-m01.sberdevices.ru:5.0.1,7.1.1;127.0.0.199:7.1.2;sberdevices.ru:5.0.1,7.1.1, FromAlignment: s, {Tracking_white_helo}, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/06/28 05:07:00 #21590415 X-KSMG-AntiVirus-Status: Clean, skipped Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Meson NAND supports both 512B and 1024B ECC step size, so replace 'const' for only 1024B step size with enum for both sizes. Signed-off-by: Arseniy Krasnov Acked-by: Rob Herring --- Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml = b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml index 3bec8af91bbb..d42daa285d17 100644 --- a/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml +++ b/Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml @@ -49,7 +49,7 @@ patternProperties: const: hw =20 nand-ecc-step-size: - const: 1024 + enum: [512, 1024] =20 nand-ecc-strength: enum: [8, 16, 24, 30, 40, 50, 60] @@ -93,6 +93,7 @@ examples: nand@0 { reg =3D <0>; nand-rb =3D <0>; + nand-ecc-step-size =3D <1024>; }; }; =20 --=20 2.35.0 From nobody Sun Feb 8 11:41:17 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15D8AEB64DC for ; Wed, 28 Jun 2023 09:53:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232918AbjF1Jw7 (ORCPT ); Wed, 28 Jun 2023 05:52:59 -0400 Received: from mx1.sberdevices.ru ([37.18.73.165]:14222 "EHLO mx1.sberdevices.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235520AbjF1JfC (ORCPT ); Wed, 28 Jun 2023 05:35:02 -0400 Received: from p-infra-ksmg-sc-msk01 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id 6D6B8100010; Wed, 28 Jun 2023 12:34:59 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru 6D6B8100010 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sberdevices.ru; s=mail; t=1687944899; bh=GclWWL59oht8VgFW8Tc4TABopkyYORqVnTmqa0M/qOg=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=isgdeBQNhCOXqAPWFxY23/4YS2SM5oveSMYOXgZN04ijpuuJPs8QDSJo86zoxFWSq akx548USahmjFutrW98GiQW9Yu5c3HMUQyRrw8PBE4RxahH3AYcuCpE66ts5FHhudy UcgvLJxbfBkOGNYZnxlYDseuBe13CHMgxp5XJTcdciGCUwpvDTiamXOo7D+JYIEvqL 39cJ82LQBy62R7fdzuQWngyJXD2ZY7eifYTKneKsO6/Bvv2S27QlWD9jxGMj1WI/Es wmm7viJHorE3OsE//MeQ/HQMsgGk0Rs4bNAlJJPH6F0j4qvFx4CdkpHLc9m2xMeuGU hhdW8OtiOlxJg== Received: from p-i-exch-sc-m01.sberdevices.ru (p-i-exch-sc-m01.sberdevices.ru [172.16.192.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Wed, 28 Jun 2023 12:34:59 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Wed, 28 Jun 2023 12:34:02 +0300 From: Arseniy Krasnov To: Liang Yang , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl CC: , , Arseniy Krasnov , , , , , Subject: [RFC PATCH v1 2/2] mtd: rawnand: meson: support for 512B ECC step size Date: Wed, 28 Jun 2023 12:29:36 +0300 Message-ID: <20230628092937.538683-3-AVKrasnov@sberdevices.ru> X-Mailer: git-send-email 2.35.0 In-Reply-To: <20230628092937.538683-1-AVKrasnov@sberdevices.ru> References: <20230628092937.538683-1-AVKrasnov@sberdevices.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [100.64.160.123] X-ClientProxiedBy: p-i-exch-sc-m02.sberdevices.ru (172.16.192.103) To p-i-exch-sc-m01.sberdevices.ru (172.16.192.107) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 178300 [Jun 28 2023] X-KSMG-AntiSpam-Version: 5.9.59.0 X-KSMG-AntiSpam-Envelope-From: AVKrasnov@sberdevices.ru X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 517 517 b0056c19d8e10afbb16cb7aad7258dedb0179a79, {Tracking_from_domain_doesnt_match_to}, 127.0.0.199:7.1.2;sberdevices.ru:5.0.1,7.1.1;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;p-i-exch-sc-m01.sberdevices.ru:5.0.1,7.1.1, FromAlignment: s, {Tracking_white_helo}, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2023/06/28 08:00:00 #21591748 X-KSMG-AntiVirus-Status: Clean, skipped Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Meson NAND supports both 512B and 1024B ECC step size. Signed-off-by: Arseniy Krasnov --- drivers/mtd/nand/raw/meson_nand.c | 47 +++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/drivers/mtd/nand/raw/meson_nand.c b/drivers/mtd/nand/raw/meson= _nand.c index 345212e8c691..6cc4f63b86c8 100644 --- a/drivers/mtd/nand/raw/meson_nand.c +++ b/drivers/mtd/nand/raw/meson_nand.c @@ -135,6 +135,7 @@ struct meson_nfc_nand_chip { struct meson_nand_ecc { u32 bch; u32 strength; + u32 size; }; =20 struct meson_nfc_data { @@ -190,7 +191,8 @@ struct meson_nfc { }; =20 enum { - NFC_ECC_BCH8_1K =3D 2, + NFC_ECC_BCH8_512 =3D 1, + NFC_ECC_BCH8_1K, NFC_ECC_BCH24_1K, NFC_ECC_BCH30_1K, NFC_ECC_BCH40_1K, @@ -198,15 +200,16 @@ enum { NFC_ECC_BCH60_1K, }; =20 -#define MESON_ECC_DATA(b, s) { .bch =3D (b), .strength =3D (s)} +#define MESON_ECC_DATA(b, s, sz) { .bch =3D (b), .strength =3D (s), .size = =3D (sz) } =20 static struct meson_nand_ecc meson_ecc[] =3D { - MESON_ECC_DATA(NFC_ECC_BCH8_1K, 8), - MESON_ECC_DATA(NFC_ECC_BCH24_1K, 24), - MESON_ECC_DATA(NFC_ECC_BCH30_1K, 30), - MESON_ECC_DATA(NFC_ECC_BCH40_1K, 40), - MESON_ECC_DATA(NFC_ECC_BCH50_1K, 50), - MESON_ECC_DATA(NFC_ECC_BCH60_1K, 60), + MESON_ECC_DATA(NFC_ECC_BCH8_512, 8, 512), + MESON_ECC_DATA(NFC_ECC_BCH8_1K, 8, 1024), + MESON_ECC_DATA(NFC_ECC_BCH24_1K, 24, 1024), + MESON_ECC_DATA(NFC_ECC_BCH30_1K, 30, 1024), + MESON_ECC_DATA(NFC_ECC_BCH40_1K, 40, 1024), + MESON_ECC_DATA(NFC_ECC_BCH50_1K, 50, 1024), + MESON_ECC_DATA(NFC_ECC_BCH60_1K, 60, 1024), }; =20 static int meson_nand_calc_ecc_bytes(int step_size, int strength) @@ -224,8 +227,27 @@ static int meson_nand_calc_ecc_bytes(int step_size, in= t strength) =20 NAND_ECC_CAPS_SINGLE(meson_gxl_ecc_caps, meson_nand_calc_ecc_bytes, 1024, 8, 24, 30, 40, 50, 60); -NAND_ECC_CAPS_SINGLE(meson_axg_ecc_caps, - meson_nand_calc_ecc_bytes, 1024, 8); + +static const int axg_stepinfo_strengths[] =3D { 8 }; +static const struct nand_ecc_step_info axg_stepinfo_1024 =3D { + .stepsize =3D 1024, + .strengths =3D axg_stepinfo_strengths, + .nstrengths =3D ARRAY_SIZE(axg_stepinfo_strengths) +}; + +static const struct nand_ecc_step_info axg_stepinfo_512 =3D { + .stepsize =3D 512, + .strengths =3D axg_stepinfo_strengths, + .nstrengths =3D ARRAY_SIZE(axg_stepinfo_strengths) +}; + +static const struct nand_ecc_step_info axg_stepinfo[] =3D { axg_stepinfo_1= 024, axg_stepinfo_512 }; + +static const struct nand_ecc_caps meson_axg_ecc_caps =3D { + .stepinfos =3D axg_stepinfo, + .nstepinfos =3D ARRAY_SIZE(axg_stepinfo), + .calc_ecc_bytes =3D meson_nand_calc_ecc_bytes, +}; =20 static struct meson_nfc_nand_chip *to_meson_nand(struct nand_chip *nand) { @@ -1259,7 +1281,8 @@ static int meson_nand_bch_mode(struct nand_chip *nand) return -EINVAL; =20 for (i =3D 0; i < ARRAY_SIZE(meson_ecc); i++) { - if (meson_ecc[i].strength =3D=3D nand->ecc.strength) { + if (meson_ecc[i].strength =3D=3D nand->ecc.strength && + meson_ecc[i].size =3D=3D nand->ecc.size) { meson_chip->bch_mode =3D meson_ecc[i].bch; return 0; } @@ -1278,7 +1301,7 @@ static int meson_nand_attach_chip(struct nand_chip *n= and) struct meson_nfc *nfc =3D nand_get_controller_data(nand); struct meson_nfc_nand_chip *meson_chip =3D to_meson_nand(nand); struct mtd_info *mtd =3D nand_to_mtd(nand); - int nsectors =3D mtd->writesize / 1024; + int nsectors =3D mtd->writesize / 512; int raw_writesize; int ret; =20 --=20 2.35.0