Commit fdcbe65d authored by Kalle Valo's avatar Kalle Valo

Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git

ath.git patches for 4.13. Major changes:

Only bugfixes or cleanups, no new features.
parents 3334c28e 6788a383
...@@ -1392,7 +1392,7 @@ static int ath10k_vdev_stop(struct ath10k_vif *arvif) ...@@ -1392,7 +1392,7 @@ static int ath10k_vdev_stop(struct ath10k_vif *arvif)
ret = ath10k_vdev_setup_sync(ar); ret = ath10k_vdev_setup_sync(ar);
if (ret) { if (ret) {
ath10k_warn(ar, "failed to syncronise setup for vdev %i: %d\n", ath10k_warn(ar, "failed to synchronize setup for vdev %i: %d\n",
arvif->vdev_id, ret); arvif->vdev_id, ret);
return ret; return ret;
} }
......
...@@ -469,7 +469,7 @@ static int ath10k_pci_wake_wait(struct ath10k *ar) ...@@ -469,7 +469,7 @@ static int ath10k_pci_wake_wait(struct ath10k *ar)
while (tot_delay < PCIE_WAKE_TIMEOUT) { while (tot_delay < PCIE_WAKE_TIMEOUT) {
if (ath10k_pci_is_awake(ar)) { if (ath10k_pci_is_awake(ar)) {
if (tot_delay > PCIE_WAKE_LATE_US) if (tot_delay > PCIE_WAKE_LATE_US)
ath10k_warn(ar, "device wakeup took %d ms which is unusally long, otherwise it works normally.\n", ath10k_warn(ar, "device wakeup took %d ms which is unusually long, otherwise it works normally.\n",
tot_delay / 1000); tot_delay / 1000);
return 0; return 0;
} }
......
...@@ -1553,7 +1553,7 @@ static int ath10k_sdio_hif_diag_read(struct ath10k *ar, u32 address, void *buf, ...@@ -1553,7 +1553,7 @@ static int ath10k_sdio_hif_diag_read(struct ath10k *ar, u32 address, void *buf,
/* read the data */ /* read the data */
ret = ath10k_sdio_read(ar, MBOX_WINDOW_DATA_ADDRESS, buf, buf_len); ret = ath10k_sdio_read(ar, MBOX_WINDOW_DATA_ADDRESS, buf, buf_len);
if (ret) { if (ret) {
ath10k_warn(ar, "failed to read from mbox window data addrress: %d\n", ath10k_warn(ar, "failed to read from mbox window data address: %d\n",
ret); ret);
return ret; return ret;
} }
...@@ -1592,7 +1592,7 @@ static int ath10k_sdio_hif_diag_write_mem(struct ath10k *ar, u32 address, ...@@ -1592,7 +1592,7 @@ static int ath10k_sdio_hif_diag_write_mem(struct ath10k *ar, u32 address,
ret = ath10k_sdio_write(ar, MBOX_WINDOW_DATA_ADDRESS, data, nbytes); ret = ath10k_sdio_write(ar, MBOX_WINDOW_DATA_ADDRESS, data, nbytes);
if (ret) { if (ret) {
ath10k_warn(ar, ath10k_warn(ar,
"failed to write 0x%p to mbox window data addrress: %d\n", "failed to write 0x%p to mbox window data address: %d\n",
data, ret); data, ret);
return ret; return ret;
} }
......
...@@ -63,7 +63,7 @@ ath10k_thermal_set_cur_throttle_state(struct thermal_cooling_device *cdev, ...@@ -63,7 +63,7 @@ ath10k_thermal_set_cur_throttle_state(struct thermal_cooling_device *cdev,
return 0; return 0;
} }
static struct thermal_cooling_device_ops ath10k_thermal_ops = { static const struct thermal_cooling_device_ops ath10k_thermal_ops = {
.get_max_state = ath10k_thermal_get_max_throttle_state, .get_max_state = ath10k_thermal_get_max_throttle_state,
.get_cur_state = ath10k_thermal_get_cur_throttle_state, .get_cur_state = ath10k_thermal_get_cur_throttle_state,
.set_cur_state = ath10k_thermal_set_cur_throttle_state, .set_cur_state = ath10k_thermal_set_cur_throttle_state,
......
...@@ -2022,7 +2022,7 @@ ath10k_wmi_tlv_op_gen_sta_keepalive(struct ath10k *ar, ...@@ -2022,7 +2022,7 @@ ath10k_wmi_tlv_op_gen_sta_keepalive(struct ath10k *ar,
arp->dest_ip4_addr = arg->dest_ip4_addr; arp->dest_ip4_addr = arg->dest_ip4_addr;
ether_addr_copy(arp->dest_mac_addr.addr, arg->dest_mac_addr); ether_addr_copy(arp->dest_mac_addr.addr, arg->dest_mac_addr);
ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv sta keepalive vdev %d enabled %d method %d inverval %d\n", ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv sta keepalive vdev %d enabled %d method %d interval %d\n",
arg->vdev_id, arg->enabled, arg->method, arg->interval); arg->vdev_id, arg->enabled, arg->method, arg->interval);
return skb; return skb;
} }
......
...@@ -1821,8 +1821,6 @@ static void ar9003_hw_spectral_scan_wait(struct ath_hw *ah) ...@@ -1821,8 +1821,6 @@ static void ar9003_hw_spectral_scan_wait(struct ath_hw *ah)
static void ar9003_hw_tx99_start(struct ath_hw *ah, u32 qnum) static void ar9003_hw_tx99_start(struct ath_hw *ah, u32 qnum)
{ {
REG_SET_BIT(ah, AR_PHY_TEST, PHY_AGC_CLR); REG_SET_BIT(ah, AR_PHY_TEST, PHY_AGC_CLR);
REG_SET_BIT(ah, 0x9864, 0x7f000);
REG_SET_BIT(ah, 0x9924, 0x7f00fe);
REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_DIS); REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_DIS);
REG_WRITE(ah, AR_CR, AR_CR_RXD); REG_WRITE(ah, AR_CR, AR_CR_RXD);
REG_WRITE(ah, AR_DLCL_IFS(qnum), 0); REG_WRITE(ah, AR_DLCL_IFS(qnum), 0);
......
...@@ -731,12 +731,12 @@ static int ath9k_start(struct ieee80211_hw *hw) ...@@ -731,12 +731,12 @@ static int ath9k_start(struct ieee80211_hw *hw)
spin_unlock_bh(&sc->sc_pcu_lock); spin_unlock_bh(&sc->sc_pcu_lock);
ath9k_rng_start(sc);
mutex_unlock(&sc->mutex); mutex_unlock(&sc->mutex);
ath9k_ps_restore(sc); ath9k_ps_restore(sc);
ath9k_rng_start(sc);
return 0; return 0;
} }
...@@ -826,10 +826,10 @@ static void ath9k_stop(struct ieee80211_hw *hw) ...@@ -826,10 +826,10 @@ static void ath9k_stop(struct ieee80211_hw *hw)
ath9k_deinit_channel_context(sc); ath9k_deinit_channel_context(sc);
ath9k_rng_stop(sc);
mutex_lock(&sc->mutex); mutex_lock(&sc->mutex);
ath9k_rng_stop(sc);
ath_cancel_work(sc); ath_cancel_work(sc);
if (test_bit(ATH_OP_INVALID, &common->op_flags)) { if (test_bit(ATH_OP_INVALID, &common->op_flags)) {
......
...@@ -548,7 +548,7 @@ void ath_mci_intr(struct ath_softc *sc) ...@@ -548,7 +548,7 @@ void ath_mci_intr(struct ath_softc *sc)
if (mci_int_rxmsg & AR_MCI_INTERRUPT_RX_MSG_SCHD_INFO) { if (mci_int_rxmsg & AR_MCI_INTERRUPT_RX_MSG_SCHD_INFO) {
mci_int_rxmsg &= ~AR_MCI_INTERRUPT_RX_MSG_SCHD_INFO; mci_int_rxmsg &= ~AR_MCI_INTERRUPT_RX_MSG_SCHD_INFO;
offset = ar9003_mci_state(ah, MCI_STATE_LAST_SCHD_MSG_OFFSET); ar9003_mci_state(ah, MCI_STATE_LAST_SCHD_MSG_OFFSET);
} }
if (mci_int_rxmsg & AR_MCI_INTERRUPT_RX_MSG_GPM) { if (mci_int_rxmsg & AR_MCI_INTERRUPT_RX_MSG_GPM) {
......
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
#define ATH9K_RNG_BUF_SIZE 320 #define ATH9K_RNG_BUF_SIZE 320
#define ATH9K_RNG_ENTROPY(x) (((x) * 8 * 10) >> 5) /* quality: 10/32 */ #define ATH9K_RNG_ENTROPY(x) (((x) * 8 * 10) >> 5) /* quality: 10/32 */
static DECLARE_WAIT_QUEUE_HEAD(rng_queue);
static int ath9k_rng_data_read(struct ath_softc *sc, u32 *buf, u32 buf_size) static int ath9k_rng_data_read(struct ath_softc *sc, u32 *buf, u32 buf_size)
{ {
int i, j; int i, j;
...@@ -85,7 +87,9 @@ static int ath9k_rng_kthread(void *data) ...@@ -85,7 +87,9 @@ static int ath9k_rng_kthread(void *data)
ATH9K_RNG_BUF_SIZE); ATH9K_RNG_BUF_SIZE);
if (unlikely(!bytes_read)) { if (unlikely(!bytes_read)) {
delay = ath9k_rng_delay_get(++fail_stats); delay = ath9k_rng_delay_get(++fail_stats);
msleep_interruptible(delay); wait_event_interruptible_timeout(rng_queue,
kthread_should_stop(),
msecs_to_jiffies(delay));
continue; continue;
} }
...@@ -120,6 +124,8 @@ void ath9k_rng_start(struct ath_softc *sc) ...@@ -120,6 +124,8 @@ void ath9k_rng_start(struct ath_softc *sc)
void ath9k_rng_stop(struct ath_softc *sc) void ath9k_rng_stop(struct ath_softc *sc)
{ {
if (sc->rng_task) if (sc->rng_task) {
kthread_stop(sc->rng_task); kthread_stop(sc->rng_task);
sc->rng_task = NULL;
}
} }
...@@ -189,22 +189,27 @@ static ssize_t write_file_tx99(struct file *file, const char __user *user_buf, ...@@ -189,22 +189,27 @@ static ssize_t write_file_tx99(struct file *file, const char __user *user_buf,
if (strtobool(buf, &start)) if (strtobool(buf, &start))
return -EINVAL; return -EINVAL;
mutex_lock(&sc->mutex);
if (start == sc->tx99_state) { if (start == sc->tx99_state) {
if (!start) if (!start)
return count; goto out;
ath_dbg(common, XMIT, "Resetting TX99\n"); ath_dbg(common, XMIT, "Resetting TX99\n");
ath9k_tx99_deinit(sc); ath9k_tx99_deinit(sc);
} }
if (!start) { if (!start) {
ath9k_tx99_deinit(sc); ath9k_tx99_deinit(sc);
return count; goto out;
} }
r = ath9k_tx99_init(sc); r = ath9k_tx99_init(sc);
if (r) if (r) {
mutex_unlock(&sc->mutex);
return r; return r;
}
out:
mutex_unlock(&sc->mutex);
return count; return count;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment