wifi: ath12k: advertise P2P dev support for WCN7850
authorKang Yang <quic_kangyang@quicinc.com>
Mon, 5 Feb 2024 17:03:31 +0000 (19:03 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 7 Feb 2024 15:07:00 +0000 (17:07 +0200)
Now that all the necessary pieces are implemented we can enable P2P
support for WCN7850.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

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>
Link: https://msgid.link/20240130040303.370590-12-quic_kangyang@quicinc.com
drivers/net/wireless/ath/ath12k/hw.c
drivers/net/wireless/ath/ath12k/mac.c

index 6e2242a79a2f17554caa9e1b4b4fb457099041fd..0b17dfd47856767fcee1a64ba0be90a0d788c05b 100644 (file)
@@ -956,7 +956,10 @@ static const struct ath12k_hw_params ath12k_hw_params[] = {
                .vdev_start_delay = true,
 
                .interface_modes = BIT(NL80211_IFTYPE_STATION) |
-                                  BIT(NL80211_IFTYPE_AP),
+                                  BIT(NL80211_IFTYPE_AP) |
+                                  BIT(NL80211_IFTYPE_P2P_DEVICE) |
+                                  BIT(NL80211_IFTYPE_P2P_CLIENT) |
+                                  BIT(NL80211_IFTYPE_P2P_GO),
                .supports_monitor = false,
 
                .idle_ps = true,
index 810be179e8b675853a4a995e0593ca7c6b6435ee..a3b002d77a07cd350be0d2d9e857ddd94f7cabb8 100644 (file)
@@ -5799,17 +5799,29 @@ static int ath12k_mac_op_add_interface(struct ieee80211_hw *hw,
        case NL80211_IFTYPE_UNSPECIFIED:
        case NL80211_IFTYPE_STATION:
                arvif->vdev_type = WMI_VDEV_TYPE_STA;
+
+               if (vif->p2p)
+                       arvif->vdev_subtype = WMI_VDEV_SUBTYPE_P2P_CLIENT;
+
                break;
        case NL80211_IFTYPE_MESH_POINT:
                arvif->vdev_subtype = WMI_VDEV_SUBTYPE_MESH_11S;
                fallthrough;
        case NL80211_IFTYPE_AP:
                arvif->vdev_type = WMI_VDEV_TYPE_AP;
+
+               if (vif->p2p)
+                       arvif->vdev_subtype = WMI_VDEV_SUBTYPE_P2P_GO;
+
                break;
        case NL80211_IFTYPE_MONITOR:
                arvif->vdev_type = WMI_VDEV_TYPE_MONITOR;
                ar->monitor_vdev_id = bit;
                break;
+       case NL80211_IFTYPE_P2P_DEVICE:
+               arvif->vdev_type = WMI_VDEV_TYPE_STA;
+               arvif->vdev_subtype = WMI_VDEV_SUBTYPE_P2P_DEVICE;
+               break;
        default:
                WARN_ON(1);
                break;