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@xxxxxxxxxxxxx> Reviewed-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> --- Changes in v2: * Add R-b --- drivers/mtd/nand/raw/nand_base.c | 2 ++ include/linux/mtd/rawnand.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index 169150a7c140..21f8771b00ba 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c @@ -2169,6 +2169,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 0f45b6984ad1..69f1c1652187 100644 --- a/include/linux/mtd/rawnand.h +++ b/include/linux/mtd/rawnand.h @@ -715,6 +715,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. @@ -728,6 +729,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, -- 2.25.4 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/