Patch "wifi: ath11k: Fix CE offset address calculation for WCN6750 in SSR" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: ath11k: Fix CE offset address calculation for WCN6750 in SSR

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-ath11k-fix-ce-offset-address-calculation-for-wc.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 4802abdb48533e24876c7dee9c35fdcaa89d80c4
Author: Balaji Pothunoori <quic_bpothuno@xxxxxxxxxxx>
Date:   Fri Sep 27 15:28:25 2024 +0530

    wifi: ath11k: Fix CE offset address calculation for WCN6750 in SSR
    
    [ Upstream commit 4c57ec6c4bb9979b42ae7fa7273fc2d4a361d576 ]
    
    Currently, mem_ce and mem iomem addresses are used to calculate the
    CE offset address. mem_ce is initialized with mem address, and for
    targets where ce_remap is needed, mem_ce is remapped to a new address
    space during AHB probe.
    
    For targets such as WCN6750 in which CE address space is same as WCSS
    address space (i.e. "ce_remap" hw_param is set to false), mem_ce and
    mem iomem addresses are same. In the initial SRNG setup for such targets,
    the CE offset address and hence CE register base addresses are
    calculated correctly in ath11k_hal_srng_init() as both mem and mem_ce
    are initialized with same iomem address.
    
    Later, after the firmware download, mem is initialized with BAR address
    received in qmi_wlanfw_device_info_resp_msg_v01 QMI message, while mem_ce
    is not updated.
    
    After initial setup success, during Subsystem Restart (SSR), as part
    of reinitialization, ath11k_hal_srng_init() will be called again,
    and CE offset address will be calculated incorrectly this time as mem_ce
    address was not updated. Due to the incorrect CE offset address,
    APPS accesses an invalid CE register address which leads to improper
    behavior in firmware after SSR is triggered.
    
    To fix the above issue, update mem_ce to mem iomem address in
    ath11k_qmi_request_device_info() for targets which do not support
    ce_remap feature.
    
    Signed-off-by: Balaji Pothunoori <quic_bpothuno@xxxxxxxxxxx>
    Fixes: b42b3678c91f ("wifi: ath11k: remap ce register space for IPQ5018")
    Link: https://patch.msgid.link/20240927095825.22317-1-quic_bpothuno@xxxxxxxxxxx
    Signed-off-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c
index 83dc284392de2..fa46e645009cf 100644
--- a/drivers/net/wireless/ath/ath11k/qmi.c
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
@@ -2180,6 +2180,9 @@ static int ath11k_qmi_request_device_info(struct ath11k_base *ab)
 	ab->mem = bar_addr_va;
 	ab->mem_len = resp.bar_size;
 
+	if (!ab->hw_params.ce_remap)
+		ab->mem_ce = ab->mem;
+
 	return 0;
 out:
 	return ret;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux