From: Miquel Raynal <miquel.raynal@bootlin.com>
To: "Álvaro Fernández Rojas" <noltari@gmail.com>
Cc: linux-mtd@lists.infradead.org, dregan@broadcom.com,
bcm-kernel-feedback-list@broadcom.com,
florian.fainelli@broadcom.com, rafal@milecki.pl,
computersforpeace@gmail.com, kamal.dasu@broadcom.com,
dan.beygelman@broadcom.com, william.zhang@broadcom.com,
frieder.schrempf@kontron.de, linux-kernel@vger.kernel.org,
vigneshr@ti.com, richard@nod.at, bbrezillon@kernel.org,
kdasu.kdev@gmail.com, jaimeliao.tw@gmail.com,
kilobyte@angband.pl, jonas.gorski@gmail.com, dgcbueu@gmail.com
Subject: Re: [PATCH v5] mtd: rawnand: brcmnand: legacy exec_op implementation
Date: Fri, 23 May 2025 16:41:58 +0200 [thread overview]
Message-ID: <87wma74ceh.fsf@bootlin.com> (raw)
In-Reply-To: <20250521080325.581366-1-noltari@gmail.com> ("Álvaro Fernández Rojas"'s message of "Wed, 21 May 2025 10:03:25 +0200")
On 21/05/2025 at 10:03:25 +02, Álvaro Fernández Rojas <noltari@gmail.com> wrote:
> Commit 3c8260ce7663 ("mtd: rawnand: brcmnand: exec_op implementation")
> removed legacy interface functions, breaking < v5.0 controllers support.
> In order to fix older controllers we need to add an alternative exec_op
> implementation which doesn't rely on low level registers.
>
> Fixes: 3c8260ce7663 ("mtd: rawnand: brcmnand: exec_op implementation")
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> Reviewed-by: David Regan <dregan@broadcom.com>
> ---
> drivers/mtd/nand/raw/brcmnand/brcmnand.c | 222 ++++++++++++++++++++++-
> 1 file changed, 215 insertions(+), 7 deletions(-)
>
> v5: add changes requested by Miquèl Raynal:
> - Mention and explain legacy in native_cmd_conv.
> - EOPNOTSUPP instead of EINVAL for instr->type else.
> - Implement missing check_only functionality.
>
> v4: add changes requested by Jonas Gorski:
> - Add missing breaks in brcmnand_exec_instructions_legacy.
> - Restore missing ret assignment in brcmnand_exec_op.
>
> v3: add changes requested by Florian and other improvements:
> - Add associative array for native command conversion.
> - Add function pointer to brcmnand_controller for exec_instr
> functionality.
> - Fix CMD_BLOCK_ERASE address.
> - Drop NAND_CMD_READOOB support.
>
> v2: multiple improvements:
> - Use proper native commands for checks.
> - Fix NAND_CMD_PARAM/NAND_CMD_RNDOUT addr calculation.
> - Remove host->last_addr usage.
> - Remove sector_size_1k since it only applies to v5.0+ controllers.
> - Remove brcmnand_wp since it doesn't exist for < v5.0 controllers.
> - Use j instead of i for flash_cache loop.
>
...
> +static int brcmnand_check_instructions_legacy(struct nand_chip *chip,
> + const struct nand_operation *op)
> +{
> + const struct nand_op_instr *instr;
> + unsigned int i;
> + u8 cmd;
> +
> + for (i = 0; i < op->ninstrs; i++) {
> + instr = &op->instrs[i];
> +
> + switch (instr->type) {
> + case NAND_OP_CMD_INSTR:
> + cmd = native_cmd_conv[instr->ctx.cmd.opcode];
> + if (cmd == CMD_NOT_SUPPORTED)
> + return -EOPNOTSUPP;
> + break;
> + case NAND_OP_ADDR_INSTR:
> + case NAND_OP_DATA_IN_INSTR:
No NAND_OP_DATA_OUT_INSTR?
> + case NAND_OP_WAITRDY_INSTR:
> + break;
> + default:
> + return -EOPNOTSUPP;
> + }
> + }
> +
> + return 0;
> +}
Rest lgtm.
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2025-05-23 15:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-21 8:03 [PATCH v5] mtd: rawnand: brcmnand: legacy exec_op implementation Álvaro Fernández Rojas
2025-05-22 20:21 ` Florian Fainelli
2025-05-23 0:03 ` William Zhang
2025-05-23 0:54 ` David Regan
2025-05-23 14:41 ` Miquel Raynal [this message]
2025-05-23 18:08 ` Álvaro Fernández Rojas
2025-05-26 7:28 ` Miquel Raynal
2025-05-26 9:33 ` Miquel Raynal
2025-05-23 17:02 ` David Regan
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=87wma74ceh.fsf@bootlin.com \
--to=miquel.raynal@bootlin.com \
--cc=bbrezillon@kernel.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=computersforpeace@gmail.com \
--cc=dan.beygelman@broadcom.com \
--cc=dgcbueu@gmail.com \
--cc=dregan@broadcom.com \
--cc=florian.fainelli@broadcom.com \
--cc=frieder.schrempf@kontron.de \
--cc=jaimeliao.tw@gmail.com \
--cc=jonas.gorski@gmail.com \
--cc=kamal.dasu@broadcom.com \
--cc=kdasu.kdev@gmail.com \
--cc=kilobyte@angband.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=noltari@gmail.com \
--cc=rafal@milecki.pl \
--cc=richard@nod.at \
--cc=vigneshr@ti.com \
--cc=william.zhang@broadcom.com \
/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