From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Boris Brezillon <boris.brezillon@collabora.com>
Cc: "Vignesh Raghavendra" <vigneshr@ti.com>,
"Tudor Ambarus" <tudor.ambarus@microchip.com>,
"Richard Weinberger" <richard@nod.at>,
"Boris Brezillon" <bbrezillon@kernel.org>,
linux-mtd@lists.infradead.org, "Rafał Miłecki" <rafal@milecki.pl>,
bcm-kernel-feedback-list@broadcom.com,
openwrt-devel@lists.openwrt.org
Subject: Re: [PATCH 5/9] mtd: rawnand: bcm47xx: Implement the exec_op() interface
Date: Mon, 27 Apr 2020 20:49:39 +0200 [thread overview]
Message-ID: <20200427204939.3d96a66f@xps13> (raw)
In-Reply-To: <20200427203525.5fd1deca@collabora.com>
Hi Boris,
> > > +static int
> > > +bcm47xxnflash_ops_bcm4706_exec_cmd_addr(struct nand_chip *chip,
> > > + const struct nand_subop *subop)
> > > +{
> > > + struct bcm47xxnflash *b47n = nand_get_controller_data(chip);
> > > + u32 nctl = 0, col = 0, row = 0, ncols = 0, nrows = 0;
> > > + unsigned int i, j;
> > > +
> > > + for (i = 0; i < subop->ninstrs; i++) {
> > > + const struct nand_op_instr *instr = &subop->instrs[i];
> > > +
> > > + switch (instr->type) {
> > > + case NAND_OP_CMD_INSTR:
> > > + if (WARN_ON_ONCE((nctl & NCTL_CMD0) &&
> > > + (nctl & NCTL_CMD1W)))
> > > + return -EINVAL;
> > > + else if (nctl & NCTL_CMD0)
> > > + nctl |= NCTL_CMD1W |
> > > + ((u32)instr->ctx.cmd.opcode << 8);
> > > + else
> > > + nctl |= NCTL_CMD0 | instr->ctx.cmd.opcode;
> > > + break;
> > > + case NAND_OP_ADDR_INSTR:
> > > + for (j = 0; j < instr->ctx.addr.naddrs; j++) {
> > > + u32 addr = instr->ctx.addr.addrs[j];
> > > +
> > > + if (i < 2) {
> >
> > Don't you mean j here? ^
> >
>
> Nice catch! Indeed, it should be j.
>
> > > + col |= addr << i * 8;
> >
> > I'm not sure this will work, addr is 32-bit and col as well, I bet you
> > won't end up with what you expect.
>
> Well, assuming I use j that's really what I want. addr is an u32 to
> allow for a shift greater than 8, but the value has be extracted
> from the instr->ctx.addr.addrs array which is an u8 array, thus
> making addr <= 0xff.
Oh that's absolutely right. It's fine then!
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2020-04-27 18:50 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-19 12:51 [PATCH 0/9] mtd: rawnand: bcm47xx: Convert the driver exec_op() Boris Brezillon
2020-04-19 12:51 ` [PATCH 1/9] mtd: rawnand: Add an is_last flag to nand_subop Boris Brezillon
2020-04-27 17:02 ` Miquel Raynal
2020-04-27 17:03 ` Miquel Raynal
2020-04-27 17:03 ` Miquel Raynal
2020-04-19 12:51 ` [PATCH 2/9] mtd: rawnand: bcm47xx: Drop dependency on BCMA Boris Brezillon
2020-04-19 12:51 ` [PATCH 3/9] mtd: rawnand: bcm47xx: Allow compiling the driver when COMPILE_TEST=y Boris Brezillon
2020-04-19 12:51 ` [PATCH 4/9] mtd: rawnand: bcm47xx: Demistify a few more things Boris Brezillon
2020-04-27 17:07 ` Miquel Raynal
2020-04-27 18:31 ` Boris Brezillon
2020-04-19 12:51 ` [PATCH 5/9] mtd: rawnand: bcm47xx: Implement the exec_op() interface Boris Brezillon
2020-04-27 17:18 ` Miquel Raynal
2020-04-27 18:35 ` Boris Brezillon
2020-04-27 18:49 ` Miquel Raynal [this message]
2020-04-19 12:51 ` [PATCH 6/9] mtd: rawnand: bcm47xx: Get rid of the legacy implementation Boris Brezillon
2020-04-27 17:19 ` Miquel Raynal
2020-04-27 18:39 ` Boris Brezillon
2020-04-19 12:51 ` [PATCH 7/9] mtd: rawnand: bcm47xx: Simplify the init() function Boris Brezillon
2020-04-27 17:20 ` Miquel Raynal
2020-04-19 12:51 ` [PATCH 8/9] mtd: rawnand: bcm47xx: Merge all source files Boris Brezillon
2020-04-27 17:27 ` Miquel Raynal
2020-04-19 12:51 ` [PATCH 9/9] mtd: rawnand: bcm47xx: Move the driver to drivers/mtd/nand/raw/ Boris Brezillon
2020-04-20 11:32 ` Boris Brezillon
2020-04-27 17:24 ` Miquel Raynal
2020-04-27 18:40 ` Boris Brezillon
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=20200427204939.3d96a66f@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=bbrezillon@kernel.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=boris.brezillon@collabora.com \
--cc=linux-mtd@lists.infradead.org \
--cc=openwrt-devel@lists.openwrt.org \
--cc=rafal@milecki.pl \
--cc=richard@nod.at \
--cc=tudor.ambarus@microchip.com \
--cc=vigneshr@ti.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.