diff options
Diffstat (limited to 'drivers/net/wireless/libertas/cmd.c')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 70745928f3f8..78c4da150a74 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
@@ -177,6 +177,14 @@ int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria, | |||
177 | struct cmd_ds_host_sleep cmd_config; | 177 | struct cmd_ds_host_sleep cmd_config; |
178 | int ret; | 178 | int ret; |
179 | 179 | ||
180 | /* | ||
181 | * Certain firmware versions do not support EHS_REMOVE_WAKEUP command | ||
182 | * and the card will return a failure. Since we need to be | ||
183 | * able to reset the mask, in those cases we set a 0 mask instead. | ||
184 | */ | ||
185 | if (criteria == EHS_REMOVE_WAKEUP && !priv->ehs_remove_supported) | ||
186 | criteria = 0; | ||
187 | |||
180 | cmd_config.hdr.size = cpu_to_le16(sizeof(cmd_config)); | 188 | cmd_config.hdr.size = cpu_to_le16(sizeof(cmd_config)); |
181 | cmd_config.criteria = cpu_to_le32(criteria); | 189 | cmd_config.criteria = cpu_to_le32(criteria); |
182 | cmd_config.gpio = priv->wol_gpio; | 190 | cmd_config.gpio = priv->wol_gpio; |