diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2020-05-16 14:41:52 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2020-05-16 16:30:50 +0200 |
commit | 6959a724994dffa302ee8514227bba769b0a1212 (patch) | |
tree | adb74e784071f54e50375a6ecfcf1a317752844b | |
parent | dc85f07a09e6160353359d212c2fb1bd20ad3000 (diff) | |
download | linux-lr/nand/cafe-nand-exec-op-debug.tar.gz |
XXX add address to CMD_STATUSlr/nand/cafe-nand-exec-op-debug
cafe_nand_cmdfunc() would previously do:
/* And one address cycle -- even for STATUS, since the controller doesn't work without */
adrbytes = 1;
Without it, I'm reading status of 0xc1 (that's FAIL | READY | WP), which is
probably garbage.
-rw-r--r-- | drivers/mtd/nand/raw/nand_base.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index 564c05c192c94b..9b0e1d1834e758 100644 --- a/drivers/mtd/nand/raw/nand_base.c +++ b/drivers/mtd/nand/raw/nand_base.c @@ -1673,12 +1673,14 @@ EXPORT_SYMBOL_GPL(nand_readid_op); */ int nand_status_op(struct nand_chip *chip, u8 *status) { + u8 addr = 0; if (nand_has_exec_op(chip)) { const struct nand_sdr_timings *sdr = nand_get_sdr_timings(&chip->data_interface); struct nand_op_instr instrs[] = { NAND_OP_CMD(NAND_CMD_STATUS, PSEC_TO_NSEC(sdr->tADL_min)), + NAND_OP_ADDR(1, &addr, 0), NAND_OP_8BIT_DATA_IN(1, status, 0), }; struct nand_operation op = NAND_OPERATION(chip->cur_cs, instrs); |