xref: /linux/net/mac80211/uhr.c (revision ca220141fa8ebae09765a242076b2b77338106b0)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * UHR handling
4  *
5  * Copyright(c) 2025-2026 Intel Corporation
6  */
7 
8 #include "ieee80211_i.h"
9 
10 void
11 ieee80211_uhr_cap_ie_to_sta_uhr_cap(struct ieee80211_sub_if_data *sdata,
12 				    struct ieee80211_supported_band *sband,
13 				    const struct ieee80211_uhr_cap *uhr_cap,
14 				    u8 uhr_cap_len,
15 				    struct link_sta_info *link_sta)
16 {
17 	struct ieee80211_sta_uhr_cap *sta_uhr_cap = &link_sta->pub->uhr_cap;
18 	bool from_ap;
19 
20 	memset(sta_uhr_cap, 0, sizeof(*sta_uhr_cap));
21 
22 	if (!ieee80211_get_uhr_iftype_cap_vif(sband, &sdata->vif))
23 		return;
24 
25 	sta_uhr_cap->has_uhr = true;
26 
27 	sta_uhr_cap->mac = uhr_cap->mac;
28 	from_ap = sdata->vif.type == NL80211_IFTYPE_STATION;
29 	sta_uhr_cap->phy = *ieee80211_uhr_phy_cap(uhr_cap, from_ap);
30 }
31