Merge tag 'wireless-next-2023-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
Kalle Valo says: ==================== wireless-next patches for v6.3 Third set of patches for v6.3. This time only a set of small fixes submitted during the last day or two. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -4020,7 +4020,7 @@ il4965_hdl_alive(struct il_priv *il, struct il_rx_buf *rxb)
|
||||
|
||||
if (palive->ver_subtype == INITIALIZE_SUBTYPE) {
|
||||
D_INFO("Initialization Alive received.\n");
|
||||
memcpy(&il->card_alive_init, &pkt->u.alive_frame,
|
||||
memcpy(&il->card_alive_init, &pkt->u.raw,
|
||||
sizeof(struct il_init_alive_resp));
|
||||
pwork = &il->init_alive_start;
|
||||
} else {
|
||||
|
||||
@@ -438,13 +438,6 @@ static ssize_t iwl_dbgfs_bf_params_read(struct file *file,
|
||||
return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
|
||||
}
|
||||
|
||||
static inline char *iwl_dbgfs_is_match(char *name, char *buf)
|
||||
{
|
||||
int len = strlen(name);
|
||||
|
||||
return !strncmp(name, buf, len) ? buf + len : NULL;
|
||||
}
|
||||
|
||||
static ssize_t iwl_dbgfs_os_device_timediff_read(struct file *file,
|
||||
char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
config RTL8XXXU
|
||||
tristate "Realtek 802.11n USB wireless chips support"
|
||||
depends on MAC80211 && USB
|
||||
depends on LEDS_CLASS
|
||||
help
|
||||
This is an alternative driver for various Realtek RTL8XXX
|
||||
parts written to utilize the Linux mac80211 stack.
|
||||
|
||||
@@ -4056,7 +4056,7 @@ void rtw_coex_display_coex_info(struct rtw_dev *rtwdev, struct seq_file *m)
|
||||
rtwdev->stats.tx_throughput, rtwdev->stats.rx_throughput);
|
||||
seq_printf(m, "%-40s = %u/ %u/ %u\n",
|
||||
"IPS/ Low Power/ PS mode",
|
||||
test_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags),
|
||||
!test_bit(RTW_FLAG_POWERON, rtwdev->flags),
|
||||
test_bit(RTW_FLAG_LEISURE_PS_DEEP, rtwdev->flags),
|
||||
rtwdev->lps_conf.mode);
|
||||
|
||||
|
||||
@@ -273,6 +273,11 @@ static int rtw_mac_power_switch(struct rtw_dev *rtwdev, bool pwr_on)
|
||||
if (rtw_pwr_seq_parser(rtwdev, pwr_seq))
|
||||
return -EINVAL;
|
||||
|
||||
if (pwr_on)
|
||||
set_bit(RTW_FLAG_POWERON, rtwdev->flags);
|
||||
else
|
||||
clear_bit(RTW_FLAG_POWERON, rtwdev->flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -335,6 +340,11 @@ int rtw_mac_power_on(struct rtw_dev *rtwdev)
|
||||
ret = rtw_mac_power_switch(rtwdev, true);
|
||||
if (ret == -EALREADY) {
|
||||
rtw_mac_power_switch(rtwdev, false);
|
||||
|
||||
ret = rtw_mac_pre_system_cfg(rtwdev);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
ret = rtw_mac_power_switch(rtwdev, true);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
@@ -356,7 +356,7 @@ enum rtw_flags {
|
||||
RTW_FLAG_RUNNING,
|
||||
RTW_FLAG_FW_RUNNING,
|
||||
RTW_FLAG_SCANNING,
|
||||
RTW_FLAG_INACTIVE_PS,
|
||||
RTW_FLAG_POWERON,
|
||||
RTW_FLAG_LEISURE_PS,
|
||||
RTW_FLAG_LEISURE_PS_DEEP,
|
||||
RTW_FLAG_DIG_DISABLE,
|
||||
|
||||
@@ -25,7 +25,7 @@ static int rtw_ips_pwr_up(struct rtw_dev *rtwdev)
|
||||
|
||||
int rtw_enter_ips(struct rtw_dev *rtwdev)
|
||||
{
|
||||
if (test_and_set_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags))
|
||||
if (!test_bit(RTW_FLAG_POWERON, rtwdev->flags))
|
||||
return 0;
|
||||
|
||||
rtw_coex_ips_notify(rtwdev, COEX_IPS_ENTER);
|
||||
@@ -50,7 +50,7 @@ int rtw_leave_ips(struct rtw_dev *rtwdev)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!test_and_clear_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags))
|
||||
if (test_bit(RTW_FLAG_POWERON, rtwdev->flags))
|
||||
return 0;
|
||||
|
||||
rtw_hci_link_ps(rtwdev, false);
|
||||
|
||||
@@ -592,7 +592,7 @@ static int rtw_wow_leave_no_link_ps(struct rtw_dev *rtwdev)
|
||||
if (rtw_get_lps_deep_mode(rtwdev) != LPS_DEEP_MODE_NONE)
|
||||
rtw_leave_lps_deep(rtwdev);
|
||||
} else {
|
||||
if (test_bit(RTW_FLAG_INACTIVE_PS, rtwdev->flags)) {
|
||||
if (!test_bit(RTW_FLAG_POWERON, rtwdev->flags)) {
|
||||
rtw_wow->ips_enabled = true;
|
||||
ret = rtw_leave_ips(rtwdev);
|
||||
if (ret)
|
||||
|
||||
@@ -2435,6 +2435,7 @@ int rtw89_core_sta_add(struct rtw89_dev *rtwdev,
|
||||
struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
||||
struct rtw89_sta *rtwsta = (struct rtw89_sta *)sta->drv_priv;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
rtwsta->rtwdev = rtwdev;
|
||||
rtwsta->rtwvif = rtwvif;
|
||||
@@ -2459,6 +2460,21 @@ int rtw89_core_sta_add(struct rtw89_dev *rtwdev,
|
||||
RTW89_MAX_MAC_ID_NUM);
|
||||
if (rtwsta->mac_id == RTW89_MAX_MAC_ID_NUM)
|
||||
return -ENOSPC;
|
||||
|
||||
ret = rtw89_mac_set_macid_pause(rtwdev, rtwsta->mac_id, false);
|
||||
if (ret) {
|
||||
rtw89_core_release_bit_map(rtwdev->mac_id_map, rtwsta->mac_id);
|
||||
rtw89_warn(rtwdev, "failed to send h2c macid pause\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rtw89_fw_h2c_role_maintain(rtwdev, rtwvif, rtwsta,
|
||||
RTW89_ROLE_CREATE);
|
||||
if (ret) {
|
||||
rtw89_core_release_bit_map(rtwdev->mac_id_map, rtwsta->mac_id);
|
||||
rtw89_warn(rtwdev, "failed to send h2c role info\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -2513,14 +2529,6 @@ int rtw89_core_sta_disconnect(struct rtw89_dev *rtwdev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (vif->type == NL80211_IFTYPE_AP || sta->tdls) {
|
||||
ret = rtw89_fw_h2c_role_maintain(rtwdev, rtwvif, rtwsta, RTW89_ROLE_REMOVE);
|
||||
if (ret) {
|
||||
rtw89_warn(rtwdev, "failed to send h2c role info\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/* update cam aid mac_id net_type */
|
||||
ret = rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL);
|
||||
if (ret) {
|
||||
@@ -2541,18 +2549,6 @@ int rtw89_core_sta_assoc(struct rtw89_dev *rtwdev,
|
||||
int ret;
|
||||
|
||||
if (vif->type == NL80211_IFTYPE_AP || sta->tdls) {
|
||||
ret = rtw89_mac_set_macid_pause(rtwdev, rtwsta->mac_id, false);
|
||||
if (ret) {
|
||||
rtw89_warn(rtwdev, "failed to send h2c macid pause\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = rtw89_fw_h2c_role_maintain(rtwdev, rtwvif, rtwsta, RTW89_ROLE_CREATE);
|
||||
if (ret) {
|
||||
rtw89_warn(rtwdev, "failed to send h2c role info\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (sta->tdls) {
|
||||
ret = rtw89_cam_init_bssid_cam(rtwdev, rtwvif, bssid_cam, sta->addr);
|
||||
if (ret) {
|
||||
@@ -2622,13 +2618,22 @@ int rtw89_core_sta_remove(struct rtw89_dev *rtwdev,
|
||||
{
|
||||
struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
||||
struct rtw89_sta *rtwsta = (struct rtw89_sta *)sta->drv_priv;
|
||||
int ret;
|
||||
|
||||
if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
|
||||
rtw89_btc_ntfy_role_info(rtwdev, rtwvif, rtwsta,
|
||||
BTC_ROLE_MSTS_STA_DIS_CONN);
|
||||
else if (vif->type == NL80211_IFTYPE_AP || sta->tdls)
|
||||
else if (vif->type == NL80211_IFTYPE_AP || sta->tdls) {
|
||||
rtw89_core_release_bit_map(rtwdev->mac_id_map, rtwsta->mac_id);
|
||||
|
||||
ret = rtw89_fw_h2c_role_maintain(rtwdev, rtwvif, rtwsta,
|
||||
RTW89_ROLE_REMOVE);
|
||||
if (ret) {
|
||||
rtw89_warn(rtwdev, "failed to send h2c role info\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user