qcacld-3.0: Add policy attribute to hdd_wiphy_vendor_commands
According to new changes in kernel 5.4 version onwards, driver has to provide the policy for a NL command to ve verified against while registering wiphy to the kernel. To accommodate these changes, add policy for all the following vendor commands that are being registered in the driver QCA_NL80211_VENDOR_SUBCMD_GET_WAKE_REASON_STATS QCA_NL80211_VENDOR_SUBCMD_OCB_SET_CONFIG QCA_NL80211_VENDOR_SUBCMD_OCB_SET_UTC_TIME QCA_NL80211_VENDOR_SUBCMD_OCB_START_TIMING_ADVERT QCA_NL80211_VENDOR_SUBCMD_OCB_STOP_TIMING_ADVERT QCA_NL80211_VENDOR_SUBCMD_OCB_GET_TSF_TIMER QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS QCA_NL80211_VENDOR_SUBCMD_DCC_CLEAR_STATS QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES Change-Id: I1fa51d2fdf75a20098fe651769352d69d8fbd48c CRs-Fixed: 2633726
This commit is contained in:
@@ -10250,7 +10250,7 @@ static int wlan_hdd_cfg80211_set_probable_oper_channel(struct wiphy *wiphy,
|
|||||||
|
|
||||||
static const struct
|
static const struct
|
||||||
nla_policy
|
nla_policy
|
||||||
qca_wlan_vendor_attr_policy[QCA_WLAN_VENDOR_ATTR_MAX+1] = {
|
wlan_hdd_get_link_properties_policy[QCA_WLAN_VENDOR_ATTR_MAX + 1] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_MAC_ADDR] = {
|
[QCA_WLAN_VENDOR_ATTR_MAC_ADDR] = {
|
||||||
.type = NLA_BINARY, .len = QDF_MAC_ADDR_SIZE },
|
.type = NLA_BINARY, .len = QDF_MAC_ADDR_SIZE },
|
||||||
};
|
};
|
||||||
@@ -10296,7 +10296,8 @@ static int __wlan_hdd_cfg80211_get_link_properties(struct wiphy *wiphy,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (wlan_cfg80211_nla_parse(tb, QCA_WLAN_VENDOR_ATTR_MAX, data,
|
if (wlan_cfg80211_nla_parse(tb, QCA_WLAN_VENDOR_ATTR_MAX, data,
|
||||||
data_len, qca_wlan_vendor_attr_policy)) {
|
data_len,
|
||||||
|
wlan_hdd_get_link_properties_policy)) {
|
||||||
hdd_err("Invalid attribute");
|
hdd_err("Invalid attribute");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@@ -14643,78 +14644,17 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/* OCB commands */
|
/* OCB commands */
|
||||||
{
|
FEATURE_OCB_VENDOR_COMMANDS
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_SET_CONFIG,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_ocb_set_config
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_SET_UTC_TIME,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_ocb_set_utc_time
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd =
|
|
||||||
QCA_NL80211_VENDOR_SUBCMD_OCB_START_TIMING_ADVERT,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_ocb_start_timing_advert
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_STOP_TIMING_ADVERT,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_ocb_stop_timing_advert
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_GET_TSF_TIMER,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_ocb_get_tsf_timer
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_dcc_get_stats
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_DCC_CLEAR_STATS,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_dcc_clear_stats
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL,
|
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
|
||||||
.doit = wlan_hdd_cfg80211_dcc_update_ndl
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
||||||
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES,
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES,
|
||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
||||||
.doit = wlan_hdd_cfg80211_get_link_properties
|
.doit = wlan_hdd_cfg80211_get_link_properties,
|
||||||
|
vendor_command_policy(wlan_hdd_get_link_properties_policy,
|
||||||
|
QCA_WLAN_VENDOR_ATTR_MAX)
|
||||||
},
|
},
|
||||||
|
|
||||||
FEATURE_OTA_TEST_VENDOR_COMMANDS
|
FEATURE_OTA_TEST_VENDOR_COMMANDS
|
||||||
@@ -14786,7 +14726,8 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = {
|
|||||||
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
|
||||||
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
WIPHY_VENDOR_CMD_NEED_NETDEV |
|
||||||
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
WIPHY_VENDOR_CMD_NEED_RUNNING,
|
||||||
.doit = wlan_hdd_cfg80211_get_wakelock_stats
|
.doit = wlan_hdd_cfg80211_get_wakelock_stats,
|
||||||
|
vendor_command_policy(VENDOR_CMD_RAW_DATA, 0)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
.info.vendor_id = QCA_NL80211_VENDOR_ID,
|
||||||
|
@@ -594,7 +594,7 @@ int iw_set_dot11p_channel_sched(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
#endif /* WLAN_WEXT_SUPPORT_ENABLE */
|
#endif /* WLAN_WEXT_SUPPORT_ENABLE */
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_ocb_set_config_policy[
|
const struct nla_policy qca_wlan_vendor_ocb_set_config_policy[
|
||||||
QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_MAX + 1] = {
|
QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_MAX + 1] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_CHANNEL_COUNT] = {
|
[QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_CHANNEL_COUNT] = {
|
||||||
.type = NLA_U32
|
.type = NLA_U32
|
||||||
@@ -619,7 +619,7 @@ static const struct nla_policy qca_wlan_vendor_ocb_set_config_policy[
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_ocb_set_utc_time_policy[
|
const struct nla_policy qca_wlan_vendor_ocb_set_utc_time_policy[
|
||||||
QCA_WLAN_VENDOR_ATTR_OCB_SET_UTC_TIME_MAX + 1] = {
|
QCA_WLAN_VENDOR_ATTR_OCB_SET_UTC_TIME_MAX + 1] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_OCB_SET_UTC_TIME_VALUE] = {
|
[QCA_WLAN_VENDOR_ATTR_OCB_SET_UTC_TIME_VALUE] = {
|
||||||
.type = NLA_BINARY, .len = SIZE_UTC_TIME
|
.type = NLA_BINARY, .len = SIZE_UTC_TIME
|
||||||
@@ -629,7 +629,7 @@ static const struct nla_policy qca_wlan_vendor_ocb_set_utc_time_policy[
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_ocb_start_timing_advert_policy[
|
const struct nla_policy qca_wlan_vendor_ocb_start_timing_advert_policy[
|
||||||
QCA_WLAN_VENDOR_ATTR_OCB_START_TIMING_ADVERT_MAX + 1] = {
|
QCA_WLAN_VENDOR_ATTR_OCB_START_TIMING_ADVERT_MAX + 1] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_OCB_START_TIMING_ADVERT_CHANNEL_FREQ] = {
|
[QCA_WLAN_VENDOR_ATTR_OCB_START_TIMING_ADVERT_CHANNEL_FREQ] = {
|
||||||
.type = NLA_U32
|
.type = NLA_U32
|
||||||
@@ -639,7 +639,7 @@ static const struct nla_policy qca_wlan_vendor_ocb_start_timing_advert_policy[
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_ocb_stop_timing_advert_policy[
|
const struct nla_policy qca_wlan_vendor_ocb_stop_timing_advert_policy[
|
||||||
QCA_WLAN_VENDOR_ATTR_OCB_STOP_TIMING_ADVERT_MAX + 1] = {
|
QCA_WLAN_VENDOR_ATTR_OCB_STOP_TIMING_ADVERT_MAX + 1] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_OCB_STOP_TIMING_ADVERT_CHANNEL_FREQ] = {
|
[QCA_WLAN_VENDOR_ATTR_OCB_STOP_TIMING_ADVERT_CHANNEL_FREQ] = {
|
||||||
.type = NLA_U32
|
.type = NLA_U32
|
||||||
@@ -655,7 +655,7 @@ static const struct nla_policy qca_wlan_vendor_ocb_get_tsf_timer_resp[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_dcc_get_stats[] = {
|
const struct nla_policy qca_wlan_vendor_dcc_get_stats[] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_DCC_GET_STATS_CHANNEL_COUNT] = {
|
[QCA_WLAN_VENDOR_ATTR_DCC_GET_STATS_CHANNEL_COUNT] = {
|
||||||
.type = NLA_U32
|
.type = NLA_U32
|
||||||
},
|
},
|
||||||
@@ -673,13 +673,13 @@ static const struct nla_policy qca_wlan_vendor_dcc_get_stats_resp[] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_dcc_clear_stats[] = {
|
const struct nla_policy qca_wlan_vendor_dcc_clear_stats[] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_DCC_CLEAR_STATS_BITMAP] = {
|
[QCA_WLAN_VENDOR_ATTR_DCC_CLEAR_STATS_BITMAP] = {
|
||||||
.type = NLA_U32
|
.type = NLA_U32
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy qca_wlan_vendor_dcc_update_ndl[
|
const struct nla_policy qca_wlan_vendor_dcc_update_ndl[
|
||||||
QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_MAX + 1] = {
|
QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_MAX + 1] = {
|
||||||
[QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_CHANNEL_COUNT] = {
|
[QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_CHANNEL_COUNT] = {
|
||||||
.type = NLA_U32
|
.type = NLA_U32
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2015-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -238,7 +238,116 @@ struct hdd_context;
|
|||||||
int iw_set_dot11p_channel_sched(struct net_device *dev,
|
int iw_set_dot11p_channel_sched(struct net_device *dev,
|
||||||
struct iw_request_info *info,
|
struct iw_request_info *info,
|
||||||
union iwreq_data *wrqu, char *extra);
|
union iwreq_data *wrqu, char *extra);
|
||||||
|
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_ocb_set_config_policy[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_MAX + 1];
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_ocb_set_utc_time_policy[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_SET_UTC_TIME_MAX + 1];
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_ocb_start_timing_advert_policy[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_START_TIMING_ADVERT_MAX + 1];
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_ocb_stop_timing_advert_policy[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_STOP_TIMING_ADVERT_MAX + 1];
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_dcc_get_stats[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_DCC_GET_STATS_MAX + 1];
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_dcc_clear_stats[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_DCC_CLEAR_STATS_MAX + 1];
|
||||||
|
extern const struct nla_policy qca_wlan_vendor_dcc_update_ndl[
|
||||||
|
QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_MAX + 1];
|
||||||
|
|
||||||
|
#define FEATURE_OCB_VENDOR_COMMANDS \
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_SET_CONFIG, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_ocb_set_config, \
|
||||||
|
vendor_command_policy(qca_wlan_vendor_ocb_set_config_policy, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_MAX) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_SET_UTC_TIME, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_ocb_set_utc_time, \
|
||||||
|
vendor_command_policy(qca_wlan_vendor_ocb_set_utc_time_policy, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_SET_UTC_TIME_MAX) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = \
|
||||||
|
QCA_NL80211_VENDOR_SUBCMD_OCB_START_TIMING_ADVERT, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_ocb_start_timing_advert, \
|
||||||
|
vendor_command_policy( \
|
||||||
|
qca_wlan_vendor_ocb_start_timing_advert_policy, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_START_TIMING_ADVERT_MAX) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_STOP_TIMING_ADVERT, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_ocb_stop_timing_advert, \
|
||||||
|
vendor_command_policy( \
|
||||||
|
qca_wlan_vendor_ocb_stop_timing_advert_policy, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_OCB_STOP_TIMING_ADVERT_MAX) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_OCB_GET_TSF_TIMER, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_ocb_get_tsf_timer, \
|
||||||
|
vendor_command_policy(VENDOR_CMD_RAW_DATA, 0) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_DCC_GET_STATS, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_dcc_get_stats, \
|
||||||
|
vendor_command_policy(qca_wlan_vendor_dcc_get_stats, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_DCC_GET_STATS_MAX) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_DCC_CLEAR_STATS, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_dcc_clear_stats, \
|
||||||
|
vendor_command_policy(qca_wlan_vendor_dcc_clear_stats, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_DCC_CLEAR_STATS_MAX) \
|
||||||
|
}, \
|
||||||
|
\
|
||||||
|
{ \
|
||||||
|
.info.vendor_id = QCA_NL80211_VENDOR_ID, \
|
||||||
|
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL, \
|
||||||
|
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_NETDEV | \
|
||||||
|
WIPHY_VENDOR_CMD_NEED_RUNNING, \
|
||||||
|
.doit = wlan_hdd_cfg80211_dcc_update_ndl, \
|
||||||
|
vendor_command_policy(qca_wlan_vendor_dcc_update_ndl, \
|
||||||
|
QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_MAX) \
|
||||||
|
},
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
#define FEATURE_OCB_VENDOR_COMMANDS
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
int iw_set_dot11p_channel_sched(struct net_device *dev,
|
int iw_set_dot11p_channel_sched(struct net_device *dev,
|
||||||
struct iw_request_info *info,
|
struct iw_request_info *info,
|
||||||
@@ -247,6 +356,8 @@ int iw_set_dot11p_channel_sched(struct net_device *dev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#else
|
||||||
|
#define FEATURE_OCB_VENDOR_COMMANDS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_DSRC
|
#ifdef WLAN_FEATURE_DSRC
|
||||||
|
Reference in New Issue
Block a user