mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-27 14:28:05 +00:00
88867c1d96
Move non-essential, outdated, best-effort pieces, as well, as those requiring extra non-standard dependencies besides oe-core. Signed-off-by: Denys Dmytriyenko <denys@ti.com>
87 lines
2.5 KiB
Diff
87 lines
2.5 KiB
Diff
From dd812452fb91de492a8fd8d838d16cfc67cbfcf4 Mon Sep 17 00:00:00 2001
|
|
From: Eliad Peller <eliad@wizery.com>
|
|
Date: Thu, 28 Oct 2010 21:46:43 +0200
|
|
Subject: [PATCH 05/15] wl1271: set wl->vif only if add_interface succeeded.
|
|
|
|
set wl->vif to the newly created interface only after the firmware booted
|
|
successfully. on the way - make the function flow more clear.
|
|
|
|
Signed-off-by: Eliad Peller <eliad@wizery.com>
|
|
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
|
|
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
|
|
---
|
|
drivers/net/wireless/wl12xx/wl1271_main.c | 33 +++++++++++++++++-----------
|
|
1 files changed, 20 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
|
|
index 49ec0ef..78273c9 100644
|
|
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
|
|
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
|
|
@@ -939,18 +939,19 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
|
|
struct wiphy *wiphy = hw->wiphy;
|
|
int retries = WL1271_BOOT_RETRIES;
|
|
int ret = 0;
|
|
+ bool booted = false;
|
|
|
|
wl1271_debug(DEBUG_MAC80211, "mac80211 add interface type %d mac %pM",
|
|
vif->type, vif->addr);
|
|
|
|
mutex_lock(&wl->mutex);
|
|
if (wl->vif) {
|
|
+ wl1271_debug(DEBUG_MAC80211,
|
|
+ "multiple vifs are not supported yet");
|
|
ret = -EBUSY;
|
|
goto out;
|
|
}
|
|
|
|
- wl->vif = vif;
|
|
-
|
|
switch (vif->type) {
|
|
case NL80211_IFTYPE_STATION:
|
|
wl->bss_type = BSS_TYPE_STA_BSS;
|
|
@@ -988,15 +989,8 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
|
|
if (ret < 0)
|
|
goto irq_disable;
|
|
|
|
- wl->state = WL1271_STATE_ON;
|
|
- wl1271_info("firmware booted (%s)", wl->chip.fw_ver);
|
|
-
|
|
- /* update hw/fw version info in wiphy struct */
|
|
- wiphy->hw_version = wl->chip.id;
|
|
- strncpy(wiphy->fw_version, wl->chip.fw_ver,
|
|
- sizeof(wiphy->fw_version));
|
|
-
|
|
- goto out;
|
|
+ booted = true;
|
|
+ break;
|
|
|
|
irq_disable:
|
|
wl1271_disable_interrupts(wl);
|
|
@@ -1014,8 +1008,21 @@ power_off:
|
|
wl1271_power_off(wl);
|
|
}
|
|
|
|
- wl1271_error("firmware boot failed despite %d retries",
|
|
- WL1271_BOOT_RETRIES);
|
|
+ if (!booted) {
|
|
+ wl1271_error("firmware boot failed despite %d retries",
|
|
+ WL1271_BOOT_RETRIES);
|
|
+ goto out;
|
|
+ }
|
|
+
|
|
+ wl->vif = vif;
|
|
+ wl->state = WL1271_STATE_ON;
|
|
+ wl1271_info("firmware booted (%s)", wl->chip.fw_ver);
|
|
+
|
|
+ /* update hw/fw version info in wiphy struct */
|
|
+ wiphy->hw_version = wl->chip.id;
|
|
+ strncpy(wiphy->fw_version, wl->chip.fw_ver,
|
|
+ sizeof(wiphy->fw_version));
|
|
+
|
|
out:
|
|
mutex_unlock(&wl->mutex);
|
|
|
|
--
|
|
1.6.6.1
|
|
|