306-02-v6.2-wifi-mac80211-add-wake_tx_queue-callback-to-drivers.patch 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. From: Alexander Wetzel <alexander@wetzel-home.de>
  2. Date: Sun, 9 Oct 2022 18:30:39 +0200
  3. Subject: [PATCH] wifi: mac80211: add wake_tx_queue callback to drivers
  4. mac80211 is fully switching over to the internal TX queue (iTXQ)
  5. implementation. Update all drivers not yet providing the now mandatory
  6. wake_tx_queue() callback.
  7. As an side effect the netdev interfaces of all updated drivers will
  8. switch to the noqueue qdisc.
  9. Signed-off-by: Alexander Wetzel <alexander@wetzel-home.de>
  10. [add staging drivers]
  11. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  12. ---
  13. --- a/drivers/net/wireless/admtek/adm8211.c
  14. +++ b/drivers/net/wireless/admtek/adm8211.c
  15. @@ -1760,6 +1760,7 @@ static int adm8211_alloc_rings(struct ie
  16. static const struct ieee80211_ops adm8211_ops = {
  17. .tx = adm8211_tx,
  18. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  19. .start = adm8211_start,
  20. .stop = adm8211_stop,
  21. .add_interface = adm8211_add_interface,
  22. --- a/drivers/net/wireless/ath/ar5523/ar5523.c
  23. +++ b/drivers/net/wireless/ath/ar5523/ar5523.c
  24. @@ -1361,6 +1361,7 @@ static const struct ieee80211_ops ar5523
  25. .start = ar5523_start,
  26. .stop = ar5523_stop,
  27. .tx = ar5523_tx,
  28. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  29. .set_rts_threshold = ar5523_set_rts_threshold,
  30. .add_interface = ar5523_add_interface,
  31. .remove_interface = ar5523_remove_interface,
  32. --- a/drivers/net/wireless/ath/ath11k/mac.c
  33. +++ b/drivers/net/wireless/ath/ath11k/mac.c
  34. @@ -8587,6 +8587,7 @@ err_fallback:
  35. static const struct ieee80211_ops ath11k_ops = {
  36. .tx = ath11k_mac_op_tx,
  37. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  38. .start = ath11k_mac_op_start,
  39. .stop = ath11k_mac_op_stop,
  40. .reconfig_complete = ath11k_mac_op_reconfig_complete,
  41. --- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
  42. +++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
  43. @@ -781,6 +781,7 @@ static int ath5k_set_ringparam(struct ie
  44. const struct ieee80211_ops ath5k_hw_ops = {
  45. .tx = ath5k_tx,
  46. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  47. .start = ath5k_start,
  48. .stop = ath5k_stop,
  49. .add_interface = ath5k_add_interface,
  50. --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
  51. +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
  52. @@ -1870,6 +1870,7 @@ static void ath9k_htc_channel_switch_bea
  53. struct ieee80211_ops ath9k_htc_ops = {
  54. .tx = ath9k_htc_tx,
  55. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  56. .start = ath9k_htc_start,
  57. .stop = ath9k_htc_stop,
  58. .add_interface = ath9k_htc_add_interface,
  59. --- a/drivers/net/wireless/ath/carl9170/main.c
  60. +++ b/drivers/net/wireless/ath/carl9170/main.c
  61. @@ -1715,6 +1715,7 @@ static const struct ieee80211_ops carl91
  62. .start = carl9170_op_start,
  63. .stop = carl9170_op_stop,
  64. .tx = carl9170_op_tx,
  65. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  66. .flush = carl9170_op_flush,
  67. .add_interface = carl9170_op_add_interface,
  68. .remove_interface = carl9170_op_remove_interface,
  69. --- a/drivers/net/wireless/ath/wcn36xx/main.c
  70. +++ b/drivers/net/wireless/ath/wcn36xx/main.c
  71. @@ -1362,6 +1362,7 @@ static const struct ieee80211_ops wcn36x
  72. .prepare_multicast = wcn36xx_prepare_multicast,
  73. .configure_filter = wcn36xx_configure_filter,
  74. .tx = wcn36xx_tx,
  75. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  76. .set_key = wcn36xx_set_key,
  77. .hw_scan = wcn36xx_hw_scan,
  78. .cancel_hw_scan = wcn36xx_cancel_hw_scan,
  79. --- a/drivers/net/wireless/atmel/at76c50x-usb.c
  80. +++ b/drivers/net/wireless/atmel/at76c50x-usb.c
  81. @@ -2187,6 +2187,7 @@ static int at76_set_key(struct ieee80211
  82. static const struct ieee80211_ops at76_ops = {
  83. .tx = at76_mac80211_tx,
  84. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  85. .add_interface = at76_add_interface,
  86. .remove_interface = at76_remove_interface,
  87. .config = at76_config,
  88. --- a/drivers/net/wireless/broadcom/b43/main.c
  89. +++ b/drivers/net/wireless/broadcom/b43/main.c
  90. @@ -5171,6 +5171,7 @@ static int b43_op_get_survey(struct ieee
  91. static const struct ieee80211_ops b43_hw_ops = {
  92. .tx = b43_op_tx,
  93. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  94. .conf_tx = b43_op_conf_tx,
  95. .add_interface = b43_op_add_interface,
  96. .remove_interface = b43_op_remove_interface,
  97. --- a/drivers/net/wireless/broadcom/b43legacy/main.c
  98. +++ b/drivers/net/wireless/broadcom/b43legacy/main.c
  99. @@ -3532,6 +3532,7 @@ static int b43legacy_op_get_survey(struc
  100. static const struct ieee80211_ops b43legacy_hw_ops = {
  101. .tx = b43legacy_op_tx,
  102. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  103. .conf_tx = b43legacy_op_conf_tx,
  104. .add_interface = b43legacy_op_add_interface,
  105. .remove_interface = b43legacy_op_remove_interface,
  106. --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
  107. +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c
  108. @@ -962,6 +962,7 @@ static int brcms_ops_beacon_set_tim(stru
  109. static const struct ieee80211_ops brcms_ops = {
  110. .tx = brcms_ops_tx,
  111. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  112. .start = brcms_ops_start,
  113. .stop = brcms_ops_stop,
  114. .add_interface = brcms_ops_add_interface,
  115. --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c
  116. +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
  117. @@ -3439,6 +3439,7 @@ static const struct attribute_group il39
  118. static struct ieee80211_ops il3945_mac_ops __ro_after_init = {
  119. .tx = il3945_mac_tx,
  120. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  121. .start = il3945_mac_start,
  122. .stop = il3945_mac_stop,
  123. .add_interface = il_mac_add_interface,
  124. --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c
  125. +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c
  126. @@ -6308,6 +6308,7 @@ il4965_tx_queue_set_status(struct il_pri
  127. static const struct ieee80211_ops il4965_mac_ops = {
  128. .tx = il4965_mac_tx,
  129. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  130. .start = il4965_mac_start,
  131. .stop = il4965_mac_stop,
  132. .add_interface = il_mac_add_interface,
  133. --- a/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c
  134. +++ b/drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c
  135. @@ -1571,6 +1571,7 @@ static void iwlagn_mac_sta_notify(struct
  136. const struct ieee80211_ops iwlagn_hw_ops = {
  137. .tx = iwlagn_mac_tx,
  138. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  139. .start = iwlagn_mac_start,
  140. .stop = iwlagn_mac_stop,
  141. #ifdef CONFIG_PM_SLEEP
  142. --- a/drivers/net/wireless/intersil/p54/main.c
  143. +++ b/drivers/net/wireless/intersil/p54/main.c
  144. @@ -705,6 +705,7 @@ static void p54_set_coverage_class(struc
  145. static const struct ieee80211_ops p54_ops = {
  146. .tx = p54_tx_80211,
  147. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  148. .start = p54_start,
  149. .stop = p54_stop,
  150. .add_interface = p54_add_interface,
  151. --- a/drivers/net/wireless/mac80211_hwsim.c
  152. +++ b/drivers/net/wireless/mac80211_hwsim.c
  153. @@ -3109,6 +3109,7 @@ static int mac80211_hwsim_change_sta_lin
  154. #define HWSIM_COMMON_OPS \
  155. .tx = mac80211_hwsim_tx, \
  156. + .wake_tx_queue = ieee80211_handle_wake_tx_queue, \
  157. .start = mac80211_hwsim_start, \
  158. .stop = mac80211_hwsim_stop, \
  159. .add_interface = mac80211_hwsim_add_interface, \
  160. --- a/drivers/net/wireless/marvell/libertas_tf/main.c
  161. +++ b/drivers/net/wireless/marvell/libertas_tf/main.c
  162. @@ -474,6 +474,7 @@ static int lbtf_op_get_survey(struct iee
  163. static const struct ieee80211_ops lbtf_ops = {
  164. .tx = lbtf_op_tx,
  165. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  166. .start = lbtf_op_start,
  167. .stop = lbtf_op_stop,
  168. .add_interface = lbtf_op_add_interface,
  169. --- a/drivers/net/wireless/marvell/mwl8k.c
  170. +++ b/drivers/net/wireless/marvell/mwl8k.c
  171. @@ -5611,6 +5611,7 @@ static void mwl8k_sw_scan_complete(struc
  172. static const struct ieee80211_ops mwl8k_ops = {
  173. .tx = mwl8k_tx,
  174. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  175. .start = mwl8k_start,
  176. .stop = mwl8k_stop,
  177. .add_interface = mwl8k_add_interface,
  178. --- a/drivers/net/wireless/mediatek/mt7601u/main.c
  179. +++ b/drivers/net/wireless/mediatek/mt7601u/main.c
  180. @@ -406,6 +406,7 @@ out:
  181. const struct ieee80211_ops mt7601u_ops = {
  182. .tx = mt7601u_tx,
  183. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  184. .start = mt7601u_start,
  185. .stop = mt7601u_stop,
  186. .add_interface = mt7601u_add_interface,
  187. --- a/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
  188. +++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
  189. @@ -1706,6 +1706,7 @@ static int rt2400pci_tx_last_beacon(stru
  190. static const struct ieee80211_ops rt2400pci_mac80211_ops = {
  191. .tx = rt2x00mac_tx,
  192. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  193. .start = rt2x00mac_start,
  194. .stop = rt2x00mac_stop,
  195. .add_interface = rt2x00mac_add_interface,
  196. --- a/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
  197. +++ b/drivers/net/wireless/ralink/rt2x00/rt2500pci.c
  198. @@ -2004,6 +2004,7 @@ static int rt2500pci_tx_last_beacon(stru
  199. static const struct ieee80211_ops rt2500pci_mac80211_ops = {
  200. .tx = rt2x00mac_tx,
  201. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  202. .start = rt2x00mac_start,
  203. .stop = rt2x00mac_stop,
  204. .add_interface = rt2x00mac_add_interface,
  205. --- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c
  206. +++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c
  207. @@ -1795,6 +1795,7 @@ static int rt2500usb_probe_hw(struct rt2
  208. static const struct ieee80211_ops rt2500usb_mac80211_ops = {
  209. .tx = rt2x00mac_tx,
  210. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  211. .start = rt2x00mac_start,
  212. .stop = rt2x00mac_stop,
  213. .add_interface = rt2x00mac_add_interface,
  214. --- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
  215. +++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
  216. @@ -288,6 +288,7 @@ static int rt2800pci_read_eeprom(struct
  217. static const struct ieee80211_ops rt2800pci_mac80211_ops = {
  218. .tx = rt2x00mac_tx,
  219. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  220. .start = rt2x00mac_start,
  221. .stop = rt2x00mac_stop,
  222. .add_interface = rt2x00mac_add_interface,
  223. --- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
  224. +++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
  225. @@ -133,6 +133,7 @@ static int rt2800soc_write_firmware(stru
  226. static const struct ieee80211_ops rt2800soc_mac80211_ops = {
  227. .tx = rt2x00mac_tx,
  228. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  229. .start = rt2x00mac_start,
  230. .stop = rt2x00mac_stop,
  231. .add_interface = rt2x00mac_add_interface,
  232. --- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
  233. +++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
  234. @@ -630,6 +630,7 @@ static int rt2800usb_probe_hw(struct rt2
  235. static const struct ieee80211_ops rt2800usb_mac80211_ops = {
  236. .tx = rt2x00mac_tx,
  237. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  238. .start = rt2x00mac_start,
  239. .stop = rt2x00mac_stop,
  240. .add_interface = rt2x00mac_add_interface,
  241. --- a/drivers/net/wireless/ralink/rt2x00/rt61pci.c
  242. +++ b/drivers/net/wireless/ralink/rt2x00/rt61pci.c
  243. @@ -2873,6 +2873,7 @@ static u64 rt61pci_get_tsf(struct ieee80
  244. static const struct ieee80211_ops rt61pci_mac80211_ops = {
  245. .tx = rt2x00mac_tx,
  246. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  247. .start = rt2x00mac_start,
  248. .stop = rt2x00mac_stop,
  249. .add_interface = rt2x00mac_add_interface,
  250. --- a/drivers/net/wireless/ralink/rt2x00/rt73usb.c
  251. +++ b/drivers/net/wireless/ralink/rt2x00/rt73usb.c
  252. @@ -2292,6 +2292,7 @@ static u64 rt73usb_get_tsf(struct ieee80
  253. static const struct ieee80211_ops rt73usb_mac80211_ops = {
  254. .tx = rt2x00mac_tx,
  255. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  256. .start = rt2x00mac_start,
  257. .stop = rt2x00mac_stop,
  258. .add_interface = rt2x00mac_add_interface,
  259. --- a/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
  260. +++ b/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
  261. @@ -1608,6 +1608,7 @@ static void rtl8180_configure_filter(str
  262. static const struct ieee80211_ops rtl8180_ops = {
  263. .tx = rtl8180_tx,
  264. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  265. .start = rtl8180_start,
  266. .stop = rtl8180_stop,
  267. .add_interface = rtl8180_add_interface,
  268. --- a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
  269. +++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
  270. @@ -1378,6 +1378,7 @@ static int rtl8187_conf_tx(struct ieee80
  271. static const struct ieee80211_ops rtl8187_ops = {
  272. .tx = rtl8187_tx,
  273. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  274. .start = rtl8187_start,
  275. .stop = rtl8187_stop,
  276. .add_interface = rtl8187_add_interface,
  277. --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
  278. +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
  279. @@ -6548,6 +6548,7 @@ static void rtl8xxxu_stop(struct ieee802
  280. static const struct ieee80211_ops rtl8xxxu_ops = {
  281. .tx = rtl8xxxu_tx,
  282. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  283. .add_interface = rtl8xxxu_add_interface,
  284. .remove_interface = rtl8xxxu_remove_interface,
  285. .config = rtl8xxxu_config,
  286. --- a/drivers/net/wireless/realtek/rtlwifi/core.c
  287. +++ b/drivers/net/wireless/realtek/rtlwifi/core.c
  288. @@ -1912,6 +1912,7 @@ const struct ieee80211_ops rtl_ops = {
  289. .start = rtl_op_start,
  290. .stop = rtl_op_stop,
  291. .tx = rtl_op_tx,
  292. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  293. .add_interface = rtl_op_add_interface,
  294. .remove_interface = rtl_op_remove_interface,
  295. .change_interface = rtl_op_change_interface,
  296. --- a/drivers/net/wireless/realtek/rtw88/mac80211.c
  297. +++ b/drivers/net/wireless/realtek/rtw88/mac80211.c
  298. @@ -896,6 +896,7 @@ static void rtw_ops_sta_rc_update(struct
  299. const struct ieee80211_ops rtw_ops = {
  300. .tx = rtw_ops_tx,
  301. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  302. .wake_tx_queue = rtw_ops_wake_tx_queue,
  303. .start = rtw_ops_start,
  304. .stop = rtw_ops_stop,
  305. --- a/drivers/net/wireless/realtek/rtw89/mac80211.c
  306. +++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
  307. @@ -918,6 +918,7 @@ static int rtw89_ops_set_tid_config(stru
  308. const struct ieee80211_ops rtw89_ops = {
  309. .tx = rtw89_ops_tx,
  310. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  311. .wake_tx_queue = rtw89_ops_wake_tx_queue,
  312. .start = rtw89_ops_start,
  313. .stop = rtw89_ops_stop,
  314. --- a/drivers/net/wireless/rsi/rsi_91x_mac80211.c
  315. +++ b/drivers/net/wireless/rsi/rsi_91x_mac80211.c
  316. @@ -1958,6 +1958,7 @@ static int rsi_mac80211_resume(struct ie
  317. static const struct ieee80211_ops mac80211_ops = {
  318. .tx = rsi_mac80211_tx,
  319. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  320. .start = rsi_mac80211_start,
  321. .stop = rsi_mac80211_stop,
  322. .add_interface = rsi_mac80211_add_interface,
  323. --- a/drivers/net/wireless/st/cw1200/main.c
  324. +++ b/drivers/net/wireless/st/cw1200/main.c
  325. @@ -209,6 +209,7 @@ static const struct ieee80211_ops cw1200
  326. .remove_interface = cw1200_remove_interface,
  327. .change_interface = cw1200_change_interface,
  328. .tx = cw1200_tx,
  329. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  330. .hw_scan = cw1200_hw_scan,
  331. .set_tim = cw1200_set_tim,
  332. .sta_notify = cw1200_sta_notify,
  333. --- a/drivers/net/wireless/ti/wl1251/main.c
  334. +++ b/drivers/net/wireless/ti/wl1251/main.c
  335. @@ -1359,6 +1359,7 @@ static const struct ieee80211_ops wl1251
  336. .prepare_multicast = wl1251_op_prepare_multicast,
  337. .configure_filter = wl1251_op_configure_filter,
  338. .tx = wl1251_op_tx,
  339. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  340. .set_key = wl1251_op_set_key,
  341. .hw_scan = wl1251_op_hw_scan,
  342. .bss_info_changed = wl1251_op_bss_info_changed,
  343. --- a/drivers/net/wireless/ti/wlcore/main.c
  344. +++ b/drivers/net/wireless/ti/wlcore/main.c
  345. @@ -5942,6 +5942,7 @@ static const struct ieee80211_ops wl1271
  346. .prepare_multicast = wl1271_op_prepare_multicast,
  347. .configure_filter = wl1271_op_configure_filter,
  348. .tx = wl1271_op_tx,
  349. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  350. .set_key = wlcore_op_set_key,
  351. .hw_scan = wl1271_op_hw_scan,
  352. .cancel_hw_scan = wl1271_op_cancel_hw_scan,
  353. --- a/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
  354. +++ b/drivers/net/wireless/zydas/zd1211rw/zd_mac.c
  355. @@ -1344,6 +1344,7 @@ static u64 zd_op_get_tsf(struct ieee8021
  356. static const struct ieee80211_ops zd_ops = {
  357. .tx = zd_op_tx,
  358. + .wake_tx_queue = ieee80211_handle_wake_tx_queue,
  359. .start = zd_op_start,
  360. .stop = zd_op_stop,
  361. .add_interface = zd_op_add_interface,