ath9k_hw: simplify rf attach and rename to ath9k_hw_rf_alloc_ext_banks()
ath9k_hw_rfattach() was just calling a helper and this helper was
doing nothing for single-chip devices, and for non single-chip devices
it is just allocating memory for banks to program the RF registers
at a later time. Simplify this by having the hw initialization call
the rf bank allocation directly for external radios.
Also, propagate an -ENOMEM properly now upon failure.
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/ath/ath9k/phy.c b/drivers/net/wireless/ath/ath9k/phy.c
index bd4fb07..f3136b2 100644
--- a/drivers/net/wireless/ath/ath9k/phy.c
+++ b/drivers/net/wireless/ath/ath9k/phy.c
@@ -409,18 +409,16 @@
}
/**
- * ath9k_hw_init_rf - initialize external radio structures
+ * ath9k_hw_rf_alloc_ext_banks - allocates banks for external radio programming
* @ah: atheros hardware structure
- * @status:
*
* Only required for older devices with external AR2133/AR5133 radios.
*/
-bool ath9k_hw_init_rf(struct ath_hw *ah, int *status)
+int ath9k_hw_rf_alloc_ext_banks(struct ath_hw *ah)
{
struct ath_common *common = ath9k_hw_common(ah);
- if (AR_SREV_9280_10_OR_LATER(ah))
- return true;
+ BUG_ON(AR_SREV_9280_10_OR_LATER(ah));
ah->analogBank0Data =
kzalloc((sizeof(u32) *
@@ -453,8 +451,7 @@
|| ah->analogBank7Data == NULL) {
ath_print(common, ATH_DBG_FATAL,
"Cannot allocate RF banks\n");
- *status = -ENOMEM;
- return false;
+ return -ENOMEM;
}
ah->addac5416_21 =
@@ -464,8 +461,7 @@
if (ah->addac5416_21 == NULL) {
ath_print(common, ATH_DBG_FATAL,
"Cannot allocate addac5416_21\n");
- *status = -ENOMEM;
- return false;
+ return -ENOMEM;
}
ah->bank6Temp =
@@ -474,11 +470,10 @@
if (ah->bank6Temp == NULL) {
ath_print(common, ATH_DBG_FATAL,
"Cannot allocate bank6Temp\n");
- *status = -ENOMEM;
- return false;
+ return -ENOMEM;
}
- return true;
+ return 0;
}
/**