mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 14:34:13 -04:00
wifi: ath12k: disable QMI PHY capability learn in split-phy QCN9274
QMI PHY capability learn is used to get PHY count information to support single/multi link operation (SLO/MLO) configuration. The QCN9274 dualmac firmware currently do not support SLO/MLO, if two PHYs are within the same chip. Due to this firmware crashes in split-phy QCN9274, while bringing up AP with MLO parameter enabled in QMI host capability request message. The QMI PHY capability learn is not required for split-phy QCN9274, if SLO/MLO is not supported within the same chip. Hence, disable QMI PHY capability learn support in split-phy QCN9274. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.1.1-00188-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3 Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://msgid.link/20240129065724.2310207-14-quic_rajkbhag@quicinc.com
This commit is contained in:
committed by
Kalle Valo
parent
af9bc78d14
commit
2d3a7384b9
@@ -1218,6 +1218,7 @@ struct ath12k_base *ath12k_core_alloc(struct device *dev, size_t priv_size,
|
||||
ab->dev = dev;
|
||||
ab->hif.bus = bus;
|
||||
ab->qmi.num_radios = U8_MAX;
|
||||
ab->slo_capable = true;
|
||||
|
||||
return ab;
|
||||
|
||||
|
||||
@@ -842,6 +842,11 @@ struct ath12k_base {
|
||||
|
||||
const struct hal_rx_ops *hal_rx_ops;
|
||||
|
||||
/* slo_capable denotes if the single/multi link operation
|
||||
* is supported within the same chip (SoC).
|
||||
*/
|
||||
bool slo_capable;
|
||||
|
||||
/* must be last */
|
||||
u8 drv_priv[] __aligned(sizeof(void *));
|
||||
};
|
||||
|
||||
@@ -385,6 +385,7 @@ int ath12k_mhi_register(struct ath12k_pci *ab_pci)
|
||||
"failed to read board id\n");
|
||||
} else if (board_id & OTP_VALID_DUALMAC_BOARD_ID_MASK) {
|
||||
dualmac = true;
|
||||
ab->slo_capable = false;
|
||||
ath12k_dbg(ab, ATH12K_DBG_BOOT,
|
||||
"dualmac fw selected for board id: %x\n", board_id);
|
||||
}
|
||||
|
||||
@@ -2124,6 +2124,9 @@ static void ath12k_qmi_phy_cap_send(struct ath12k_base *ab)
|
||||
struct qmi_txn txn;
|
||||
int ret;
|
||||
|
||||
if (!ab->slo_capable)
|
||||
goto out;
|
||||
|
||||
ret = qmi_txn_init(&ab->qmi.handle, &txn,
|
||||
qmi_wlanfw_phy_cap_resp_msg_v01_ei, &resp);
|
||||
if (ret < 0)
|
||||
|
||||
Reference in New Issue
Block a user