Message ID | 20200419125140.1307309-2-boris.brezillon@collabora.com |
---|---|
State | Changes Requested |
Delegated to: | Miquel Raynal |
Headers | show |
Series | mtd: rawnand: bcm47xx: Convert the driver exec_op() | expand |
Hi Boris, Boris Brezillon <boris.brezillon@collabora.com> wrote on Sun, 19 Apr 2020 14:51:32 +0200: > Some controllers need to know when they're passed the last subop so > they can de-assert the CE pin. > > Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> > --- Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Thanks, Miquèl
Hi Boris, Boris Brezillon <boris.brezillon@collabora.com> wrote on Sun, 19 Apr 2020 14:51:32 +0200: > Some controllers need to know when they're passed the last subop so > they can de-assert the CE pin. > > Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> > --- Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Thanks, Miquèl
Hi Boris, Boris Brezillon <boris.brezillon@collabora.com> wrote on Sun, 19 Apr 2020 14:51:32 +0200: > Some controllers need to know when they're passed the last subop so > they can de-assert the CE pin. > > Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> > --- Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Thanks, Miquèl
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index fa9ac18e97a1..f81b54634061 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c @@ -2101,6 +2101,8 @@ nand_op_parser_match_pat(const struct nand_op_parser_pattern *pat, */ ctx->subop.ninstrs = ninstrs; ctx->subop.last_instr_end_off = instr_offset; + if (ctx->subop.instrs + ninstrs == end && !instr_offset) + ctx->subop.is_last = true; return true; } diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h index 8e8d1a61e2fb..99f4ac47c8d3 100644 --- a/include/linux/mtd/rawnand.h +++ b/include/linux/mtd/rawnand.h @@ -701,6 +701,7 @@ struct nand_op_instr { * of the sub-operation * @last_instr_end_off: offset to end at (excluded) for the last instruction * of the sub-operation + * @is_last: this sub-operation is the last one * * Both @first_instr_start_off and @last_instr_end_off only apply to data or * address instructions. @@ -715,6 +716,7 @@ struct nand_subop { unsigned int ninstrs; unsigned int first_instr_start_off; unsigned int last_instr_end_off; + bool is_last; }; unsigned int nand_subop_get_addr_start_off(const struct nand_subop *subop,
Some controllers need to know when they're passed the last subop so they can de-assert the CE pin. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> --- drivers/mtd/nand/raw/nand_base.c | 2 ++ include/linux/mtd/rawnand.h | 2 ++ 2 files changed, 4 insertions(+)