ar71xx: ar934x_nfc: return error code from some low-level functions
authorGabor Juhos <juhosg@openwrt.org>
Thu, 19 Sep 2013 18:43:40 +0000 (18:43 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Thu, 19 Sep 2013 18:43:40 +0000 (18:43 +0000)
Change some flow-level unctions to return with an
error code in order to be able to report errors
to the core code.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 38068

target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c

index b22b3b2da71347e2d005f0c36cbe654c3be0b57a..1e387e875f6df066f0f79c8226cfcb3a7434f206 100644 (file)
@@ -410,7 +410,7 @@ ar934x_nfc_send_cmd(struct ar934x_nfc *nfc, unsigned command)
        ar934x_nfc_wait_dev_ready(nfc);
 }
 
-static void
+static int
 ar934x_nfc_do_rw_command(struct ar934x_nfc *nfc, int column, int page_addr,
                         int len, u32 cmd_reg, u32 ctrl_reg, bool write)
 {
@@ -475,29 +475,35 @@ retry:
                dev_err(nfc->parent, "%s operation failed on page %d\n",
                        (write) ? "write" : "read", page_addr);
        }
+
+       return err;
 }
 
-static void
+static int
 ar934x_nfc_send_readid(struct ar934x_nfc *nfc, unsigned command)
 {
        u32 cmd_reg;
+       int err;
 
        nfc_dbg(nfc, "readid, cmd:%02x\n", command);
 
        cmd_reg = AR934X_NFC_CMD_SEQ_1C1AXR;
        cmd_reg |= (command & AR934X_NFC_CMD_CMD0_M) << AR934X_NFC_CMD_CMD0_S;
 
-       ar934x_nfc_do_rw_command(nfc, -1, -1, AR934X_NFC_ID_BUF_SIZE, cmd_reg,
-                                nfc->ctrl_reg, false);
+       err = ar934x_nfc_do_rw_command(nfc, -1, -1, AR934X_NFC_ID_BUF_SIZE,
+                                      cmd_reg, nfc->ctrl_reg, false);
 
        nfc_debug_data("[id] ", nfc->buf, AR934X_NFC_ID_BUF_SIZE);
+
+       return err;
 }
 
-static void
+static int
 ar934x_nfc_send_read(struct ar934x_nfc *nfc, unsigned command, int column,
                     int page_addr, int len)
 {
        u32 cmd_reg;
+       int err;
 
        nfc_dbg(nfc, "read, column=%d page=%d len=%d\n",
                column, page_addr, len);
@@ -511,10 +517,12 @@ ar934x_nfc_send_read(struct ar934x_nfc *nfc, unsigned command, int column,
                cmd_reg |= AR934X_NFC_CMD_SEQ_1C5A1CXR;
        }
 
-       ar934x_nfc_do_rw_command(nfc, column, page_addr, len,
-                                cmd_reg, nfc->ctrl_reg, false);
+       err = ar934x_nfc_do_rw_command(nfc, column, page_addr, len,
+                                      cmd_reg, nfc->ctrl_reg, false);
 
        nfc_debug_data("[data] ", nfc->buf, len);
+
+       return err;
 }
 
 static void
@@ -555,7 +563,7 @@ ar934x_nfc_send_erase(struct ar934x_nfc *nfc, unsigned command, int column,
        ar934x_nfc_wait_dev_ready(nfc);
 }
 
-static void
+static int
 ar934x_nfc_send_write(struct ar934x_nfc *nfc, unsigned command, int column,
                     int page_addr, int len)
 {
@@ -570,8 +578,8 @@ ar934x_nfc_send_write(struct ar934x_nfc *nfc, unsigned command, int column,
        cmd_reg |= command << AR934X_NFC_CMD_CMD1_S;
        cmd_reg |= AR934X_NFC_CMD_SEQ_12;
 
-       ar934x_nfc_do_rw_command(nfc, column, page_addr, len,
-                                cmd_reg, nfc->ctrl_reg, true);
+       return ar934x_nfc_do_rw_command(nfc, column, page_addr, len,
+                                       cmd_reg, nfc->ctrl_reg, true);
 }
 
 static void