• Masahiro Yamada's avatar
    mtd: nand: denali: switch over to cmd_ctrl instead of cmdfunc · fa6134e5
    Masahiro Yamada authored
    The NAND_CMD_SET_FEATURES support is missing from denali_cmdfunc().
    We also see /* TODO: Read OOB data */ comment.
    
    It would be possible to add more commands along with the current
    implementation, but having ->cmd_ctrl() seems a better approach from
    the discussion with Boris [1].
    
    Rely on the default ->cmdfunc() from the framework and implement the
    driver's own ->cmd_ctrl().
    
    This transition also fixes NAND_CMD_STATUS and NAND_CMD_PARAM handling.
    NAND_CMD_STATUS was just faked by the register read, so the only valid
    bit was the WP bit.  NAND_CMD_PARAM was completely broken; not only the
    command sent on the bus was NAND_CMD_STATUS instead of NAND_CMD_PARAM,
    but also the driver was only reading 8 bytes, while the parameter page
    contains several hundreds of bytes.
    
    Also add ->write_byte(), which is needed for write direction commands,
    ->read/write_buf(16), which will be used some commits later.
    ->read_word() is not used for now, but the core may call it in the
    future.
    
    Now, this driver can drop nand_onfi_get_set_features_notsupp().
    
    [1] https://lkml.org/lkml/2017/3/15/97Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
    fa6134e5
denali.c 38.9 KB