diff options
author | David Woodhouse <dwmw2@infradead.org> | 2007-12-10 13:36:10 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:06:34 -0500 |
commit | 1309b55b4de18bbfe19c73225a5481d6cdc8a463 (patch) | |
tree | 7993651309a0a35f8ec954fffa0b7b04003f9d32 /drivers/net/wireless/libertas/cmd.c | |
parent | b6b8abe4ddec2cfb3471ea60f965a137cd4d529d (diff) |
libertas: add opaque extra argument to cmd callback function
This will be useful for letting callbacks do stuff like copying the
response into a buffer provided by the caller of lbs_cmd()
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmd.c')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 49a9aeee2b6a..228e3fee20fb 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -1642,6 +1642,7 @@ static void cleanup_cmdnode(struct cmd_ctrl_node *ptempnode) | |||
1642 | ptempnode->wait_option = 0; | 1642 | ptempnode->wait_option = 0; |
1643 | ptempnode->pdata_buf = NULL; | 1643 | ptempnode->pdata_buf = NULL; |
1644 | ptempnode->callback = NULL; | 1644 | ptempnode->callback = NULL; |
1645 | ptempnode->callback_arg = 0; | ||
1645 | 1646 | ||
1646 | if (ptempnode->bufvirtualaddr != NULL) | 1647 | if (ptempnode->bufvirtualaddr != NULL) |
1647 | memset(ptempnode->bufvirtualaddr, 0, MRVDRV_SIZE_OF_CMD_BUFFER); | 1648 | memset(ptempnode->bufvirtualaddr, 0, MRVDRV_SIZE_OF_CMD_BUFFER); |
@@ -1670,6 +1671,7 @@ void lbs_set_cmd_ctrl_node(struct lbs_private *priv, | |||
1670 | ptempnode->wait_option = wait_option; | 1671 | ptempnode->wait_option = wait_option; |
1671 | ptempnode->pdata_buf = pdata_buf; | 1672 | ptempnode->pdata_buf = pdata_buf; |
1672 | ptempnode->callback = NULL; | 1673 | ptempnode->callback = NULL; |
1674 | ptempnode->callback_arg = 0; | ||
1673 | 1675 | ||
1674 | lbs_deb_leave(LBS_DEB_HOST); | 1676 | lbs_deb_leave(LBS_DEB_HOST); |
1675 | } | 1677 | } |
@@ -1993,7 +1995,8 @@ void lbs_ps_confirm_sleep(struct lbs_private *priv, u16 psmode) | |||
1993 | */ | 1995 | */ |
1994 | 1996 | ||
1995 | int lbs_cmd(struct lbs_private *priv, uint16_t command, void *cmd, int cmd_size, | 1997 | int lbs_cmd(struct lbs_private *priv, uint16_t command, void *cmd, int cmd_size, |
1996 | int (*callback)(uint16_t, struct cmd_ds_command *, struct lbs_private *)) | 1998 | int (*callback)(struct lbs_private *, unsigned long, struct cmd_ds_command *), |
1999 | unsigned long callback_arg) | ||
1997 | { | 2000 | { |
1998 | struct cmd_ctrl_node *cmdnode; | 2001 | struct cmd_ctrl_node *cmdnode; |
1999 | struct cmd_ds_gen *cmdptr; | 2002 | struct cmd_ds_gen *cmdptr; |
@@ -2028,6 +2031,7 @@ int lbs_cmd(struct lbs_private *priv, uint16_t command, void *cmd, int cmd_size, | |||
2028 | cmdptr = (struct cmd_ds_gen *)cmdnode->bufvirtualaddr; | 2031 | cmdptr = (struct cmd_ds_gen *)cmdnode->bufvirtualaddr; |
2029 | cmdnode->wait_option = CMD_OPTION_WAITFORRSP; | 2032 | cmdnode->wait_option = CMD_OPTION_WAITFORRSP; |
2030 | cmdnode->callback = callback; | 2033 | cmdnode->callback = callback; |
2034 | cmdnode->callback_arg = callback_arg; | ||
2031 | 2035 | ||
2032 | /* Set sequence number, clean result, move to buffer */ | 2036 | /* Set sequence number, clean result, move to buffer */ |
2033 | priv->seqnum++; | 2037 | priv->seqnum++; |