1ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt/*
2ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt * Common hostapd/wpa_supplicant HW features
3ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt * Copyright (c) 2002-2013, Jouni Malinen <j@w1.fi>
4ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt * Copyright (c) 2015, Qualcomm Atheros, Inc.
5ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt *
6ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt * This software may be distributed under the terms of the BSD license.
7ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt * See README for more details.
8ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt */
9ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt
10ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt#ifndef HW_FEATURES_COMMON_H
11ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt#define HW_FEATURES_COMMON_H
12ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt
13ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt#include "drivers/driver.h"
14ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt
15ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtstruct hostapd_channel_data * hw_get_channel_chan(struct hostapd_hw_modes *mode,
16ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt						  int chan, int *freq);
17ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtstruct hostapd_channel_data * hw_get_channel_freq(struct hostapd_hw_modes *mode,
18ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt						  int freq, int *chan);
19ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt
20ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtint hw_get_freq(struct hostapd_hw_modes *mode, int chan);
21ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtint hw_get_chan(struct hostapd_hw_modes *mode, int freq);
22ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt
23ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtint allowed_ht40_channel_pair(struct hostapd_hw_modes *mode, int pri_chan,
24ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt			      int sec_chan);
25ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtvoid get_pri_sec_chan(struct wpa_scan_res *bss, int *pri_chan, int *sec_chan);
26ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtint check_40mhz_5g(struct hostapd_hw_modes *mode,
27ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt		   struct wpa_scan_results *scan_res, int pri_chan,
28ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt		   int sec_chan);
29ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidtint check_40mhz_2g4(struct hostapd_hw_modes *mode,
30ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt		    struct wpa_scan_results *scan_res, int pri_chan,
31ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt		    int sec_chan);
327f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidtint hostapd_set_freq_params(struct hostapd_freq_params *data,
337f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidt			    enum hostapd_hw_mode mode,
347f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidt			    int freq, int channel, int ht_enabled,
357f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidt			    int vht_enabled, int sec_channel_offset,
367f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidt			    int vht_oper_chwidth, int center_segment0,
377f65602d49069f96a7bb44da8bd79ffe8d4c6a98Dmitry Shmidt			    int center_segment1, u32 vht_caps);
38ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt
39ff787d557db719adea0fdf2679667500c65cf74dDmitry Shmidt#endif /* HW_FEATURES_COMMON_H */
40