From 02ed94d5326a572e1104e0c2957497bd8ee5a557 Mon Sep 17 00:00:00 2001 From: Govind Singh Date: Mon, 30 Jan 2017 20:34:03 +0530 Subject: ath10k: Fix STA disconnect issue vdev params are being set after vdev is in down state, this is resulting in firmware crash. Fix this by skipping vdev access after vdev is in down state. CRs-Fixed: 2000365 Change-Id: Ib15f038624682fb324fbd5c43fa5cddf462443cd Signed-off-by: Govind Singh --- drivers/net/wireless/ath/ath10k/core.c | 11 +++++++---- drivers/net/wireless/ath/ath10k/mac.c | 12 +++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'drivers/net/wireless') diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c index bf77ac66c79e..7c4a9c23304c 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -1968,10 +1968,13 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, * possible to implicitly make it correct by creating a dummy vdev and * then deleting it. */ - status = ath10k_core_reset_rx_filter(ar); - if (status) { - ath10k_err(ar, "failed to reset rx filter: %d\n", status); - goto err_hif_stop; + if (!QCA_REV_WCN3990(ar)) { + status = ath10k_core_reset_rx_filter(ar); + if (status) { + ath10k_err(ar, "failed to reset rx filter: %d\n", + status); + goto err_hif_stop; + } } /* If firmware indicates Full Rx Reorder support it must be used in a diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 7a5bfeea8f3d..4433780a61d2 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -2798,11 +2798,13 @@ static void ath10k_bss_disassoc(struct ieee80211_hw *hw, arvif->def_wep_key_idx = -1; - ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); - if (ret) { - ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n", - arvif->vdev_id, ret); - return; + if (!QCA_REV_WCN3990(ar)) { + ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); + if (ret) { + ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n", + arvif->vdev_id, ret); + return; + } } arvif->is_up = false; -- cgit v1.2.3 From 9c3ac0ca0119c86ebefacb2761eddedaec9552fa Mon Sep 17 00:00:00 2001 From: Govind Singh Date: Thu, 2 Feb 2017 11:23:36 +0530 Subject: ath10k: disable HW checksum for WCN3990 HW checksum is not enabled in current release of WCN3990. Disable HW checksum for WCN3990. CRs-Fixed: 2000365 Change-Id: I3b8ee3664150ee8c0c2a8fe9ed1d61c6d32f16b0 Signed-off-by: Govind Singh --- drivers/net/wireless/ath/ath10k/mac.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'drivers/net/wireless') diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 4433780a61d2..aac15b0a3340 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -7989,8 +7989,10 @@ int ath10k_mac_register(struct ath10k *ar) goto err_free; } - if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) - ar->hw->netdev_features = NETIF_F_HW_CSUM; + if (!QCA_REV_WCN3990(ar)) { + if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) + ar->hw->netdev_features = NETIF_F_HW_CSUM; + } if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED)) { /* Init ath dfs pattern detector */ -- cgit v1.2.3