diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c index 23c8042809ca..d172e753de11 100644 --- a/drivers/net/wireless/ath/wil6210/cfg80211.c +++ b/drivers/net/wireless/ath/wil6210/cfg80211.c @@ -1551,8 +1551,14 @@ static int wil_cfg80211_connect(struct wiphy *wiphy, rc = wmi_send(wil, WMI_CONNECT_CMDID, vif->mid, &conn, sizeof(conn)); if (rc == 0) { netif_carrier_on(ndev); - if (!wil_has_other_active_ifaces(wil, ndev, false, true)) - wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS); + if (!wil_has_other_active_ifaces(wil, ndev, false, true)) { + if (wil->force_edmg_channel) + wil6210_bus_request(wil, + WIL_11AY_BUS_REQUEST_KBPS); + else + wil6210_bus_request(wil, + WIL_11AD_BUS_REQUEST_KBPS); + } vif->bss = bss; /* Connect can take lots of time */ mod_timer(&vif->connect_timer, @@ -2207,8 +2213,13 @@ static int _wil_cfg80211_start_ap(struct wiphy *wiphy, } netif_carrier_on(ndev); - if (!wil_has_other_active_ifaces(wil, ndev, false, true)) - wil6210_bus_request(wil, WIL_MAX_BUS_REQUEST_KBPS); + if (!wil_has_other_active_ifaces(wil, ndev, false, true)) { + if (wil->force_edmg_channel) + wil6210_bus_request(wil, WIL_11AY_BUS_REQUEST_KBPS); + else + wil6210_bus_request(wil, WIL_11AD_BUS_REQUEST_KBPS); + } + rc = wmi_pcp_start(vif, bi, wmi_nettype, chan, wmi_edmg_channel, hidden_ssid, is_go); diff --git a/drivers/net/wireless/ath/wil6210/wil6210.h b/drivers/net/wireless/ath/wil6210/wil6210.h index 0c1870479a4f..e5bd9eea2377 100644 --- a/drivers/net/wireless/ath/wil6210/wil6210.h +++ b/drivers/net/wireless/ath/wil6210/wil6210.h @@ -52,6 +52,8 @@ union wil_tx_desc; #define WIL_DEFAULT_BUS_REQUEST_KBPS 128000 /* ~1Gbps */ #define WIL_MAX_BUS_REQUEST_KBPS 800000 /* ~6.1Gbps */ +#define WIL_11AD_BUS_REQUEST_KBPS 600000 /* ~4.6Gbps */ +#define WIL_11AY_BUS_REQUEST_KBPS 1300000 /* ~10.1Gbps */ #define WIL_NUM_LATENCY_BINS 200