mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 00:24:41 -04:00
Merge ef3473af12 on remote branch
Change-Id: Ib388b42912b33d6d6fe7cda0b1bfc8bea754ee6f
This commit is contained in:
commit
04b674d113
6 changed files with 37 additions and 125 deletions
|
|
@ -4823,6 +4823,19 @@ enum qca_wlan_vendor_attr_config {
|
|||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_FT_OVER_DS = 80,
|
||||
|
||||
/*
|
||||
* 8-bit unsigned value. This attribute can be used to configure the
|
||||
* firmware to enable/disable ARP/NS offload feature. Possible values
|
||||
* for this attribute are 0-Disable and 1-Enable.
|
||||
*
|
||||
* This attribute is only applicable for STA/P2P-Client interface,
|
||||
* and is optional, default behavior is APR/NS offload Enable.
|
||||
*
|
||||
* This attribute can be set in disconncted and connected state, and
|
||||
* will restore to default behavior if interface is closed.
|
||||
*/
|
||||
QCA_WLAN_VENDOR_ATTR_CONFIG_ARP_NS_OFFLOAD = 81,
|
||||
|
||||
/* 8-bit unsigned value, whenever wifi calling (wfc) begin or end,
|
||||
* Userspace sends this information to driver/firmware to configure
|
||||
* wfc state. Driver/Firmware uses this information to
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -722,7 +722,9 @@ static void reg_modify_chan_list_for_cached_channels(
|
|||
{
|
||||
uint32_t i, j;
|
||||
uint32_t num_cache_channels = pdev_priv_obj->num_cache_channels;
|
||||
struct regulatory_channel *chan_list = pdev_priv_obj->cur_chan_list;
|
||||
struct regulatory_channel *cur_chan_list = pdev_priv_obj->cur_chan_list;
|
||||
struct regulatory_channel *sec_chan_list =
|
||||
pdev_priv_obj->secondary_cur_chan_list;
|
||||
struct regulatory_channel *cache_chan_list =
|
||||
pdev_priv_obj->cache_disable_chan_list;
|
||||
|
||||
|
|
@ -730,15 +732,24 @@ static void reg_modify_chan_list_for_cached_channels(
|
|||
return;
|
||||
|
||||
if (pdev_priv_obj->disable_cached_channels) {
|
||||
for (i = 0; i < num_cache_channels; i++)
|
||||
for (j = 0; j < NUM_CHANNELS; j++)
|
||||
if (cache_chan_list[i].chan_num ==
|
||||
chan_list[j].chan_num) {
|
||||
chan_list[j].state =
|
||||
for (i = 0; i < num_cache_channels; i++) {
|
||||
for (j = 0; j < NUM_CHANNELS; j++) {
|
||||
if (cache_chan_list[i].center_freq ==
|
||||
cur_chan_list[j].center_freq) {
|
||||
cur_chan_list[j].state =
|
||||
CHANNEL_STATE_DISABLE;
|
||||
chan_list[j].chan_flags |=
|
||||
cur_chan_list[j].chan_flags |=
|
||||
REGULATORY_CHAN_DISABLED;
|
||||
}
|
||||
if (cache_chan_list[i].center_freq ==
|
||||
sec_chan_list[j].center_freq) {
|
||||
sec_chan_list[j].state =
|
||||
CHANNEL_STATE_DISABLE;
|
||||
sec_chan_list[j].chan_flags |=
|
||||
REGULATORY_CHAN_DISABLED;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
@ -1278,8 +1289,6 @@ void reg_compute_pdev_current_chan_list(struct wlan_regulatory_pdev_priv_obj
|
|||
reg_modify_chan_list_for_chan_144(pdev_priv_obj->cur_chan_list,
|
||||
pdev_priv_obj->en_chan_144);
|
||||
|
||||
reg_modify_chan_list_for_cached_channels(pdev_priv_obj);
|
||||
|
||||
reg_modify_chan_list_for_srd_channels(pdev_priv_obj->pdev_ptr,
|
||||
pdev_priv_obj->cur_chan_list);
|
||||
|
||||
|
|
@ -1292,6 +1301,8 @@ void reg_compute_pdev_current_chan_list(struct wlan_regulatory_pdev_priv_obj
|
|||
cur_chan_list);
|
||||
|
||||
reg_populate_secondary_cur_chan_list(pdev_priv_obj);
|
||||
|
||||
reg_modify_chan_list_for_cached_channels(pdev_priv_obj);
|
||||
}
|
||||
|
||||
void reg_reset_reg_rules(struct reg_rule_info *reg_rules)
|
||||
|
|
|
|||
|
|
@ -686,63 +686,6 @@ QDF_STATUS reg_cache_channel_freq_state(struct wlan_objmgr_pdev *pdev,
|
|||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* CONFIG_CHAN_FREQ_API */
|
||||
|
||||
#ifdef CONFIG_CHAN_NUM_API
|
||||
QDF_STATUS reg_cache_channel_state(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *channel_list,
|
||||
uint32_t num_channels)
|
||||
{
|
||||
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
|
||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
uint8_t i, j;
|
||||
|
||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
||||
|
||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
||||
reg_err("pdev reg component is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
psoc = wlan_pdev_get_psoc(pdev);
|
||||
if (!psoc) {
|
||||
reg_err("psoc is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
psoc_priv_obj = reg_get_psoc_obj(psoc);
|
||||
if (!IS_VALID_PSOC_REG_OBJ(psoc_priv_obj)) {
|
||||
reg_err("psoc reg component is NULL");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
if (pdev_priv_obj->num_cache_channels > 0) {
|
||||
pdev_priv_obj->num_cache_channels = 0;
|
||||
qdf_mem_zero(&pdev_priv_obj->cache_disable_chan_list,
|
||||
sizeof(pdev_priv_obj->cache_disable_chan_list));
|
||||
}
|
||||
|
||||
for (i = 0; i < num_channels; i++) {
|
||||
for (j = 0; j < NUM_CHANNELS; j++) {
|
||||
if (channel_list[i] == pdev_priv_obj->
|
||||
cur_chan_list[j].chan_num) {
|
||||
pdev_priv_obj->
|
||||
cache_disable_chan_list[i].chan_num =
|
||||
channel_list[i];
|
||||
pdev_priv_obj->
|
||||
cache_disable_chan_list[i].state =
|
||||
pdev_priv_obj->cur_chan_list[j].state;
|
||||
pdev_priv_obj->
|
||||
cache_disable_chan_list[i].chan_flags =
|
||||
pdev_priv_obj->
|
||||
cur_chan_list[j].chan_flags;
|
||||
}
|
||||
}
|
||||
}
|
||||
pdev_priv_obj->num_cache_channels = num_channels;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* CONFIG_CHAN_NUM_API */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_REG_CLIENT
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
|
|
@ -175,27 +175,6 @@ QDF_STATUS reg_cache_channel_freq_state(struct wlan_objmgr_pdev *pdev,
|
|||
}
|
||||
#endif /* defined(DISABLE_CHANNEL_LIST) && defined(CONFIG_CHAN_FREQ_API) */
|
||||
|
||||
#if defined(DISABLE_CHANNEL_LIST) && defined(CONFIG_CHAN_NUM_API)
|
||||
/**
|
||||
* reg_cache_channel_state() - Cache the current state of the channels
|
||||
* @pdev: The physical dev to cache the channels for
|
||||
* @channel_list: List of the channels for which states needs to be cached
|
||||
* @num_channels: Number of channels in the list
|
||||
*
|
||||
*/
|
||||
QDF_STATUS reg_cache_channel_state(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *channel_list,
|
||||
uint32_t num_channels);
|
||||
#else
|
||||
static inline
|
||||
QDF_STATUS reg_cache_channel_state(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *channel_list,
|
||||
uint32_t num_channels)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif /* defined (DISABLE_CHANNEL_LIST) && defined(CONFIG_CHAN_NUM_API) */
|
||||
|
||||
#ifdef CONFIG_REG_CLIENT
|
||||
/**
|
||||
* reg_set_band() - Sets the band information for the PDEV
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
|
|
@ -61,27 +62,6 @@ QDF_STATUS ucfg_reg_get_band(struct wlan_objmgr_pdev *pdev,
|
|||
QDF_STATUS ucfg_reg_notify_sap_event(struct wlan_objmgr_pdev *pdev,
|
||||
bool sap_state);
|
||||
|
||||
/**
|
||||
* ucfg_reg_cache_channel_state() - Cache the current state of the channles
|
||||
* @pdev: The physical dev to cache the channels for
|
||||
* @channel_list: List of the channels for which states needs to be cached
|
||||
* @num_channels: Number of channels in the list
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#if defined(DISABLE_CHANNEL_LIST) && defined(CONFIG_CHAN_NUM_API)
|
||||
void ucfg_reg_cache_channel_state(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *channel_list,
|
||||
uint32_t num_channels);
|
||||
#else
|
||||
static inline
|
||||
void ucfg_reg_cache_channel_state(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *channel_list,
|
||||
uint32_t num_channels)
|
||||
{
|
||||
}
|
||||
#endif /* CONFIG_CHAN_NUM_API */
|
||||
|
||||
/**
|
||||
* ucfg_reg_cache_channel_freq_state() - Cache the current state of the
|
||||
* channels based on the channel center frequency.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
|
|
@ -311,21 +312,6 @@ void ucfg_reg_cache_channel_freq_state(struct wlan_objmgr_pdev *pdev,
|
|||
}
|
||||
#endif /* CONFIG_CHAN_FREQ_API */
|
||||
|
||||
#ifdef CONFIG_CHAN_NUM_API
|
||||
/**
|
||||
* ucfg_reg_cache_channel_state() - Cache the current state of the channles
|
||||
* @pdev: The physical dev to cache the channels for
|
||||
* @channel_list: List of the channels for which states needs to be cached
|
||||
* @num_channels: Number of channels in the list
|
||||
*
|
||||
*/
|
||||
void ucfg_reg_cache_channel_state(struct wlan_objmgr_pdev *pdev,
|
||||
uint32_t *channel_list, uint32_t num_channels)
|
||||
{
|
||||
reg_cache_channel_state(pdev, channel_list, num_channels);
|
||||
}
|
||||
#endif /* CONFIG_CHAN_NUM_API */
|
||||
|
||||
void ucfg_reg_restore_cached_channels(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
reg_restore_cached_channels(pdev);
|
||||
|
|
|
|||
Loading…
Reference in a new issue