lkml.org 
[lkml]   [2017]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 078/153] ath10k: fix boot failure in UTF mode/testmode
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Tamizh chelvam <c_traja@qti.qualcomm.com>

    commit cb4281528b62207918b1e95827cad7527aa4dbaa upstream.

    Rx filter reset and the dynamic tx switch mode (EXT_RESOURCE_CFG)
    configuration are causing the following errors when UTF firmware
    is loaded to the target.

    Error message 1:
    [ 598.015629] ath10k_pci 0001:01:00.0: failed to ping firmware: -110
    [ 598.020828] ath10k_pci 0001:01:00.0: failed to reset rx filter: -110
    [ 598.141556] ath10k_pci 0001:01:00.0: failed to start core (testmode): -110

    Error message 2:
    [ 668.615839] ath10k_ahb a000000.wifi: failed to send ext resource cfg command : -95
    [ 668.618902] ath10k_ahb a000000.wifi: failed to start core (testmode): -95

    Avoiding these configurations while bringing the target in
    testmode is solving the problem.

    Signed-off-by: Tamizh chelvam <c_traja@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/ath/ath10k/core.c | 14 +++++++++-----
    1 file changed, 9 insertions(+), 5 deletions(-)

    --- a/drivers/net/wireless/ath/ath10k/core.c
    +++ b/drivers/net/wireless/ath/ath10k/core.c
    @@ -1901,7 +1901,8 @@ int ath10k_core_start(struct ath10k *ar,
    ath10k_dbg(ar, ATH10K_DBG_BOOT, "firmware %s booted\n",
    ar->hw->wiphy->fw_version);

    - if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map)) {
    + if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map) &&
    + mode == ATH10K_FIRMWARE_MODE_NORMAL) {
    val = 0;
    if (ath10k_peer_stats_enabled(ar))
    val = WMI_10_4_PEER_STATS;
    @@ -1954,10 +1955,13 @@ int ath10k_core_start(struct ath10k *ar,
    * 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 (mode == ATH10K_FIRMWARE_MODE_NORMAL) {
    + 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

    \
     
     \ /
      Last update: 2017-03-10 12:18    [W:4.147 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site