diff options
| author | Sujith Manoharan <c_manoha@qca.qualcomm.com> | 2012-11-19 14:24:46 +0530 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2012-11-19 10:45:40 -0500 | 
| commit | ac46ba4384d2c44c56702d0da591696045fba682 (patch) | |
| tree | d96d638823d533c9154bfbbe03af834a25518089 /drivers/net/wireless/ath/ath9k/gpio.c | |
| parent | 57527f8d4d71b5167a02fb6713857f55d3974748 (diff) | |
| download | olio-linux-3.10-ac46ba4384d2c44c56702d0da591696045fba682.tar.xz olio-linux-3.10-ac46ba4384d2c44c56702d0da591696045fba682.zip  | |
ath9k: Fix BTCOEX debugfs file usage
The debugfs file for dumping btcoex parameters unconditionally
assumes a MCI-based device. This will not work for older btcoex
chips. Fix this by branching out the routine into separate
functions.
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/gpio.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/gpio.c | 51 | 
1 files changed, 35 insertions, 16 deletions
diff --git a/drivers/net/wireless/ath/ath9k/gpio.c b/drivers/net/wireless/ath/ath9k/gpio.c index a8ea57b9f49..4236df8ffe6 100644 --- a/drivers/net/wireless/ath/ath9k/gpio.c +++ b/drivers/net/wireless/ath/ath9k/gpio.c @@ -494,35 +494,31 @@ int ath9k_init_btcoex(struct ath_softc *sc)  	return 0;  } -int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 len, u32 size) +static int ath9k_dump_mci_btcoex(struct ath_softc *sc, u8 *buf, u32 size)  { -#define ATH_DUMP_BTCOEX(_s, _val)                                \ -	do {                                                     \ -		len += snprintf(buf + len, size - len,           \ -				"%20s : %10d\n", _s, (_val));    \ -	} while (0) -  	struct ath_btcoex *btcoex = &sc->btcoex;  	struct ath_mci_profile *mci = &btcoex->mci;  	struct ath_hw *ah = sc->sc_ah;  	struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw; +	u32 len = 0;  	int i;  	ATH_DUMP_BTCOEX("Total BT profiles", NUM_PROF(mci)); -	ATH_DUMP_BTCOEX("Number of MGMT", mci->num_mgmt); -	ATH_DUMP_BTCOEX("Number of SCO", mci->num_sco); -	ATH_DUMP_BTCOEX("Number of A2DP", mci->num_a2dp); -	ATH_DUMP_BTCOEX("Number of HID", mci->num_hid); -	ATH_DUMP_BTCOEX("Number of PAN", mci->num_pan); -	ATH_DUMP_BTCOEX("Number of ACL", mci->num_other_acl); -	ATH_DUMP_BTCOEX("Number of BDR", mci->num_bdr); +	ATH_DUMP_BTCOEX("MGMT", mci->num_mgmt); +	ATH_DUMP_BTCOEX("SCO", mci->num_sco); +	ATH_DUMP_BTCOEX("A2DP", mci->num_a2dp); +	ATH_DUMP_BTCOEX("HID", mci->num_hid); +	ATH_DUMP_BTCOEX("PAN", mci->num_pan); +	ATH_DUMP_BTCOEX("ACL", mci->num_other_acl); +	ATH_DUMP_BTCOEX("BDR", mci->num_bdr);  	ATH_DUMP_BTCOEX("Aggr. Limit", mci->aggr_limit);  	ATH_DUMP_BTCOEX("Stomp Type", btcoex->bt_stomp_type);  	ATH_DUMP_BTCOEX("BTCoex Period (msec)", btcoex->btcoex_period);  	ATH_DUMP_BTCOEX("Duty Cycle", btcoex->duty_cycle);  	ATH_DUMP_BTCOEX("BT Wait time", btcoex->bt_wait_time);  	ATH_DUMP_BTCOEX("Concurrent Tx", btcoex_hw->mci.concur_tx); -	ATH_DUMP_BTCOEX("Concur RSSI count", btcoex->rssi_count); +	ATH_DUMP_BTCOEX("Concurrent RSSI cnt", btcoex->rssi_count); +  	len += snprintf(buf + len, size - len, "BT Weights: ");  	for (i = 0; i < AR9300_NUM_BT_WEIGHTS; i++)  		len += snprintf(buf + len, size - len, "%08x ", @@ -537,9 +533,32 @@ int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 len, u32 size)  	for (i = 0; i < ATH_BTCOEX_STOMP_MAX; i++)  		len += snprintf(buf + len, size - len, "%08x ",  				btcoex_hw->tx_prio[i]); +  	len += snprintf(buf + len, size - len, "\n"); -#undef ATH_DUMP_BTCOEX  	return len;  } + +static int ath9k_dump_legacy_btcoex(struct ath_softc *sc, u8 *buf, u32 size) +{ + +	struct ath_btcoex *btcoex = &sc->btcoex; +	u32 len = 0; + +	ATH_DUMP_BTCOEX("Stomp Type", btcoex->bt_stomp_type); +	ATH_DUMP_BTCOEX("BTCoex Period (msec)", btcoex->btcoex_period); +	ATH_DUMP_BTCOEX("Duty Cycle", btcoex->duty_cycle); +	ATH_DUMP_BTCOEX("BT Wait time", btcoex->bt_wait_time); + +	return len; +} + +int ath9k_dump_btcoex(struct ath_softc *sc, u8 *buf, u32 size) +{ +	if (ath9k_hw_mci_is_enabled(sc->sc_ah)) +		return ath9k_dump_mci_btcoex(sc, buf, size); +	else +		return ath9k_dump_legacy_btcoex(sc, buf, size); +} +  #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */  |