public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: "Jernej Škrabec" <jernej.skrabec@gmail.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	Samuel Holland <samuel@sholland.org>,
	Richard Genoud <richard.genoud@bootlin.com>
Cc: "Wentao Liang" <vulab@iscas.ac.cn>,
	"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org,
	"Richard Genoud" <richard.genoud@bootlin.com>
Subject: Re: [PATCH 04/15] mtd: nand: sunxi: move ecc strenghts in sunxi_nfc_caps
Date: Sat, 11 Oct 2025 12:41:56 +0200	[thread overview]
Message-ID: <13861163.uLZWGnKmhe@jernej-laptop> (raw)
In-Reply-To: <20251010084042.341224-5-richard.genoud@bootlin.com>

Hi!

Dne petek, 10. oktober 2025 ob 10:40:31 Srednjeevropski poletni čas je Richard Genoud napisal(a):
> H6/H616 has more ecc strenghts.
> This commit prepares the change.
> No functional change.

Format looks weird. Reword message to something like moving ecc to caps which
will allow expand support for newer cores.

Also, there should be empty line before "No functional change."

Best regards,
Jernej

> 
> Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
> ---
>  drivers/mtd/nand/raw/sunxi_nand.c | 20 ++++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mtd/nand/raw/sunxi_nand.c b/drivers/mtd/nand/raw/sunxi_nand.c
> index 10a48e0d361f..198dd40f9220 100644
> --- a/drivers/mtd/nand/raw/sunxi_nand.c
> +++ b/drivers/mtd/nand/raw/sunxi_nand.c
> @@ -213,11 +213,15 @@ static inline struct sunxi_nand_chip *to_sunxi_nand(struct nand_chip *nand)
>   *			through MBUS on A23/A33 needs extra configuration.
>   * @reg_io_data:	I/O data register
>   * @dma_maxburst:	DMA maxburst
> + * @ecc_strengths:	Available ECC strengths array
> + * @nstrengths:		Size of @ecc_strengths
>   */
>  struct sunxi_nfc_caps {
>  	bool has_mdma;
>  	unsigned int reg_io_data;
>  	unsigned int dma_maxburst;
> +	const u8 *ecc_strengths;
> +	unsigned int nstrengths;
>  };
>  
>  /**
> @@ -1619,9 +1623,9 @@ static int sunxi_nand_hw_ecc_ctrl_init(struct nand_chip *nand,
>  				       struct nand_ecc_ctrl *ecc,
>  				       struct device_node *np)
>  {
> -	static const u8 strengths[] = { 16, 24, 28, 32, 40, 48, 56, 60, 64 };
>  	struct sunxi_nand_chip *sunxi_nand = to_sunxi_nand(nand);
>  	struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller);
> +	const u8 *strengths = nfc->caps->ecc_strengths;
>  	struct mtd_info *mtd = nand_to_mtd(nand);
>  	struct nand_device *nanddev = mtd_to_nanddev(mtd);
>  	int nsectors;
> @@ -1645,7 +1649,7 @@ static int sunxi_nand_hw_ecc_ctrl_init(struct nand_chip *nand,
>  
>  		ecc->strength = bytes * 8 / fls(8 * ecc->size);
>  
> -		for (i = 0; i < ARRAY_SIZE(strengths); i++) {
> +		for (i = 0; i < nfc->caps->nstrengths; i++) {
>  			if (strengths[i] > ecc->strength)
>  				break;
>  		}
> @@ -1666,7 +1670,7 @@ static int sunxi_nand_hw_ecc_ctrl_init(struct nand_chip *nand,
>  	}
>  
>  	/* Add ECC info retrieval from DT */
> -	for (i = 0; i < ARRAY_SIZE(strengths); i++) {
> +	for (i = 0; i < nfc->caps->nstrengths; i++) {
>  		if (ecc->strength <= strengths[i]) {
>  			/*
>  			 * Update ecc->strength value with the actual strength
> @@ -1677,7 +1681,7 @@ static int sunxi_nand_hw_ecc_ctrl_init(struct nand_chip *nand,
>  		}
>  	}
>  
> -	if (i >= ARRAY_SIZE(strengths)) {
> +	if (i >= nfc->caps->nstrengths) {
>  		dev_err(nfc->dev, "unsupported strength\n");
>  		return -ENOTSUPP;
>  	}
> @@ -2167,15 +2171,23 @@ static void sunxi_nfc_remove(struct platform_device *pdev)
>  		dma_release_channel(nfc->dmac);
>  }
>  
> +static const u8 sunxi_ecc_strengths_a10[] = {
> +	16, 24, 28, 32, 40, 48, 56, 60, 64
> +};
> +
>  static const struct sunxi_nfc_caps sunxi_nfc_a10_caps = {
>  	.reg_io_data = NFC_REG_A10_IO_DATA,
>  	.dma_maxburst = 4,
> +	.ecc_strengths = sunxi_ecc_strengths_a10,
> +	.nstrengths = ARRAY_SIZE(sunxi_ecc_strengths_a10),
>  };
>  
>  static const struct sunxi_nfc_caps sunxi_nfc_a23_caps = {
>  	.has_mdma = true,
>  	.reg_io_data = NFC_REG_A23_IO_DATA,
>  	.dma_maxburst = 8,
> +	.ecc_strengths = sunxi_ecc_strengths_a10,
> +	.nstrengths = ARRAY_SIZE(sunxi_ecc_strengths_a10),
>  };
>  
>  static const struct of_device_id sunxi_nfc_ids[] = {
> 






  reply	other threads:[~2025-10-11 10:42 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-10  8:40 [PATCH 00/15] Introduce Allwinner H6/H616 NAND controller support Richard Genoud
2025-10-10  8:40 ` [PATCH 01/15] mtd: rawnand: sunxi: Remove superfluous register readings Richard Genoud
2025-10-11 10:15   ` Jernej Škrabec
2025-10-10  8:40 ` [PATCH 02/15] dt-bindings: mtd: sunxi: Add new compatible Richard Genoud
2025-10-10  8:45   ` Krzysztof Kozlowski
2025-10-10 10:16     ` Richard GENOUD
2025-10-10  8:49   ` Krzysztof Kozlowski
2025-10-10 10:18     ` Richard GENOUD
2025-10-11 10:27       ` Jernej Škrabec
2025-10-13 11:56         ` Richard GENOUD
2025-10-10  8:40 ` [PATCH 03/15] arm64: dts: allwinner: h616: add NAND controller Richard Genoud
2025-10-10  8:47   ` Krzysztof Kozlowski
2025-10-10 10:22     ` Richard GENOUD
2025-10-10 10:24       ` Krzysztof Kozlowski
2025-10-11 10:33   ` Jernej Škrabec
2025-10-13 11:59     ` Richard GENOUD
2025-10-10  8:40 ` [PATCH 04/15] mtd: nand: sunxi: move ecc strenghts in sunxi_nfc_caps Richard Genoud
2025-10-11 10:41   ` Jernej Škrabec [this message]
2025-10-13 12:00     ` Richard GENOUD
2025-10-10  8:40 ` [PATCH 05/15] mtd: nand: sunxi: introduce reg_ecc_err_cnt " Richard Genoud
2025-10-10  8:40 ` [PATCH 06/15] mtd: nand: sunxi: introduce reg_user_data " Richard Genoud
2025-10-10  8:40 ` [PATCH 07/15] mtd: nand: sunxi: rework pattern found registers Richard Genoud
2025-10-10  8:40 ` [PATCH 08/15] mtd: nand: sunxi: add has_ecc_block_512 capability Richard Genoud
2025-10-10  8:40 ` [PATCH 09/15] mtd: nand: sunxi: introduce ecc_mode_mask in sunxi_nfc_caps Richard Genoud
2025-10-10  8:40 ` [PATCH 10/15] mtd: nand: sunxi: introduce random en/dir " Richard Genoud
2025-10-10  8:40 ` [PATCH 11/15] mtd: nand: sunxi: introduce reg_pat_id " Richard Genoud
2025-10-10  8:40 ` [PATCH 12/15] mtd: nand: sunxi: introduce reg_spare_area " Richard Genoud
2025-10-10  8:40 ` [PATCH 13/15] mtd: nand: sunxi: introduce ecc_err_mask " Richard Genoud
2025-10-10  8:40 ` [PATCH 14/15] mtd: nand: sunxi: introduce sram_size " Richard Genoud
2025-10-10  8:40 ` [PATCH 15/15] mtd: rawnand: sunxi: Add support for H616 nand controller Richard Genoud
2025-10-11  1:00   ` kernel test robot
2025-10-11 10:48   ` Jernej Škrabec
2025-10-13 12:01     ` Richard GENOUD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=13861163.uLZWGnKmhe@jernej-laptop \
    --to=jernej.skrabec@gmail.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=miquel.raynal@bootlin.com \
    --cc=mripard@kernel.org \
    --cc=richard.genoud@bootlin.com \
    --cc=richard@nod.at \
    --cc=robh@kernel.org \
    --cc=samuel@sholland.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=u.kleine-koenig@baylibre.com \
    --cc=vigneshr@ti.com \
    --cc=vulab@iscas.ac.cn \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox