diff options
Diffstat (limited to 'drivers/net/wireless/quantenna/qtnfmac/qlink_util.c')
| -rw-r--r-- | drivers/net/wireless/quantenna/qtnfmac/qlink_util.c | 71 | 
1 files changed, 71 insertions, 0 deletions
| diff --git a/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c b/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c new file mode 100644 index 000000000000..49ae652ad9a3 --- /dev/null +++ b/drivers/net/wireless/quantenna/qtnfmac/qlink_util.c @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2015-2016 Quantenna Communications, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + */ + +#include <linux/nl80211.h> + +#include "qlink_util.h" + +u16 qlink_iface_type_mask_to_nl(u16 qlink_mask) +{ +	u16 result = 0; + +	if (qlink_mask & QLINK_IFTYPE_AP) +		result |= BIT(NL80211_IFTYPE_AP); + +	if (qlink_mask & QLINK_IFTYPE_STATION) +		result |= BIT(NL80211_IFTYPE_STATION); + +	if (qlink_mask & QLINK_IFTYPE_ADHOC) +		result |= BIT(NL80211_IFTYPE_ADHOC); + +	if (qlink_mask & QLINK_IFTYPE_MONITOR) +		result |= BIT(NL80211_IFTYPE_MONITOR); + +	if (qlink_mask & QLINK_IFTYPE_WDS) +		result |= BIT(NL80211_IFTYPE_WDS); + +	return result; +} + +u8 qlink_chan_width_mask_to_nl(u16 qlink_mask) +{ +	u8 result = 0; + +	if (qlink_mask & QLINK_CHAN_WIDTH_5) +		result |= BIT(NL80211_CHAN_WIDTH_5); + +	if (qlink_mask & QLINK_CHAN_WIDTH_10) +		result |= BIT(NL80211_CHAN_WIDTH_10); + +	if (qlink_mask & QLINK_CHAN_WIDTH_20_NOHT) +		result |= BIT(NL80211_CHAN_WIDTH_20_NOHT); + +	if (qlink_mask & QLINK_CHAN_WIDTH_20) +		result |= BIT(NL80211_CHAN_WIDTH_20); + +	if (qlink_mask & QLINK_CHAN_WIDTH_40) +		result |= BIT(NL80211_CHAN_WIDTH_40); + +	if (qlink_mask & QLINK_CHAN_WIDTH_80) +		result |= BIT(NL80211_CHAN_WIDTH_80); + +	if (qlink_mask & QLINK_CHAN_WIDTH_80P80) +		result |= BIT(NL80211_CHAN_WIDTH_80P80); + +	if (qlink_mask & QLINK_CHAN_WIDTH_160) +		result |= BIT(NL80211_CHAN_WIDTH_160); + +	return result; +} | 
