forked from luck/tmp_suning_uos_patched
mtd: nand: sunxi: Improve sunxi_nfc_cmd_ctrl()
We only need to call sunxi_nfc_wait_cmd_fifo_empty() if we want to send a new command. Move the sunxi_nfc_wait_cmd_fifo_empty() call to right place to avoid extra register reads. Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
This commit is contained in:
parent
8de15e1feb
commit
cad3274121
@ -604,10 +604,6 @@ static void sunxi_nfc_cmd_ctrl(struct mtd_info *mtd, int dat,
|
|||||||
struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller);
|
struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
|
|
||||||
if (ret)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (dat == NAND_CMD_NONE && (ctrl & NAND_NCE) &&
|
if (dat == NAND_CMD_NONE && (ctrl & NAND_NCE) &&
|
||||||
!(ctrl & (NAND_CLE | NAND_ALE))) {
|
!(ctrl & (NAND_CLE | NAND_ALE))) {
|
||||||
u32 cmd = 0;
|
u32 cmd = 0;
|
||||||
@ -637,6 +633,10 @@ static void sunxi_nfc_cmd_ctrl(struct mtd_info *mtd, int dat,
|
|||||||
writel(sunxi_nand->addr[1],
|
writel(sunxi_nand->addr[1],
|
||||||
nfc->regs + NFC_REG_ADDR_HIGH);
|
nfc->regs + NFC_REG_ADDR_HIGH);
|
||||||
|
|
||||||
|
ret = sunxi_nfc_wait_cmd_fifo_empty(nfc);
|
||||||
|
if (ret)
|
||||||
|
return;
|
||||||
|
|
||||||
writel(cmd, nfc->regs + NFC_REG_CMD);
|
writel(cmd, nfc->regs + NFC_REG_CMD);
|
||||||
sunxi_nand->addr[0] = 0;
|
sunxi_nand->addr[0] = 0;
|
||||||
sunxi_nand->addr[1] = 0;
|
sunxi_nand->addr[1] = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user