--- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
-@@ -215,7 +215,8 @@ static void ar9002_hw_fill_txdesc(struct
+@@ -205,7 +205,8 @@ static void ar9002_hw_fill_txdesc(struct
}
static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds,
+ void *txs_desc)
{
struct ar5416_desc *ads = AR5416DESC(ds);
-
+ u32 status;
--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
@@ -234,7 +234,8 @@ static void ar9003_hw_fill_txdesc(struct
+ void *txs_desc)
{
struct ar9003_txs *ads;
-
-@@ -305,6 +306,7 @@ static int ar9003_hw_proc_txdesc(struct
-
- ts->tid = MS(ads->status8, AR_TxTid);
+ u32 status;
+@@ -308,6 +309,7 @@ static int ar9003_hw_proc_txdesc(struct
+ ts->ts_rssi_ext1 = MS(status, AR_TxRSSIAnt11);
+ ts->ts_rssi_ext2 = MS(status, AR_TxRSSIAnt12);
+ memcpy(txs_desc, ads, sizeof(*ads));
memset(ads, 0, sizeof(*ads));
/*
* Header for the ath9k.ko driver core *only* -- hw code nor any other driver
-@@ -563,6 +564,7 @@ struct ath_ant_comb {
+@@ -561,6 +562,7 @@ struct ath_ant_comb {
#define SC_OP_BT_PRIORITY_DETECTED BIT(12)
#define SC_OP_BT_SCAN BIT(13)
#define SC_OP_ANI_RUN BIT(14)
/* Powersave flags */
#define PS_WAIT_FOR_BEACON BIT(0)
-@@ -639,6 +641,10 @@ struct ath_softc {
+@@ -637,6 +639,10 @@ struct ath_softc {
#ifdef CONFIG_ATH9K_DEBUGFS
struct ath9k_debug debug;
#endif
static inline void ath9k_hw_set11n_txdesc(struct ath_hw *ah, void *ds,
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2129,7 +2129,7 @@ void ath9k_hw_setrxfilter(struct ath_hw
+@@ -2140,7 +2140,7 @@ void ath9k_hw_setrxfilter(struct ath_hw
phybits |= AR_PHY_ERR_RADAR;
if (bits & ATH9K_RX_FILTER_PHYERR)
phybits |= AR_PHY_ERR_OFDM_TIMING | AR_PHY_ERR_CCK_TIMING;
void (*set11n_txdesc)(struct ath_hw *ah, void *ds,
u32 pktLen, enum ath9k_pkt_type type,
u32 txPower, u32 keyIx,
-@@ -796,6 +796,8 @@ struct ath_hw {
+@@ -797,6 +797,8 @@ struct ath_hw {
* this register when in sleep states.
*/
u32 WARegVal;
+#endif
--- a/drivers/net/wireless/ath/ath9k/rc.c
+++ b/drivers/net/wireless/ath/ath9k/rc.c
-@@ -599,7 +599,7 @@ static u8 ath_rc_setvalid_htrates(struct
+@@ -580,7 +580,7 @@ static u8 ath_rc_setvalid_htrates(struct
static u8 ath_rc_get_highest_rix(struct ath_softc *sc,
struct ath_rate_priv *ath_rc_priv,
const struct ath_rate_table *rate_table,
{
u32 best_thruput, this_thruput, now_msec;
u8 rate, next_rate, best_rate, maxindex, minindex;
-@@ -690,6 +690,8 @@ static u8 ath_rc_get_highest_rix(struct
+@@ -671,6 +671,8 @@ static u8 ath_rc_get_highest_rix(struct
rate = ath_rc_priv->valid_rate_index[0];
return rate;
}
-@@ -781,7 +783,7 @@ static void ath_get_rate(void *priv, str
+@@ -762,7 +764,7 @@ static void ath_get_rate(void *priv, str
try_per_rate = 4;
rate_table = ath_rc_priv->rate_table;
/*
* If we're in HT mode and both us and our peer supports LDPC.
-@@ -1031,7 +1033,8 @@ static void ath_debug_stat_retries(struc
+@@ -1012,7 +1014,8 @@ static void ath_debug_stat_retries(struc
static void ath_rc_update_ht(struct ath_softc *sc,
struct ath_rate_priv *ath_rc_priv,
struct ieee80211_tx_info *tx_info,
{
u32 now_msec = jiffies_to_msecs(jiffies);
int rate;
-@@ -1100,6 +1103,9 @@ static void ath_rc_update_ht(struct ath_
+@@ -1081,6 +1084,9 @@ static void ath_rc_update_ht(struct ath_
ath_debug_stat_retries(ath_rc_priv, tx_rate, xretries, retries,
ath_rc_priv->per[tx_rate]);
}
static int ath_rc_get_rateindex(const struct ath_rate_table *rate_table,
-@@ -1132,7 +1138,8 @@ static int ath_rc_get_rateindex(const st
+@@ -1113,7 +1119,8 @@ static int ath_rc_get_rateindex(const st
static void ath_rc_tx_status(struct ath_softc *sc,
struct ath_rate_priv *ath_rc_priv,
struct ieee80211_tx_info *tx_info,
{
const struct ath_rate_table *rate_table;
struct ieee80211_tx_rate *rates = tx_info->status.rates;
-@@ -1161,7 +1168,7 @@ static void ath_rc_tx_status(struct ath_
+@@ -1142,7 +1149,7 @@ static void ath_rc_tx_status(struct ath_
rix = ath_rc_get_rateindex(rate_table, &rates[i]);
ath_rc_update_ht(sc, ath_rc_priv, tx_info,
rix, xretries ? 1 : 2,
}
}
} else {
-@@ -1183,7 +1190,7 @@ static void ath_rc_tx_status(struct ath_
+@@ -1164,7 +1171,7 @@ static void ath_rc_tx_status(struct ath_
return;
rix = ath_rc_get_rateindex(rate_table, &rates[i]);
}
static const
-@@ -1393,7 +1400,8 @@ static void ath_tx_status(void *priv, st
+@@ -1374,7 +1381,8 @@ static void ath_tx_status(void *priv, st
tx_status = 1;
ath_rc_tx_status(sc, ath_rc_priv, tx_info, final_ts_idx, tx_status,
if (conf_is_ht(&sc->hw->conf) &&
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -1629,6 +1629,7 @@ int ath_rx_tasklet(struct ath_softc *sc,
+@@ -1617,6 +1617,7 @@ int ath_rx_tasklet(struct ath_softc *sc,
struct ieee80211_rx_status *rxs;
struct ath_hw *ah = sc->sc_ah;
struct ath_common *common = ath9k_hw_common(ah);
/*
* The hw can techncically differ from common->hw when using ath9k
* virtual wiphy so to account for that we iterate over the active
-@@ -1721,12 +1722,24 @@ int ath_rx_tasklet(struct ath_softc *sc,
+@@ -1709,12 +1710,24 @@ int ath_rx_tasklet(struct ath_softc *sc,
dma_type);
skb_put(skb, rs.rs_datalen + ah->caps.rx_status_len);
if (!txpending || (tid->state & AGGR_CLEANUP)) {
/*
* complete the acked-ones/xretried ones; update
-@@ -2084,7 +2086,7 @@ static void ath_tx_processq(struct ath_s
+@@ -2082,7 +2084,7 @@ static void ath_tx_processq(struct ath_s
ds = lastbf->bf_desc;
memset(&ts, 0, sizeof(ts));
if (status == -EINPROGRESS) {
spin_unlock_bh(&txq->axq_lock);
break;
-@@ -2121,10 +2123,14 @@ static void ath_tx_processq(struct ath_s
+@@ -2119,10 +2121,14 @@ static void ath_tx_processq(struct ath_s
ath_tx_rc_status(bf, &ts, txok ? 0 : 1, txok, true);
}
ath_wake_mac80211_queue(sc, txq);
-@@ -2196,9 +2202,11 @@ void ath_tx_edma_tasklet(struct ath_soft
+@@ -2194,9 +2200,11 @@ void ath_tx_edma_tasklet(struct ath_soft
struct list_head bf_head;
int status;
int txok;
if (status == -EINPROGRESS)
break;
if (status == -EIO) {
-@@ -2239,14 +2247,18 @@ void ath_tx_edma_tasklet(struct ath_soft
+@@ -2237,14 +2245,18 @@ void ath_tx_edma_tasklet(struct ath_soft
ath_tx_rc_status(bf, &txs, txok ? 0 : 1, txok, true);
}
static struct usb_device_id btusb_table[] = {
/* Generic Bluetooth USB device */
{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
-@@ -869,6 +890,7 @@ static int btusb_probe(struct usb_interf
+@@ -872,6 +893,7 @@ static int btusb_probe(struct usb_interf
struct btusb_data *data;
struct hci_dev *hdev;
int i, err;
BT_DBG("intf %p id %p", intf, id);
-@@ -928,6 +950,19 @@ static int btusb_probe(struct usb_interf
+@@ -931,6 +953,19 @@ static int btusb_probe(struct usb_interf
data->udev = interface_to_usbdev(intf);
data->intf = intf;
spin_lock_init(&data->lock);
INIT_WORK(&data->work, btusb_work);
-@@ -1038,12 +1073,26 @@ static void btusb_disconnect(struct usb_
+@@ -1041,12 +1076,26 @@ static void btusb_disconnect(struct usb_
{
struct btusb_data *data = usb_get_intfdata(intf);
struct hci_dev *hdev;
hdev = data->hdev;
__hci_dev_hold(hdev);
-@@ -1069,12 +1118,22 @@ static void btusb_disconnect(struct usb_
+@@ -1072,12 +1121,22 @@ static void btusb_disconnect(struct usb_
static int btusb_suspend(struct usb_interface *intf, pm_message_t message)
{
struct btusb_data *data = usb_get_intfdata(intf);
spin_lock_irq(&data->txlock);
if (!((message.event & PM_EVENT_AUTO) && data->tx_in_flight)) {
set_bit(BTUSB_SUSPENDING, &data->flags);
-@@ -1187,6 +1246,14 @@ static int __init btusb_init(void)
+@@ -1190,6 +1249,14 @@ static int __init btusb_init(void)
static void __exit btusb_exit(void)
{