libertas: set mac control synchronously during init
authorDaniel Drake <dsd@laptop.org>
Tue, 11 Sep 2012 15:38:11 +0000 (11:38 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 11 Sep 2012 19:32:02 +0000 (15:32 -0400)
commit871fc09f1c8a9c0652afa7c673ae401fdb3f4aeb
tree2af7fd1880401899d2087cd72884ec2e2d68f1d1
parent46025f550401c830be9773e14d62b7cab8856216
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>
drivers/net/wireless/libertas/cmd.c
drivers/net/wireless/libertas/cmd.h
drivers/net/wireless/libertas/main.c