lkml.org 
[lkml]   [2016]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.19.y-ckt 02/99] ath10k: fix firmware assert in monitor mode
    Date
    3.19.8-ckt23 -stable review patch.  If anyone has any objections, please let me know.

    ---8<------------------------------------------------------------

    From: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>

    commit 8a75fc54745fd3ce9062ab1cc6429a9da9ac2a68 upstream.

    commit 166de3f1895d ("ath10k: remove supported chain mask") had revealed
    an issue on monitor mode. Configuring NSS upon monitor interface
    creation is causing target assert in all qca9888x and qca6174 firmware.
    Firmware assert issue can be reproduced by below sequence even after
    reverting commit 166de3f1895d ("ath10k: remove supported chain mask").

    ip link set wlan0 down
    iw wlan0 set type monitor
    iw phy0 set antenna 7
    ip link set wlan0 up

    This issue is originally reported on qca9888 with 10.1 firmware.

    Fixes: 5572a95b4b ("ath10k: apply chainmask settings to vdev on creation")
    Reported-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
    Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/net/wireless/ath/ath10k/mac.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
    index bbee156..4505cf7 100644
    --- a/drivers/net/wireless/ath/ath10k/mac.c
    +++ b/drivers/net/wireless/ath/ath10k/mac.c
    @@ -2986,7 +2986,10 @@ static int ath10k_add_interface(struct ieee80211_hw *hw,
    goto err_vdev_delete;
    }

    - if (ar->cfg_tx_chainmask) {
    + /* Configuring number of spatial stream for monitor interface is causing
    + * target assert in qca9888 and qca6174.
    + */
    + if (ar->cfg_tx_chainmask && (vif->type != NL80211_IFTYPE_MONITOR)) {
    u16 nss = get_nss_from_chainmask(ar->cfg_tx_chainmask);

    vdev_param = ar->wmi.vdev_param->nss;
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-07-07 22:01    [W:4.103 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site