Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 171380
b: refs/heads/master
c: 3b775b4
h: refs/heads/master
v: v3
  • Loading branch information
Juuso Oikarinen authored and John W. Linville committed Nov 2, 2009
1 parent 65bd7a7 commit 58b6de4
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 28 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 605351e2220bd7960a55d6d7903f87f11f419f4e
refs/heads/master: 3b775b4b27818130291e7716f3ce1e24664004c9
34 changes: 9 additions & 25 deletions trunk/drivers/net/wireless/wl12xx/wl1271_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,15 @@ int wl1271_cmd_send(struct wl1271 *wl, u16 id, void *buf, size_t len)
intr = wl1271_spi_read32(wl, ACX_REG_INTERRUPT_NO_CLEAR);
}

/* read back the status code of the command */
wl1271_spi_read(wl, wl->cmd_box_addr, cmd,
sizeof(struct wl1271_cmd_header), false);

if (cmd->status != CMD_STATUS_SUCCESS) {
wl1271_error("command execute failure %d", cmd->status);
ret = -EIO;
}

wl1271_spi_write32(wl, ACX_REG_INTERRUPT_ACK,
WL1271_ACX_INTR_CMD_COMPLETE);

Expand Down Expand Up @@ -306,7 +315,6 @@ int wl1271_cmd_test(struct wl1271 *wl, void *buf, size_t buf_len, u8 answer)

if (answer) {
struct wl1271_command *cmd_answer;
u16 status;

/*
* The test command got in, we can read the answer.
Expand All @@ -316,10 +324,6 @@ int wl1271_cmd_test(struct wl1271 *wl, void *buf, size_t buf_len, u8 answer)
wl1271_spi_read(wl, wl->cmd_box_addr, buf, buf_len, false);

cmd_answer = buf;
status = le16_to_cpu(cmd_answer->header.status);

if (status != CMD_STATUS_SUCCESS)
wl1271_error("TEST command answer error: %d", status);
}

return 0;
Expand Down Expand Up @@ -354,11 +358,6 @@ int wl1271_cmd_interrogate(struct wl1271 *wl, u16 id, void *buf, size_t len)
/* the interrogate command got in, we can read the answer */
wl1271_spi_read(wl, wl->cmd_box_addr, buf, len, false);

acx = buf;
if (le16_to_cpu(acx->cmd.status) != CMD_STATUS_SUCCESS)
wl1271_error("INTERROGATE command error: %d",
le16_to_cpu(acx->cmd.status));

out:
return ret;
}
Expand Down Expand Up @@ -507,11 +506,6 @@ int wl1271_cmd_read_memory(struct wl1271 *wl, u32 addr, void *answer,

/* the read command got in, we can now read the answer */
wl1271_spi_read(wl, wl->cmd_box_addr, cmd, sizeof(*cmd), false);

if (le16_to_cpu(cmd->header.status) != CMD_STATUS_SUCCESS)
wl1271_error("error in read command result: %d",
le16_to_cpu(cmd->header.status));

memcpy(answer, cmd->value, len);

out:
Expand Down Expand Up @@ -639,17 +633,7 @@ int wl1271_cmd_scan(struct wl1271 *wl, u8 *ssid, size_t len,
ret = wl1271_cmd_send(wl, CMD_SCAN, params, sizeof(*params));
if (ret < 0) {
wl1271_error("SCAN failed");
goto out;
}

wl1271_spi_read(wl, wl->cmd_box_addr, params, sizeof(*params),
false);

if (le16_to_cpu(params->header.status) != CMD_STATUS_SUCCESS) {
wl1271_error("Scan command error: %d",
le16_to_cpu(params->header.status));
wl->scanning = false;
ret = -EIO;
goto out;
}

Expand Down
7 changes: 5 additions & 2 deletions trunk/drivers/net/wireless/wl12xx/wl1271_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,12 +303,15 @@ int wl1271_hw_init(struct wl1271 *wl)
{
int ret;

/* FIXME: the following parameter setting functions return error
* codes - the reason is so far unknown. The -EIO is therefore
* ignored for the time being. */
ret = wl1271_init_general_parms(wl);
if (ret < 0)
if (ret < 0 && ret != -EIO)
return ret;

ret = wl1271_init_radio_parms(wl);
if (ret < 0)
if (ret < 0 && ret != -EIO)
return ret;

/* Template settings */
Expand Down

0 comments on commit 58b6de4

Please sign in to comment.