Merge ath-current from ath.git

ath.git fixes for 4.7. Major changes:

ath9k

* fix GPIO mask regression with AR9462 and AR9565

ath10k

* fix deadlock while processing rx_in_ord_ind
* fix crash related to printing firmware features in debug mode
* fix deadlock when peer cannot be created
This commit is contained in:
Kalle Valo 2016-06-16 17:55:19 +03:00
commit 034fdd4a17
4 changed files with 6 additions and 7 deletions

View file

@ -1083,7 +1083,7 @@ int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name,
} }
ath10k_dbg_dump(ar, ATH10K_DBG_BOOT, "features", "", ath10k_dbg_dump(ar, ATH10K_DBG_BOOT, "features", "",
ar->running_fw->fw_file.fw_features, fw_file->fw_features,
sizeof(fw_file->fw_features)); sizeof(fw_file->fw_features));
break; break;
case ATH10K_FW_IE_FW_IMAGE: case ATH10K_FW_IE_FW_IMAGE:

View file

@ -1904,7 +1904,6 @@ static void ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb)
return; return;
} }
} }
ath10k_htt_rx_msdu_buff_replenish(htt);
} }
static void ath10k_htt_rx_tx_fetch_resp_id_confirm(struct ath10k *ar, static void ath10k_htt_rx_tx_fetch_resp_id_confirm(struct ath10k *ar,

View file

@ -679,10 +679,10 @@ static int ath10k_peer_create(struct ath10k *ar,
peer = ath10k_peer_find(ar, vdev_id, addr); peer = ath10k_peer_find(ar, vdev_id, addr);
if (!peer) { if (!peer) {
spin_unlock_bh(&ar->data_lock);
ath10k_warn(ar, "failed to find peer %pM on vdev %i after creation\n", ath10k_warn(ar, "failed to find peer %pM on vdev %i after creation\n",
addr, vdev_id); addr, vdev_id);
ath10k_wmi_peer_delete(ar, vdev_id, addr); ath10k_wmi_peer_delete(ar, vdev_id, addr);
spin_unlock_bh(&ar->data_lock);
return -ENOENT; return -ENOENT;
} }

View file

@ -1122,12 +1122,12 @@ enum {
#define AR9300_NUM_GPIO 16 #define AR9300_NUM_GPIO 16
#define AR9330_NUM_GPIO 16 #define AR9330_NUM_GPIO 16
#define AR9340_NUM_GPIO 23 #define AR9340_NUM_GPIO 23
#define AR9462_NUM_GPIO 10 #define AR9462_NUM_GPIO 14
#define AR9485_NUM_GPIO 12 #define AR9485_NUM_GPIO 12
#define AR9531_NUM_GPIO 18 #define AR9531_NUM_GPIO 18
#define AR9550_NUM_GPIO 24 #define AR9550_NUM_GPIO 24
#define AR9561_NUM_GPIO 23 #define AR9561_NUM_GPIO 23
#define AR9565_NUM_GPIO 12 #define AR9565_NUM_GPIO 14
#define AR9580_NUM_GPIO 16 #define AR9580_NUM_GPIO 16
#define AR7010_NUM_GPIO 16 #define AR7010_NUM_GPIO 16
@ -1139,12 +1139,12 @@ enum {
#define AR9300_GPIO_MASK 0x0000F4FF #define AR9300_GPIO_MASK 0x0000F4FF
#define AR9330_GPIO_MASK 0x0000F4FF #define AR9330_GPIO_MASK 0x0000F4FF
#define AR9340_GPIO_MASK 0x0000000F #define AR9340_GPIO_MASK 0x0000000F
#define AR9462_GPIO_MASK 0x000003FF #define AR9462_GPIO_MASK 0x00003FFF
#define AR9485_GPIO_MASK 0x00000FFF #define AR9485_GPIO_MASK 0x00000FFF
#define AR9531_GPIO_MASK 0x0000000F #define AR9531_GPIO_MASK 0x0000000F
#define AR9550_GPIO_MASK 0x0000000F #define AR9550_GPIO_MASK 0x0000000F
#define AR9561_GPIO_MASK 0x0000000F #define AR9561_GPIO_MASK 0x0000000F
#define AR9565_GPIO_MASK 0x00000FFF #define AR9565_GPIO_MASK 0x00003FFF
#define AR9580_GPIO_MASK 0x0000F4FF #define AR9580_GPIO_MASK 0x0000F4FF
#define AR7010_GPIO_MASK 0x0000FFFF #define AR7010_GPIO_MASK 0x0000FFFF