| From: Alexander Wetzel <alexander@wetzel-home.de> |
| Date: Sun, 9 Oct 2022 18:30:39 +0200 |
| Subject: [PATCH] wifi: mac80211: add wake_tx_queue callback to drivers |
| |
| mac80211 is fully switching over to the internal TX queue (iTXQ) |
| implementation. Update all drivers not yet providing the now mandatory |
| wake_tx_queue() callback. |
| |
| As an side effect the netdev interfaces of all updated drivers will |
| switch to the noqueue qdisc. |
| |
| Signed-off-by: Alexander Wetzel <alexander@wetzel-home.de> |
| [add staging drivers] |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| --- |
| |
| --- a/drivers/net/wireless/admtek/adm8211.c |
| +++ b/drivers/net/wireless/admtek/adm8211.c |
| @@ -1760,6 +1760,7 @@ static int adm8211_alloc_rings(struct ie |
| |
| static const struct ieee80211_ops adm8211_ops = { |
| .tx = adm8211_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = adm8211_start, |
| .stop = adm8211_stop, |
| .add_interface = adm8211_add_interface, |
| --- a/drivers/net/wireless/ath/ar5523/ar5523.c |
| +++ b/drivers/net/wireless/ath/ar5523/ar5523.c |
| @@ -1361,6 +1361,7 @@ static const struct ieee80211_ops ar5523 |
| .start = ar5523_start, |
| .stop = ar5523_stop, |
| .tx = ar5523_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .set_rts_threshold = ar5523_set_rts_threshold, |
| .add_interface = ar5523_add_interface, |
| .remove_interface = ar5523_remove_interface, |
| --- a/drivers/net/wireless/ath/ath11k/mac.c |
| +++ b/drivers/net/wireless/ath/ath11k/mac.c |
| @@ -8587,6 +8587,7 @@ err_fallback: |
| |
| static const struct ieee80211_ops ath11k_ops = { |
| .tx = ath11k_mac_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = ath11k_mac_op_start, |
| .stop = ath11k_mac_op_stop, |
| .reconfig_complete = ath11k_mac_op_reconfig_complete, |
| --- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c |
| +++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c |
| @@ -781,6 +781,7 @@ static int ath5k_set_ringparam(struct ie |
| |
| const struct ieee80211_ops ath5k_hw_ops = { |
| .tx = ath5k_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = ath5k_start, |
| .stop = ath5k_stop, |
| .add_interface = ath5k_add_interface, |
| --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c |
| +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c |
| @@ -1870,6 +1870,7 @@ static void ath9k_htc_channel_switch_bea |
| |
| struct ieee80211_ops ath9k_htc_ops = { |
| .tx = ath9k_htc_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = ath9k_htc_start, |
| .stop = ath9k_htc_stop, |
| .add_interface = ath9k_htc_add_interface, |
| --- a/drivers/net/wireless/ath/carl9170/main.c |
| +++ b/drivers/net/wireless/ath/carl9170/main.c |
| @@ -1715,6 +1715,7 @@ static const struct ieee80211_ops carl91 |
| .start = carl9170_op_start, |
| .stop = carl9170_op_stop, |
| .tx = carl9170_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .flush = carl9170_op_flush, |
| .add_interface = carl9170_op_add_interface, |
| .remove_interface = carl9170_op_remove_interface, |
| --- a/drivers/net/wireless/ath/wcn36xx/main.c |
| +++ b/drivers/net/wireless/ath/wcn36xx/main.c |
| @@ -1362,6 +1362,7 @@ static const struct ieee80211_ops wcn36x |
| .prepare_multicast = wcn36xx_prepare_multicast, |
| .configure_filter = wcn36xx_configure_filter, |
| .tx = wcn36xx_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .set_key = wcn36xx_set_key, |
| .hw_scan = wcn36xx_hw_scan, |
| .cancel_hw_scan = wcn36xx_cancel_hw_scan, |
| --- a/drivers/net/wireless/atmel/at76c50x-usb.c |
| +++ b/drivers/net/wireless/atmel/at76c50x-usb.c |
| @@ -2187,6 +2187,7 @@ static int at76_set_key(struct ieee80211 |
| |
| static const struct ieee80211_ops at76_ops = { |
| .tx = at76_mac80211_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .add_interface = at76_add_interface, |
| .remove_interface = at76_remove_interface, |
| .config = at76_config, |
| --- a/drivers/net/wireless/broadcom/b43/main.c |
| +++ b/drivers/net/wireless/broadcom/b43/main.c |
| @@ -5171,6 +5171,7 @@ static int b43_op_get_survey(struct ieee |
| |
| static const struct ieee80211_ops b43_hw_ops = { |
| .tx = b43_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .conf_tx = b43_op_conf_tx, |
| .add_interface = b43_op_add_interface, |
| .remove_interface = b43_op_remove_interface, |
| --- a/drivers/net/wireless/broadcom/b43legacy/main.c |
| +++ b/drivers/net/wireless/broadcom/b43legacy/main.c |
| @@ -3532,6 +3532,7 @@ static int b43legacy_op_get_survey(struc |
| |
| static const struct ieee80211_ops b43legacy_hw_ops = { |
| .tx = b43legacy_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .conf_tx = b43legacy_op_conf_tx, |
| .add_interface = b43legacy_op_add_interface, |
| .remove_interface = b43legacy_op_remove_interface, |
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c |
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c |
| @@ -962,6 +962,7 @@ static int brcms_ops_beacon_set_tim(stru |
| |
| static const struct ieee80211_ops brcms_ops = { |
| .tx = brcms_ops_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = brcms_ops_start, |
| .stop = brcms_ops_stop, |
| .add_interface = brcms_ops_add_interface, |
| --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c |
| +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c |
| @@ -3439,6 +3439,7 @@ static const struct attribute_group il39 |
| |
| static struct ieee80211_ops il3945_mac_ops __ro_after_init = { |
| .tx = il3945_mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = il3945_mac_start, |
| .stop = il3945_mac_stop, |
| .add_interface = il_mac_add_interface, |
| --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c |
| +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c |
| @@ -6308,6 +6308,7 @@ il4965_tx_queue_set_status(struct il_pri |
| |
| static const struct ieee80211_ops il4965_mac_ops = { |
| .tx = il4965_mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = il4965_mac_start, |
| .stop = il4965_mac_stop, |
| .add_interface = il_mac_add_interface, |
| --- a/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c |
| @@ -1571,6 +1571,7 @@ static void iwlagn_mac_sta_notify(struct |
| |
| const struct ieee80211_ops iwlagn_hw_ops = { |
| .tx = iwlagn_mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = iwlagn_mac_start, |
| .stop = iwlagn_mac_stop, |
| #ifdef CONFIG_PM_SLEEP |
| --- a/drivers/net/wireless/intersil/p54/main.c |
| +++ b/drivers/net/wireless/intersil/p54/main.c |
| @@ -705,6 +705,7 @@ static void p54_set_coverage_class(struc |
| |
| static const struct ieee80211_ops p54_ops = { |
| .tx = p54_tx_80211, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = p54_start, |
| .stop = p54_stop, |
| .add_interface = p54_add_interface, |
| --- a/drivers/net/wireless/mac80211_hwsim.c |
| +++ b/drivers/net/wireless/mac80211_hwsim.c |
| @@ -3109,6 +3109,7 @@ static int mac80211_hwsim_change_sta_lin |
| |
| #define HWSIM_COMMON_OPS \ |
| .tx = mac80211_hwsim_tx, \ |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, \ |
| .start = mac80211_hwsim_start, \ |
| .stop = mac80211_hwsim_stop, \ |
| .add_interface = mac80211_hwsim_add_interface, \ |
| --- a/drivers/net/wireless/marvell/libertas_tf/main.c |
| +++ b/drivers/net/wireless/marvell/libertas_tf/main.c |
| @@ -474,6 +474,7 @@ static int lbtf_op_get_survey(struct iee |
| |
| static const struct ieee80211_ops lbtf_ops = { |
| .tx = lbtf_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = lbtf_op_start, |
| .stop = lbtf_op_stop, |
| .add_interface = lbtf_op_add_interface, |
| --- a/drivers/net/wireless/marvell/mwl8k.c |
| +++ b/drivers/net/wireless/marvell/mwl8k.c |
| @@ -5611,6 +5611,7 @@ static void mwl8k_sw_scan_complete(struc |
| |
| static const struct ieee80211_ops mwl8k_ops = { |
| .tx = mwl8k_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = mwl8k_start, |
| .stop = mwl8k_stop, |
| .add_interface = mwl8k_add_interface, |
| --- a/drivers/net/wireless/mediatek/mt7601u/main.c |
| +++ b/drivers/net/wireless/mediatek/mt7601u/main.c |
| @@ -406,6 +406,7 @@ out: |
| |
| const struct ieee80211_ops mt7601u_ops = { |
| .tx = mt7601u_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = mt7601u_start, |
| .stop = mt7601u_stop, |
| .add_interface = mt7601u_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt2400pci.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c |
| @@ -1706,6 +1706,7 @@ static int rt2400pci_tx_last_beacon(stru |
| |
| static const struct ieee80211_ops rt2400pci_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt2500pci.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2500pci.c |
| @@ -2004,6 +2004,7 @@ static int rt2500pci_tx_last_beacon(stru |
| |
| static const struct ieee80211_ops rt2500pci_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c |
| @@ -1795,6 +1795,7 @@ static int rt2500usb_probe_hw(struct rt2 |
| |
| static const struct ieee80211_ops rt2500usb_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c |
| @@ -288,6 +288,7 @@ static int rt2800pci_read_eeprom(struct |
| |
| static const struct ieee80211_ops rt2800pci_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c |
| @@ -133,6 +133,7 @@ static int rt2800soc_write_firmware(stru |
| |
| static const struct ieee80211_ops rt2800soc_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c |
| @@ -630,6 +630,7 @@ static int rt2800usb_probe_hw(struct rt2 |
| |
| static const struct ieee80211_ops rt2800usb_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c |
| @@ -2873,6 +2873,7 @@ static u64 rt61pci_get_tsf(struct ieee80 |
| |
| static const struct ieee80211_ops rt61pci_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/ralink/rt2x00/rt73usb.c |
| +++ b/drivers/net/wireless/ralink/rt2x00/rt73usb.c |
| @@ -2292,6 +2292,7 @@ static u64 rt73usb_get_tsf(struct ieee80 |
| |
| static const struct ieee80211_ops rt73usb_mac80211_ops = { |
| .tx = rt2x00mac_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rt2x00mac_start, |
| .stop = rt2x00mac_stop, |
| .add_interface = rt2x00mac_add_interface, |
| --- a/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c |
| +++ b/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c |
| @@ -1608,6 +1608,7 @@ static void rtl8180_configure_filter(str |
| |
| static const struct ieee80211_ops rtl8180_ops = { |
| .tx = rtl8180_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rtl8180_start, |
| .stop = rtl8180_stop, |
| .add_interface = rtl8180_add_interface, |
| --- a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c |
| +++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c |
| @@ -1378,6 +1378,7 @@ static int rtl8187_conf_tx(struct ieee80 |
| |
| static const struct ieee80211_ops rtl8187_ops = { |
| .tx = rtl8187_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rtl8187_start, |
| .stop = rtl8187_stop, |
| .add_interface = rtl8187_add_interface, |
| --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c |
| +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c |
| @@ -6548,6 +6548,7 @@ static void rtl8xxxu_stop(struct ieee802 |
| |
| static const struct ieee80211_ops rtl8xxxu_ops = { |
| .tx = rtl8xxxu_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .add_interface = rtl8xxxu_add_interface, |
| .remove_interface = rtl8xxxu_remove_interface, |
| .config = rtl8xxxu_config, |
| --- a/drivers/net/wireless/realtek/rtlwifi/core.c |
| +++ b/drivers/net/wireless/realtek/rtlwifi/core.c |
| @@ -1912,6 +1912,7 @@ const struct ieee80211_ops rtl_ops = { |
| .start = rtl_op_start, |
| .stop = rtl_op_stop, |
| .tx = rtl_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .add_interface = rtl_op_add_interface, |
| .remove_interface = rtl_op_remove_interface, |
| .change_interface = rtl_op_change_interface, |
| --- a/drivers/net/wireless/realtek/rtw88/mac80211.c |
| +++ b/drivers/net/wireless/realtek/rtw88/mac80211.c |
| @@ -896,6 +896,7 @@ static void rtw_ops_sta_rc_update(struct |
| |
| const struct ieee80211_ops rtw_ops = { |
| .tx = rtw_ops_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .wake_tx_queue = rtw_ops_wake_tx_queue, |
| .start = rtw_ops_start, |
| .stop = rtw_ops_stop, |
| --- a/drivers/net/wireless/realtek/rtw89/mac80211.c |
| +++ b/drivers/net/wireless/realtek/rtw89/mac80211.c |
| @@ -918,6 +918,7 @@ static int rtw89_ops_set_tid_config(stru |
| |
| const struct ieee80211_ops rtw89_ops = { |
| .tx = rtw89_ops_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .wake_tx_queue = rtw89_ops_wake_tx_queue, |
| .start = rtw89_ops_start, |
| .stop = rtw89_ops_stop, |
| --- a/drivers/net/wireless/rsi/rsi_91x_mac80211.c |
| +++ b/drivers/net/wireless/rsi/rsi_91x_mac80211.c |
| @@ -1958,6 +1958,7 @@ static int rsi_mac80211_resume(struct ie |
| |
| static const struct ieee80211_ops mac80211_ops = { |
| .tx = rsi_mac80211_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = rsi_mac80211_start, |
| .stop = rsi_mac80211_stop, |
| .add_interface = rsi_mac80211_add_interface, |
| --- a/drivers/net/wireless/st/cw1200/main.c |
| +++ b/drivers/net/wireless/st/cw1200/main.c |
| @@ -209,6 +209,7 @@ static const struct ieee80211_ops cw1200 |
| .remove_interface = cw1200_remove_interface, |
| .change_interface = cw1200_change_interface, |
| .tx = cw1200_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .hw_scan = cw1200_hw_scan, |
| .set_tim = cw1200_set_tim, |
| .sta_notify = cw1200_sta_notify, |
| --- a/drivers/net/wireless/ti/wl1251/main.c |
| +++ b/drivers/net/wireless/ti/wl1251/main.c |
| @@ -1359,6 +1359,7 @@ static const struct ieee80211_ops wl1251 |
| .prepare_multicast = wl1251_op_prepare_multicast, |
| .configure_filter = wl1251_op_configure_filter, |
| .tx = wl1251_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .set_key = wl1251_op_set_key, |
| .hw_scan = wl1251_op_hw_scan, |
| .bss_info_changed = wl1251_op_bss_info_changed, |
| --- a/drivers/net/wireless/ti/wlcore/main.c |
| +++ b/drivers/net/wireless/ti/wlcore/main.c |
| @@ -5942,6 +5942,7 @@ static const struct ieee80211_ops wl1271 |
| .prepare_multicast = wl1271_op_prepare_multicast, |
| .configure_filter = wl1271_op_configure_filter, |
| .tx = wl1271_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .set_key = wlcore_op_set_key, |
| .hw_scan = wl1271_op_hw_scan, |
| .cancel_hw_scan = wl1271_op_cancel_hw_scan, |
| --- a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c |
| +++ b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c |
| @@ -1344,6 +1344,7 @@ static u64 zd_op_get_tsf(struct ieee8021 |
| |
| static const struct ieee80211_ops zd_ops = { |
| .tx = zd_op_tx, |
| + .wake_tx_queue = ieee80211_handle_wake_tx_queue, |
| .start = zd_op_start, |
| .stop = zd_op_stop, |
| .add_interface = zd_op_add_interface, |