Hello Keguang, >> > +static int ls1x_nand_exec_op(struct nand_chip *chip, >> > + const struct nand_operation *op, >> > + bool check_only) >> > +{ >> > + int ret; >> > + >> >> if (check_only) ? > > Sorry, I'm not sure if I understand correctly. > nand_op_parser_exec_op() only checks patterns and will skip > pattern->exec() when check_only = true. Therefore, > ls1x_nand_check_op() should handle all opcode checks in that case, and > leave check_only = false to nand_op_parser_exec_op(). > Then the code will return to: > > if (check_only) > return ls1x_nand_check_op(chip, op); > > return nand_op_parser_exec_op(chip, &ls1x_nand_op_parser, op, check_only); > > Am I right? Absolutely, yes. Thanks, Miquèl