Message ID | 20231121022459.17209-1-quic_kangyang@quicinc.com |
---|---|
State | New |
Headers | show |
Series | [v2] wifi: ath12k: fix and enable AP mode for WCN7850 | expand |
On 11/20/2023 6:24 PM, Kang Yang wrote: > For AP mode, the peer is created earlier in ath12k_mac_op_add_interface(). > But ath12k_mac_op_assign_vif_chanctx() will try to create peer again. > Then an error will return which make startup of AP mode fail. > > Kernel log: > [ 5017.665006] ath12k_pci 0000:04:00.0: failed to create peer after vdev start delay: -22 > > wpa_supplicant log: > Failed to set beacon parameters > Interface initialization failed > wls1: interface state UNINITIALIZED->DISABLED > wls1: AP-DISABLED > wls1: Unable to setup interface. > Failed to initialize AP interface > wls1: interface state DISABLED->DISABLED > wls1: AP-DISABLED > > So change this check and enable AP mode for WCN7850, then soft AP can > work normally. > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Signed-off-by: Kang Yang <quic_kangyang@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Kang Yang <quic_kangyang@quicinc.com> wrote: > For AP mode, the peer is created earlier in ath12k_mac_op_add_interface() but > ath12k_mac_op_assign_vif_chanctx() will try to create peer again. Then an > error will return which makes AP mode startup fail. > > Kernel log: > > [ 5017.665006] ath12k_pci 0000:04:00.0: failed to create peer after vdev start delay: -22 > > wpa_supplicant log: > > Failed to set beacon parameters > Interface initialization failed > wls1: interface state UNINITIALIZED->DISABLED > wls1: AP-DISABLED > wls1: Unable to setup interface. > Failed to initialize AP interface > wls1: interface state DISABLED->DISABLED > wls1: AP-DISABLED > > So fix this check and enable AP mode for WCN7850, as now AP mode works normally. > > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 > > Signed-off-by: Kang Yang <quic_kangyang@quicinc.com> > Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Patch applied to ath-next branch of ath.git, thanks. ed7e818a7b50 wifi: ath12k: fix and enable AP mode for WCN7850
diff --git a/drivers/net/wireless/ath/ath12k/hw.c b/drivers/net/wireless/ath/ath12k/hw.c index 2245fb510ba2..b55cf33e37bd 100644 --- a/drivers/net/wireless/ath/ath12k/hw.c +++ b/drivers/net/wireless/ath/ath12k/hw.c @@ -949,7 +949,8 @@ static const struct ath12k_hw_params ath12k_hw_params[] = { .rx_mac_buf_ring = true, .vdev_start_delay = true, - .interface_modes = BIT(NL80211_IFTYPE_STATION), + .interface_modes = BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_AP), .supports_monitor = false, .idle_ps = true, diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c index fc0d14ea328e..b698e55a5b7b 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -6380,8 +6380,8 @@ ath12k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw, } if (ab->hw_params->vdev_start_delay && - (arvif->vdev_type == WMI_VDEV_TYPE_AP || - arvif->vdev_type == WMI_VDEV_TYPE_MONITOR)) { + arvif->vdev_type != WMI_VDEV_TYPE_AP && + arvif->vdev_type != WMI_VDEV_TYPE_MONITOR) { param.vdev_id = arvif->vdev_id; param.peer_type = WMI_PEER_TYPE_DEFAULT; param.peer_addr = ar->mac_addr;
For AP mode, the peer is created earlier in ath12k_mac_op_add_interface(). But ath12k_mac_op_assign_vif_chanctx() will try to create peer again. Then an error will return which make startup of AP mode fail. Kernel log: [ 5017.665006] ath12k_pci 0000:04:00.0: failed to create peer after vdev start delay: -22 wpa_supplicant log: Failed to set beacon parameters Interface initialization failed wls1: interface state UNINITIALIZED->DISABLED wls1: AP-DISABLED wls1: Unable to setup interface. Failed to initialize AP interface wls1: interface state DISABLED->DISABLED wls1: AP-DISABLED So change this check and enable AP mode for WCN7850, then soft AP can work normally. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 Signed-off-by: Kang Yang <quic_kangyang@quicinc.com> --- v2: fix Subject content. -- drivers/net/wireless/ath/ath12k/hw.c | 3 ++- drivers/net/wireless/ath/ath12k/mac.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) base-commit: 9a36440d929d134c56030a8492405708a143f580