diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2013-09-19 18:43:40 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2013-09-19 18:43:40 +0000 |
commit | 71d579ba28ea4052f5baf46ceb08799602a3f3ee (patch) | |
tree | c4a2641e040820628987671a381a9effef56bf92 /target | |
parent | ba2221869e04f24ecf1d8fb1518f7d6f47bc24fe (diff) | |
download | upstream-71d579ba28ea4052f5baf46ceb08799602a3f3ee.tar.gz upstream-71d579ba28ea4052f5baf46ceb08799602a3f3ee.tar.bz2 upstream-71d579ba28ea4052f5baf46ceb08799602a3f3ee.zip |
ar71xx: ar934x_nfc: return error code from some low-level functions
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>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38068 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c b/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c index b22b3b2da7..1e387e875f 100644 --- a/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c +++ b/target/linux/ar71xx/files/drivers/mtd/nand/ar934x_nfc.c @@ -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 |