aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2020-05-16 14:41:52 +0200
committerLubomir Rintel <lkundrak@v3.sk>2020-05-16 16:30:50 +0200
commit6959a724994dffa302ee8514227bba769b0a1212 (patch)
treeadb74e784071f54e50375a6ecfcf1a317752844b
parentdc85f07a09e6160353359d212c2fb1bd20ad3000 (diff)
downloadlinux-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.c2
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);