diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/libertas/dev.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/main.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h index e12ce6506729..0a9fc5136783 100644 --- a/drivers/net/wireless/libertas/dev.h +++ b/drivers/net/wireless/libertas/dev.h | |||
@@ -153,6 +153,7 @@ struct lbs_private { | |||
153 | 153 | ||
154 | /** Hardware access */ | 154 | /** Hardware access */ |
155 | int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb); | 155 | int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb); |
156 | void (*reset_card) (struct lbs_private *priv); | ||
156 | 157 | ||
157 | /* Wake On LAN */ | 158 | /* Wake On LAN */ |
158 | uint32_t wol_criteria; | 159 | uint32_t wol_criteria; |
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c index db246d0a1eda..804da368416f 100644 --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c | |||
@@ -787,6 +787,11 @@ static int lbs_thread(void *data) | |||
787 | le16_to_cpu(cmdnode->cmdbuf->command)); | 787 | le16_to_cpu(cmdnode->cmdbuf->command)); |
788 | lbs_complete_command(priv, cmdnode, -ETIMEDOUT); | 788 | lbs_complete_command(priv, cmdnode, -ETIMEDOUT); |
789 | priv->nr_retries = 0; | 789 | priv->nr_retries = 0; |
790 | if (priv->reset_card) { | ||
791 | spin_unlock_irq(&priv->driver_lock); | ||
792 | priv->reset_card(priv); | ||
793 | spin_lock_irq(&priv->driver_lock); | ||
794 | } | ||
790 | } else { | 795 | } else { |
791 | priv->cur_cmd = NULL; | 796 | priv->cur_cmd = NULL; |
792 | lbs_pr_info("requeueing command %x due to timeout (#%d)\n", | 797 | lbs_pr_info("requeueing command %x due to timeout (#%d)\n", |