• P Praneesh's avatar
    ath11k: Disabling credit flow for WMI path · f951380a
    P Praneesh authored
    Firmware credit flow control is enabled for WMI control services,
    which expects available tokens should be acquired before sending a
    command to the target. Also the token gets released when firmware
    receives the command.
    
    This credit-based flow limits driver to send WMI command only
    when the token available which is causing WMI commands to timeout and
    return -EAGAIN, whereas firmware has enough capability to process the
    WMI command. To fix this Tx starvation issue, introduce the ability to
    disable the credit flow for the WMI path.
    
    The driver sends WMI configuration for disabling credit flow to firmware
    by two ways.
    	1. By using a global flag
    		(HTC_MSG_SETUP_COMPLETE_EX_ID msg type flags)
    	2. By using a local flag
    		(ATH11K_HTC_CONN_FLAGS_DISABLE_CREDIT_FLOW_CTRL = 1 << 3)
    
    Ath11k uses both these configurations to disable credit flow for the
    WMI path completely.
    
    Also added a hw_param member for credit flow control by which we can
    enable or disable it based on per-target basis. Currently we are disabling
    credit flow for IPQ8074, IPQ6018, and QCN9074 as recommended by firmware.
    
    Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
    Tested-on: IPQ6018 hw1.0 AHB WLAN.HK.2.4.0.1-00330-QCAHKSWPL_SILICONZ-1
    Co-developed-by: default avatarPravas Kumar Panda <kumarpan@codeaurora.org>
    Signed-off-by: default avatarPravas Kumar Panda <kumarpan@codeaurora.org>
    Signed-off-by: default avatarP Praneesh <quic_ppranees@quicinc.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1635156494-20059-1-git-send-email-quic_ppranees@quicinc.com
    f951380a
wmi.c 207 KB