diff options
author | Daniel Drake <dsd@laptop.org> | 2012-09-11 19:38:11 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-09-11 23:32:02 +0400 |
commit | 871fc09f1c8a9c0652afa7c673ae401fdb3f4aeb (patch) | |
tree | 2af7fd1880401899d2087cd72884ec2e2d68f1d1 /drivers/net/wireless/libertas/cmd.h | |
parent | 46025f550401c830be9773e14d62b7cab8856216 (diff) | |
download | linux-871fc09f1c8a9c0652afa7c673ae401fdb3f4aeb.tar.xz |
libertas: set mac control synchronously during init
CMD_MAC_CONTROL is currently sent async to the firmware, and is sent
from the lbs_setup_firmware() path during device init.
This means that device init can complete with commands pending, and
the if_sdio driver will sometimes power down the device (after init)
with this command still pending.
This was causing an occasional spurious command timeout after init,
leading to a device reset.
Fix this by making CMD_MAC_CONTROL synchronous when called from the
lbs_setup_firmware() path.
Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/cmd.h')
-rw-r--r-- | drivers/net/wireless/libertas/cmd.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/cmd.h b/drivers/net/wireless/libertas/cmd.h index ab07608e13d0..4279e8ab95f2 100644 --- a/drivers/net/wireless/libertas/cmd.h +++ b/drivers/net/wireless/libertas/cmd.h @@ -96,6 +96,7 @@ void lbs_ps_confirm_sleep(struct lbs_private *priv); int lbs_set_radio(struct lbs_private *priv, u8 preamble, u8 radio_on); void lbs_set_mac_control(struct lbs_private *priv); +int lbs_set_mac_control_sync(struct lbs_private *priv); int lbs_get_tx_power(struct lbs_private *priv, s16 *curlevel, s16 *minlevel, s16 *maxlevel); |