Commit cad32741 authored by Boris Brezillon's avatar Boris Brezillon

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: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
parent 8de15e1f
...@@ -604,10 +604,6 @@ static void sunxi_nfc_cmd_ctrl(struct mtd_info *mtd, int dat, ...@@ -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, ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment