summary refs log tree commit diff
path: root/drivers/net/wireless/ath
AgeCommit message (Collapse)Author
2024-01-04wifi: ath11k: fix connection failure due to vdev not startedcnssbldsw
Signed-off-by: cnssbldsw <cnssbldsw@qualcomm.com>
2023-12-26wifi: ath11k: fix firmware crash due to invalid nsscnssbldsw
Signed-off-by: cnssbldsw <cnssbldsw@qualcomm.com> (cherry picked from commit 1c2b795d3e39b17476a3fb5b028fec1375d5a323)
2023-11-17wifi: ath11k: remove extra warning message, move to debugqingzong.ma
2023-11-02wifi: ath11k: fix race due to setting ATH11K_FLAG_EXT_IRQ_ENABLED too earlycnssbldsw
We are seeing below error randomly in one MSI case: kernel: ath11k_pci 0000:03:00.0: wmi command 16387 timeout The reason is, currently, in ath11k_pcic_ext_irq_enable(), ATH11K_FLAG_EXT_IRQ_ENABLED is set before NAPI is enabled, this results in a race condition: after ATH11K_FLAG_EXT_IRQ_ENABLED is set but before NAPI enabled, CE interrupt breaks in, in one MSI case, since IRQ is shared, ath11k_pcic_ext_interrupt_handler() is called where IRQ is disabled. Because NAPI is not enaled at that time, it is not scheduled, meaning ath11k_pcic_ext_grp_napi_poll() will not be called at last, so we have no chance to enable IRQ and finally get above error. Fix it by setting ATH11K_FLAG_EXT_IRQ_ENABLED after all NAPI and IRQ work are done. Signed-off-by: cnssbldsw <cnssbldsw@qualcomm.com>
2023-11-02wifi: ath11k: Send 11d scan start before WMI_START_SCAN_CMDIDManikanta Pubbisetty
Firmwares advertising the support of triggering 11d algorithm on the scan results of a regular scan expects driver to send WMI_11D_SCAN_START_CMDID before sending WMI_START_SCAN_CMDID. Triggering 11d algorithm on the scan results of a normal scan helps in completely avoiding a separate 11d scan for determining regdomain. This indirectly helps in speeding up connections on station interfaces on the chipsets supporting 11D scan. To enable this feature, send WMI_11D_SCAN_START_CMDID just before sending WMI_START_SCAN_CMDID if the firmware advertises WMI_TLV_SERVICE_SUPPORT_11D_FOR_HOST_SCAN service flag. WCN6750 & WCN6855 supports this feature. Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-01160-QCAMSLSWPLZ-1 Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230315161817.29627-1-quic_mpubbise@quicinc.com
2023-11-02Revert "wifi: ath11k: force add set 55 for WMI_VDEV_PARAM_SET_HEMU_MODE as cld"Pierre-Loup A. Griffais
This reverts commit 047982b7295b07ed26fd877d5cdec203d018cb01.
2023-11-02wifi: ath11k: fix double free of peer rx_tid during reo cmd failureHarshitha Prem
Peer rx_tid is locally copied thrice during peer_rx_tid_cleanup to send REO_CMD_UPDATE_RX_QUEUE followed by REO_CMD_FLUSH_CACHE to flush all aged REO descriptors from HW cache. When sending REO_CMD_FLUSH_CACHE fails, we do dma unmap of already mapped rx_tid->vaddr and free it. This is not checked during reo_cmd_list_cleanup() and dp_reo_cmd_free() before trying to free and unmap again. Fix this by setting rx_tid->vaddr NULL in rx tid delete and also wherever freeing it to check in reo_cmd_list_cleanup() and reo_cmd_free() before trying to free again. Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com> Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230403182420.23375-2-quic_hprem@quicinc.com
2023-11-02wifi: ath11k: fix undefined behavior with __fls in dpHarshitha Prem
"__fls" would have an undefined behavior if the argument is passed as "0". Hence, added changes to handle the same. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com> Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230403184155.8670-3-quic_nmaran@quicinc.com
2023-11-02wifi: ath11k: Fix invalid management rx frame length issueBhagavathi Perumal S
The WMI management rx event has multiple arrays of TLVs, however the common WMI TLV parser won't handle multiple TLV tags of same type. So the multiple array tags of WMI management rx TLV is parsed incorrectly and the length calculated becomes wrong when the target sends multiple array tags. Add separate TLV parser to handle multiple arrays for WMI management rx TLV. This fixes invalid length issue when the target sends multiple array tags. Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Signed-off-by: Bhagavathi Perumal S <quic_bperumal@quicinc.com> Co-developed-by: Nagarajan Maran <quic_nmaran@quicinc.com> Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230320133840.30162-1-quic_nmaran@quicinc.com
2023-11-02wifi: ath11k: BACKPORT: Trigger sta disconnect on hardware restartYoughandhar Chintala
Currently after the hardware restart triggered from the driver, the station interface connection remains intact, since a disconnect trigger is not sent to userspace. This can lead to a problem in targets where the wifi mac sequence is added by the firmware. After the target restart, its wifi mac sequence number gets reset to zero. Hence AP to which our device is connected will receive frames with a wifi mac sequence number jump to the past, thereby resulting in the AP dropping all these frames, until the frame arrives with a wifi mac sequence number which AP was expecting. To avoid such frame drops, its better to trigger a station disconnect upon target hardware restart which can be done with API ieee80211_reconfig_disconnect exposed to mac80211. The other targets are not affected by this change, since the hardware params flag is not set. Reported-by: kernel test robot <lkp@intel.com> Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1 Signed-off-by: Youghandhar Chintala <quic_youghand@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20221104085403.11025-1-quic_youghand@quicinc.com accepted upstream changes
2023-11-02wifi: ath11k: Fix firmware crash on vdev delete race conditionSowmiya Sree Elavalagan
Current code does not wait for vdev delete completion on vdev create failures and tries to send another vdev create followed by vdev set param to firmware with same vdev id. This causes firmware crash. Fix this crash by waiting for vdev delete completion on vdev create failures. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.6.0.1-00905-QCAHKSWPL_SILICONZ-1 Signed-off-by: Sowmiya Sree Elavalagan <quic_ssreeela@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20221011095346.3901-1-quic_ssreeela@quicinc.com
2023-11-02wifi: ath11k: Don't exit on wakeup failureBaochen Qiang
Currently, ath11k_pcic_read() returns an error if wakeup() fails, this makes firmware crash debug quite hard because we can get nothing. Change to go ahead on wakeup failure, in that case we still may get something valid to check. There should be no mislead due to incorrect content because we are aware of the failure with the log printed. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20220928015140.5431-1-quic_bqiang@quicinc.com
2023-11-02wifi: ath11k: stop tx queues immediately upon firmware exitAditya Kumar Singh
Currently, recovery flag is set immediately upon firmware exit but tx queues are stopped once firmware arrives back and is ready which is during ath11k_core_restart. Once ieee80211 hw restart is completed, tx queues are resumed. If during the time delta between firmware exit and firmware ready, mac80211 send packets, currently ath11k will drop it since recovery flag will be set. But warning prints will come - "ath11k c000000.wifi: failed to transmit frame -108" If more tx packets are there, this could lead to flooding of above print. However, actually tx queues should be stopped immediately when firmware leaves. This will prevent packets to get dropped when firmware is recovering. Add fix to stop tx queues immediately after firmware exit. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1 Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20220923170235.18873-1-quic_adisi@quicinc.com
2023-11-02wifi: ath11k: change coex_isolation to true for QCA206XBaochen Qiang
don't know why it is false now, change it back to true.
2023-11-02wifi: ath11k: change to match new 6 GHz definition of WMI enumWen Gong
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: send TPC power to firmware for 6 GHz stationWen Gong
When station is connected to a 6 GHz AP, it has 2 way to configure the power limit to firmware. The first way is to send 2 wmi command WMI_PDEV_PARAM_TXPOWER_LIMIT2G/WMI_PDEV_PARAM_TXPOWER_LIMIT5G to firmware, the second way is to send WMI_VDEV_SET_TPC_POWER_CMDID to firmware which include more parameters for power control. The first way is disabled in previous patch "ath11k: discard BSS_CHANGED_TXPOWER when EXT_TPC_REG_SUPPORT for 6 GHz". Prepare the parameter for wmi command WMI_VDEV_SET_TPC_POWER_CMDID and send the firmware after vdev start response success from firmware, it is for the second way of power control. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: add handler for WMI_VDEV_SET_TPC_POWER_CMDIDWen Gong
Add the handler for WMI_VDEV_SET_TPC_POWER_CMDID, it is for 6 GHz band. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: discard BSS_CHANGED_TXPOWER when EXT_TPC_REG_SUPPORT for 6 GHzWen Gong
When station is connected to a 6 GHz AP, it has 2 way to configure the power limit to firmware. The first way is to send 2 wmi command WMI_PDEV_PARAM_TXPOWER_LIMIT2G/WMI_PDEV_PARAM_TXPOWER_LIMIT5G to firmware, the second way is to send WMI_VDEV_SET_TPC_POWER_CMDID to firmware which include more parameters for power control. When firmware support SERVICE_EXT_TPC_REG, it means firmware support the second way for WMI_VDEV_SET_TPC_POWER_CMDID, then ath11k discard BSS_CHANGED_TXPOWER flag from mac80211 which is used to the first way for 6 GHz band in this patch and select the second way in the subsequent patch. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: add WMI_TLV_SERVICE_EXT_TPC_REG_SUPPORT service bitWen Gong
Firmware advertises support for SERVICE_EXT_TPC_REG via a WMI service bit. Add the definition of this service bit so that a subsequent patch can check whether or not firmware supports this service. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: fill parameters for vdev_set_tpc_power wmi commandWen Gong
Prepare the parameters which is needed for wmi cmd vdev_set_tpc_power. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: save max tx power in vdev start response event from firmwareWen Gong
Save the max tx power received in the vdev start response event from firmware. A subsequent patch will use this to calculate the final power value for WMI_VDEV_SET_TPC_POWER_CMDID. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: add parse of transmit power envelope elementWen Gong
The transmit power envelope element has some fields for power, ath11k should parse it according to IEEE Std 802.11ax™‐2021. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: save power spectral density(psd) of regulatory ruleWen Gong
Save the power spectral density(psd) report from firmware to struct ieee80211_reg_rule. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: move udpate channel list to worker for wait flagWen Gong
When wait flag is set for ath11k_reg_update_chan_list(), it maybe wait the completion of 11d/hw scan if 11d/hw scan are running, and now after the previous patch "wifi: ath11k: move update channel list from update reg worker to reg notifier", ath11k_reg_update_chan_list() is called by ath11k_reg_notifier() which is running in the reg_work of cfg80211, the reg_work is running with rtnl_lock() which is a global lock, if the wait of completion of 11d/hw scan happened in ath11k_reg_update_chan_list(), it will increase the time of occupy the rtnl_lock by reg_work, and then increase the wait time of the rtnl_lock for other threads. Move update channel list operation in ath11k_reg_update_chan_list() to a worker of ath11k, then the wait of completion of 11d/hw scan will not happen in reg_work and not increase the time of occupy the rtnl_lock by reg_work. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3 Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: move update channel list from update reg worker to reg notifierWen Gong
Currently ath11k call regulatory_set_wiphy_regd() in ath11k_regd_update() to notify the reg domain change to cfg80211, and then ath11k update the channel list to firmware by ath11k_reg_update_chan_list() immediately in ath11k_regd_update(), they are running in two threads, it leads the channel list data out of sync caused by muti-threads without synchronization. cfg80211 calculate the flags of ieee80211_channel asynchronously in its reg_work, it is calculated by the callstack below and ath11k get the flags of ieee80211_channel in another thread without synchronization for the channel list data. callstack: handle_channel_custom() handle_band_custom() reg_process_self_managed_hint() reg_process_self_managed_hints() reg_todo() ath11k_reg_update_chan_list() need to use the flags calculated by the reg_work, they are two thread and have no synchronization for the flags, then ath11k_reg_update_chan_list() maybe get the wrong flags value before the calculation finished. The correct flow is ath11k_reg_update_chan_list() should be called after the flags finished calculation by reg_work. reg_call_notifier() with initiator type NL80211_REGDOM_SET_BY_DRIVER will be called by reg_process_self_managed_hint() after the calculation finished. So change to update channel list in ath11k_reg_notifier() for initiator type NL80211_REGDOM_SET_BY_DRIVER, then the calculation of flags of ieee80211_channel has already finished and ath11k_reg_update_chan_list() will use the correct value of flags. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3 Fixes: f45cb6b29cd3 ("wifi: ath11k: avoid deadlock during regulatory update in ath11k_regd_update()") Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
2023-11-02wifi: ath11k: update regulatory rules when connect to AP on 6 GHz band for ↵Wen Gong
station When station connect to AP on 6 GHz band, it need switch the regulatory rules according to the regulatory info subfield in HE operation element. Swith to the power type of AP for station mode. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 Signed-off-by: Wen Gong <quic_wgong@quicinc.com> Patchwork-Id: 13270318 Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
2023-11-02wifi: ath11k: update regulatory rules when interface addedWen Gong
When wlan boot up, WMI_REG_CHAN_LIST_CC_EXT_EVENTID is sent from firmware at an early stage, the interface mode is not decided at this point, then ath11k select reg rules of AP mode as default. After interface is created, it is exactly decided AP/station mode, then ath11k need to update reg rules to the exact one. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 Signed-off-by: Wen Gong <quic_wgong@quicinc.com> Patchwork-Id: 13270319 Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
2023-11-02wifi: ath11k: fix a possible dead lock caused by ab->base_lockWen Gong
2023-11-02wifi: ath11k: store cur_regulatory_info for each radioWen Gong
2023-11-02wifi: ath11k: add support to select 6 GHz Regulatory typeWen Gong
2023-11-02wifi: ath11k: add debug prints in regulatory WMI event processingAditya Kumar Singh
Add some more debug prints in processing regulatory WMI event in order to increase more debuggability. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1 Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230110121024.14051-4-quic_adisi@quicinc.com
2023-11-02wifi: ath11k: add support to parse new WMI event for 6 GHzAditya Kumar Singh
In order to support different power levels of 6 GHz AP and client, new WMI event for regulatory - WMI_REG_CHAN_LIST_CC_EXT_EVENTID is added in firmware. This event provides new parameters required for 6 GHz regulatory rules. Add support for parsing 2.4 GHz, 5 GHz and 6 GHz reg rules and other parameters from WMI_REG_CHAN_LIST_CC_EXT_EVENTID. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1 Signed-off-by: Lavanya Suresh <quic_lavaks@quicinc.com> Signed-off-by: Wen Gong <quic_wgong@quicinc.com> Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230110121024.14051-3-quic_adisi@quicinc.com
2023-11-02wifi: ath11k: use proper regulatory reference for bandsAditya Kumar Singh
Currently, during regulatory event, 2 GHz/5 GHz is referred to as 2G/5G including variable names. However, there is no such entity as 2G or 5G. Re-name such occurences to its proper name. No functional changes. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1 Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230110121024.14051-2-quic_adisi@quicinc.com
2023-11-02antenna isolation patch from QuectelPierre-Loup A. Griffais
2023-11-02wifi: ath11k: config BTC mode to FDD by defaultPierre-Loup A. Griffais
Signed-off-by: neil.shi <neil.shi@quectel.com> Signed-off-by: PLG [.h change dropped, was already applied below]
2023-11-02Subject: [PATCH 41/42] wifi: ath11k: change to move ↵neil.shi
WMI_VDEV_PARAM_SET_HEMU_MODE before WMI_PEER_ASSOC_CMDID Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 40/42] wifi: ath11k: add log for ↵neil.shi
HE_MODE_SU_TX_BFER/HE_MODE_MU_TX_BFEE Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 28/42] wifi: ath11k: generate rx and tx mcs maps for ↵neil.shi
supported HE mcs Generate rx and tx mcs maps in ath11k_mac_set_hemcsmap() and set them in supported mcs/nss for HE capabilities. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00356-QCAHKSWPL_SILICONZ-1 Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 27/42] wifi: ath11k: move HE MCS mapper to a separate functionneil.shi
Move HE MCS mapper to a separate function and call new function in ath11k_mac_copy_he_cap(). Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00356-QCAHKSWPL_SILICONZ-1 Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 22/42] wifi: ath11k: set affinity before register MHI controllerneil.shi
Commit 5b32b6dd96633 ("ath11k: Remove core PCI references from PCI common code") breaks one MSI use case because it moves affinity setting after IRQ request, see below error: ` [ 1417.278835] ath11k_pci 0000:02:00.0: failed to receive control response completion, polling.. [ 1418.302829] ath11k_pci 0000:02:00.0: Service connect timeout [ 1418.302833] ath11k_pci 0000:02:00.0: failed to connect to HTT: -110 [ 1418.303669] ath11k_pci 0000:02:00.0: failed to start core: -110 Detailed explanation is, if do affinity request after IRQ activated, which is done in request_irq(), kernel caches that request and returns success directly. Later when a subsequent MHI interrupt is fired, kernel will do the real affinity setting work, as a result, changs the MSI vector. However at that time host has configured old vector to hardware, so host never receives CE or DP interrupts. Fix it by moving it before registering MHI controller where host is the first time doing IRQ requst. Fixes: 5b32b6dd9663 ("ath11k: Remove core PCI references from PCI common code") Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 19/42] wifi: ath11k: support to force rddm modeneil.shi
With this change, user can "echo mhi-rdd" to /sys/kernel/debug/ath11k/QCA6390/hw2.0/simualte_fw_crash to trigger rddm. Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 18/42] wifi: ath11k: Remove disabling of 80+80 and 160 MHzneil.shi
This is a regression fix for 80+80 and 160 MHz support bits being cleared, therefore not adverised. Remove disable of 80+80 and 160 MHz capability flags and assign valid center frequency 2 similar to VHT80_80. Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 17/42] wifi: ath11k: push MU-MIMO params from hostapd to ↵neil.shi
hardware In the previous behaviour only HE IE in management frames are changed regarding MU-MIMO configurations and not in hardware. Adding push of MU-MIMO configurations to the hardware as well. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00356-QCAHKSWPL_SILICONZ-1 Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Subject: [PATCH 26/42] wifi: ath11k: modify accessor macros to match index sizeneil.shi
HE PHY is only 11 bytes, therefore it should be using byte indexes instead of dword. Change corresponding macros to reflect this. Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02Revert "wifi: ath11k: fix number of VHT beamformee spatial streams"Pierre-Loup A. Griffais
This reverts commit 55b5ee3357d7bb98ee578cf9b84a652e7a1bc199.
2023-11-02Revert "ath11k: do not restore ASPM in case of single MSI vector"Pierre-Loup A. Griffais
This reverts commit 915a081ff307d61d6551d6c16b542e03775353c4.
2023-11-02wifi: ath11k: merge all patches to 6.1.11, fix exceptions and compilation errorsneil.shi
Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02wifi: ath11k: add dma36 bit support and direct dmaneil.shi
change mhi-iova_stop and dma_mask to 36 bit export dma_direct_alloc and add a new API for ath11k alloc DMA32 mem for CE ring alloc DMA32 mem for QMI mem request alloc DMA32 mem for DP ring rdp and wrp alloc DMA32 mem for DP ring alloc DMA32 mem for M3.bin Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02wifi: ath11k: add debugfs interface to config coexneil.shi
usage: echo 25 32 > /sys/kernel/debug/ath11k/pci-0000\:04\:00.0/coex_config log: [ 325.861475] ath11k_pci 0000:04:00.0: ath11k_debugfs_write_coex_config: 25 32 [ 325.861487] ath11k_pci 0000:04:00.0: wmi send coex cfg vdev 0 type 25 args 32 0 0 0 0 0 Signed-off-by: neil.shi <neil.shi@quectel.com>
2023-11-02wifi: ath11k: set coex btc mode FDD by defaultneil.shi
Signed-off-by: neil.shi <neil.shi@quectel.com>