Commit f22c0bff authored by Po-Hao Huang's avatar Po-Hao Huang Committed by Kalle Valo
Browse files

wifi: rtw89: add support of concurrent mode



Add iface_combination declaration to enable concurrent mode. Only two
interfaces under same frequency is supported currently. We limit the
role combination to be STA + P2P or STA + AP only for now until new
feature is requested.

Signed-off-by: default avatarPo-Hao Huang <phhuang@realtek.com>
Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230415035016.15788-2-pkshih@realtek.com
parent 982a9164
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -156,6 +156,28 @@ static struct ieee80211_rate rtw89_bitrates[] = {
	{ .bitrate = 540, .hw_value = 0x0b, },
};

static const struct ieee80211_iface_limit rtw89_iface_limits[] = {
	{
		.max = 1,
		.types = BIT(NL80211_IFTYPE_STATION),
	},
	{
		.max = 1,
		.types = BIT(NL80211_IFTYPE_P2P_CLIENT) |
			 BIT(NL80211_IFTYPE_P2P_GO) |
			 BIT(NL80211_IFTYPE_AP),
	},
};

static const struct ieee80211_iface_combination rtw89_iface_combs[] = {
	{
		.limits = rtw89_iface_limits,
		.n_limits = ARRAY_SIZE(rtw89_iface_limits),
		.max_interfaces = 2,
		.num_different_channels = 1,
	}
};

bool rtw89_ra_report_to_bitrate(struct rtw89_dev *rtwdev, u8 rpt_rate, u16 *bitrate)
{
	struct ieee80211_rate rate;
@@ -3834,6 +3856,9 @@ struct rtw89_dev *rtw89_alloc_ieee80211_hw(struct device *device,
	if (!hw)
		goto err;

	hw->wiphy->iface_combinations = rtw89_iface_combs;
	hw->wiphy->n_iface_combinations = ARRAY_SIZE(rtw89_iface_combs);

	rtwdev = hw->priv;
	rtwdev->hw = hw;
	rtwdev->dev = device;