2024-05-04 00:38:09

by Ping-Ke Shih

[permalink] [raw]
Subject: pull-request: rtw-next-2024-05-04

Hi,

A pull-request of rtw-next to wireless-next tree, more info below. Please
let me know if any problems.

Thanks
Ping-Ke

---

The following changes since commit a35b36e6ee5dcf323d846ec3881159e4af90c9b4:

wifi: mac80211: extend IEEE80211_KEY_FLAG_GENERATE_MMIE to other ciphers (2024-04-08 20:52:28 +0200)

are available in the Git repository at:

https://github.com/pkshih/rtw.git tags/rtw-next-2024-05-04

for you to fetch changes up to b3e11ee3b97e875ff2d809978c4311e17f117669:

wifi: rtlwifi: Remove unused structs and avoid multiple -Wfamnae warnings (2024-05-04 08:17:00 +0800)

----------------------------------------------------------------
rtw-next patches for v6.10

Major changes are listed as below

rtl8xxxu:

- remove rtl8xxxu_ prefix from filename
- cleanup includes of header files

rtlwifi:

- adjust code to share with coming support of rtl8192du

rtw89:

- complete features of new WiFi 7 chip 8922AE including BT-coexistence
and WoWLAN
- use BIOS ACPI settings to set TX power and channels

----------------------------------------------------------------
Bitterblue Smith (10):
wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU
wifi: rtl8xxxu: Add separate MAC init table for RTL8192CU
wifi: rtl8xxxu: Add LED control code for RTL8192CU family
wifi: rtl8xxxu: Add LED control code for RTL8723BU
wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power
wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE
wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path
wifi: rtlwifi: Move code from rtl8192de to rtl8192d-common
wifi: rtlwifi: Clean up rtl8192d-common a bit
wifi: rtlwifi: Adjust rtl8192d-common for USB

Chia-Yuan Li (1):
wifi: rtw89: 8852c: refine power sequence to imporve power consumption

Chih-Kang Chang (10):
wifi: rtw89: wow: refine WoWLAN flows of HCI interrupts and low power mode
wifi: rtw89: wow: parsing Auth Key Management from associate request
wifi: rtw89: wow: prepare PTK GTK info from mac80211
wifi: rtw89: use struct to access firmware command h2c_dctl_sec_cam_v1
wifi: rtw89: use struct to fill H2C of WoWLAN global configuration
wifi: rtw89: wow: construct EAPoL packet for GTK rekey offload
wifi: rtw89: wow: add GTK rekey feature related H2C commands
wifi: rtw89: wow: update latest PTK GTK info to mac80211 after resume
wifi: rtw89: wow: support 802.11w PMF IGTK rekey
wifi: rtw89: wow: support WEP cipher on WoWLAN

Chin-Yen Lee (3):
wifi: rtw89: reset AFEDIG register in power off sequence
wifi: rtw89: wow: send RFK pre-nofity H2C command in WoWLAN mode
wifi: rtw89: wow: add ARP offload feature

Ching-Te Ku (17):
wifi: rtw89: coex: Allow Bluetooth doing traffic during Wi-Fi scan
wifi: rtw89: coex: Add v7 firmware cycle status report
wifi: rtw89: coex: Add version 3 report map of H2C command
wifi: rtw89: coex: Add PTA path control condition for chip RTL8922A
wifi: rtw89: coex: Update Bluetooth polluted Wi-Fi TX logic
wifi: rtw89: coex: Add register monitor report v7 format
wifi: rtw89: coex: Add GPIO signal control version 7
wifi: rtw89: coex: Add coexistence firmware control report version 8
wifi: rtw89: coex: Re-order the index for the report from firmware
wifi: rtw89: coex: Add Wi-Fi null data status version 7
wifi: rtw89: coex: Add Bluetooth scan parameter report version 7
wifi: rtw89: coex: Add Bluetooth frequency hopping map version 7
wifi: rtw89: coex: Add Bluetooth version report version 7
wifi: rtw89: coex: Fix unexpected value in version 7 slot parameter
wifi: rtw89: coex: Add Wi-Fi role v8 condition when set Bluetooth channel
wifi: rtw89: coex: Add Wi-Fi role v8 condition when set BTG control
wifi: rtw89: coex: Check and enable reports after run coex

Colin Ian King (1):
wifi: rtlwifi: rtl8723be: Make read-only arrays static const

Gustavo A. R. Silva (1):
wifi: rtlwifi: Remove unused structs and avoid multiple -Wfamnae warnings

Jiapeng Chong (1):
wifi: rtw89: Remove the redundant else branch in the function rtw89_phy_get_kpath

Kalle Valo (2):
wifi: rtl8xxxu: remove some unused includes
wifi: rtl8xxxu: remove rtl8xxxu_ prefix from filenames

Kuan-Chung Chen (1):
wifi: rtw89: fix CTS transmission issue with center frequency deviation

Martin Kaistra (2):
Revert "wifi: rtl8xxxu: enable MFP support"
wifi: rtl8xxxu: enable MFP support with security flag of RX descriptor

Ping-Ke Shih (5):
wifi: rtw89: pci: correct TX resource checking for PCI DMA channel of firmware command
wifi: rtw88: suppress messages of failed to flush queue
wifi: rtw89: 8852b: update hardware parameters for RFE type 5
wifi: rtl8xxxu: cleanup includes
wifi: rtw89: correct aSIFSTime for 6GHz band

Zong-Zhe Yang (10):
wifi: rtw89: sar: correct TX power boundary for MAC domain
wifi: rtw89: fw: scan offload prohibit all 6 GHz channel if no 6 GHz sband
wifi: rtw89: 8852c: update TX power tables to R69.1 (1 of 2)
wifi: rtw89: 8852c: update TX power tables to R69.1 (2 of 2)
wifi: rtw89: regd: block 6 GHz by policy if not specific country
wifi: rtw89: regd: extend policy of UNII-4 for IC regulatory
wifi: rtw89: acpi: process 6 GHz SP policy from ACPI DSM
wifi: rtw89: regd: handle policy of 6 GHz SP according to BIOS
wifi: rtw89: set WIPHY_FLAG_DISABLE_WEXT before MLO
wifi: rtw89: 8922a: fix argument to hal_reset in bb_cfg_txrx_path

.../realtek/rtl8xxxu/{rtl8xxxu_8188e.c => 8188e.c} | 18 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8188f.c => 8188f.c} | 18 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8192c.c => 8192c.c} | 67 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8192e.c => 8192e.c} | 18 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8192f.c => 8192f.c} | 18 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8710b.c => 8710b.c} | 18 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8723a.c => 8723a.c} | 45 +-
.../realtek/rtl8xxxu/{rtl8xxxu_8723b.c => 8723b.c} | 41 +-
drivers/net/wireless/realtek/rtl8xxxu/Makefile | 6 +-
.../realtek/rtl8xxxu/{rtl8xxxu_core.c => core.c} | 75 +-
.../realtek/rtl8xxxu/{rtl8xxxu_regs.h => regs.h} | 0
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 13 +-
drivers/net/wireless/realtek/rtlwifi/Kconfig | 4 +
drivers/net/wireless/realtek/rtlwifi/Makefile | 1 +
drivers/net/wireless/realtek/rtlwifi/cam.c | 5 +-
drivers/net/wireless/realtek/rtlwifi/cam.h | 6 +-
drivers/net/wireless/realtek/rtlwifi/efuse.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/efuse.h | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8192d/Makefile | 11 +
.../realtek/rtlwifi/{rtl8192de => rtl8192d}/def.h | 0
.../wireless/realtek/rtlwifi/rtl8192d/dm_common.c | 1061 ++++++++
.../wireless/realtek/rtlwifi/rtl8192d/dm_common.h | 79 +
.../wireless/realtek/rtlwifi/rtl8192d/fw_common.c | 370 +++
.../wireless/realtek/rtlwifi/rtl8192d/fw_common.h | 49 +
.../wireless/realtek/rtlwifi/rtl8192d/hw_common.c | 1225 +++++++++
.../wireless/realtek/rtlwifi/rtl8192d/hw_common.h | 24 +
.../net/wireless/realtek/rtlwifi/rtl8192d/main.c | 9 +
.../wireless/realtek/rtlwifi/rtl8192d/phy_common.c | 856 +++++++
.../wireless/realtek/rtlwifi/rtl8192d/phy_common.h | 111 +
.../realtek/rtlwifi/{rtl8192de => rtl8192d}/reg.h | 162 +-
.../wireless/realtek/rtlwifi/rtl8192d/rf_common.c | 359 +++
.../wireless/realtek/rtlwifi/rtl8192d/rf_common.h | 13 +
.../wireless/realtek/rtlwifi/rtl8192d/trx_common.c | 516 ++++
.../wireless/realtek/rtlwifi/rtl8192d/trx_common.h | 405 +++
.../net/wireless/realtek/rtlwifi/rtl8192de/dm.c | 1072 +-------
.../net/wireless/realtek/rtlwifi/rtl8192de/dm.h | 91 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/fw.c | 375 +--
.../net/wireless/realtek/rtlwifi/rtl8192de/fw.h | 37 -
.../net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 1168 +--------
.../net/wireless/realtek/rtlwifi/rtl8192de/hw.h | 11 -
.../net/wireless/realtek/rtlwifi/rtl8192de/led.c | 2 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 918 +------
.../net/wireless/realtek/rtlwifi/rtl8192de/phy.h | 59 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/rf.c | 375 +--
.../net/wireless/realtek/rtlwifi/rtl8192de/rf.h | 5 -
.../net/wireless/realtek/rtlwifi/rtl8192de/sw.c | 12 +-
.../net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 515 +---
.../net/wireless/realtek/rtlwifi/rtl8192de/trx.h | 433 ----
.../net/wireless/realtek/rtlwifi/rtl8723be/phy.c | 45 +-
drivers/net/wireless/realtek/rtlwifi/usb.c | 3 +
drivers/net/wireless/realtek/rtlwifi/wifi.h | 33 +-
drivers/net/wireless/realtek/rtw88/debug.h | 1 +
drivers/net/wireless/realtek/rtw88/mac.c | 5 +-
drivers/net/wireless/realtek/rtw88/pci.c | 3 +-
drivers/net/wireless/realtek/rtw89/acpi.c | 47 +
drivers/net/wireless/realtek/rtw89/acpi.h | 21 +-
drivers/net/wireless/realtek/rtw89/cam.c | 120 +-
drivers/net/wireless/realtek/rtw89/cam.h | 71 +-
drivers/net/wireless/realtek/rtw89/coex.c | 1002 +++++++-
drivers/net/wireless/realtek/rtw89/coex.h | 36 +
drivers/net/wireless/realtek/rtw89/core.c | 13 +-
drivers/net/wireless/realtek/rtw89/core.h | 242 +-
drivers/net/wireless/realtek/rtw89/fw.c | 338 ++-
drivers/net/wireless/realtek/rtw89/fw.h | 466 +---
drivers/net/wireless/realtek/rtw89/mac.c | 50 +-
drivers/net/wireless/realtek/rtw89/mac.h | 7 +
drivers/net/wireless/realtek/rtw89/mac80211.c | 28 +-
drivers/net/wireless/realtek/rtw89/mac_be.c | 5 +
drivers/net/wireless/realtek/rtw89/pci.c | 3 +-
drivers/net/wireless/realtek/rtw89/phy.c | 6 +-
drivers/net/wireless/realtek/rtw89/ps.c | 3 +-
drivers/net/wireless/realtek/rtw89/reg.h | 3 +
drivers/net/wireless/realtek/rtw89/regd.c | 156 +-
drivers/net/wireless/realtek/rtw89/rtw8851b.c | 1 +
drivers/net/wireless/realtek/rtw89/rtw8852b.c | 14 +
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 12 +-
.../net/wireless/realtek/rtw89/rtw8852c_table.c | 2616 --------------------
drivers/net/wireless/realtek/rtw89/rtw8922a.c | 2 +-
drivers/net/wireless/realtek/rtw89/sar.h | 4 +-
drivers/net/wireless/realtek/rtw89/wow.c | 716 +++++-
drivers/net/wireless/realtek/rtw89/wow.h | 57 +
81 files changed, 8371 insertions(+), 8438 deletions(-)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8188e.c => 8188e.c} (99%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8188f.c => 8188f.c} (99%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8192c.c => 8192c.c} (90%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8192e.c => 8192e.c} (99%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8192f.c => 8192f.c} (99%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8710b.c => 8710b.c} (99%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8723a.c => 8723a.c} (90%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_8723b.c => 8723b.c} (98%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_core.c => core.c} (98%)
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu_regs.h => regs.h} (100%)
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/Makefile
rename drivers/net/wireless/realtek/rtlwifi/{rtl8192de => rtl8192d}/def.h (100%)
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/dm_common.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/dm_common.h
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/fw_common.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/fw_common.h
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.h
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/main.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/phy_common.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/phy_common.h
rename drivers/net/wireless/realtek/rtlwifi/{rtl8192de => rtl8192d}/reg.h (90%)
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/rf_common.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/rf_common.h
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c
create mode 100644 drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.h


2024-05-04 07:10:10

by Kalle Valo

[permalink] [raw]
Subject: Re: pull-request: rtw-next-2024-05-04

Ping-Ke Shih <[email protected]> wrote:

> Hi,
>
> A pull-request of rtw-next to wireless-next tree, more info below. Please
> let me know if any problems.
>
> Thanks
> Ping-Ke

I see a new warning with GCC 13.2. Please fix this and send a new pull request.

In file included from ./include/linux/fortify-string.h:5,
from ./include/linux/string.h:369,
from ./include/linux/bitmap.h:13,
from ./include/linux/cpumask.h:13,
from ./include/linux/sched.h:16,
from drivers/net/wireless/realtek/rtlwifi/rtl8192d/../wifi.h:9,
from drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:4:
In function 'le32p_replace_bits',
inlined from 'rtl92de_update_hal_rate_mask.isra' at drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:986:2:
./include/linux/bitfield.h:189:15: warning: 'rate_mask' is used uninitialized [-Wuninitialized]
189 | *p = (*p & ~to(field)) | type##_encode_bits(val, field); \
| ^~
./include/linux/bitfield.h:196:9: note: in expansion of macro '____MAKE_OP'
196 | ____MAKE_OP(le##size,u##size,cpu_to_le##size,le##size##_to_cpu) \
| ^~~~~~~~~~~
./include/linux/bitfield.h:201:1: note: in expansion of macro '__MAKE_OP'
201 | __MAKE_OP(32)
| ^~~~~~~~~
drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c: In function 'rtl92de_update_hal_rate_mask.isra':
drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:863:37: note: 'rate_mask' declared here
863 | struct rtl92d_rate_mask_h2c rate_mask;
| ^~~~~~~~~

Patch set to Changes Requested.

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


2024-05-04 11:17:00

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: pull-request: rtw-next-2024-05-04

On Sat, 2024-05-04 at 07:10 +0000, Kalle Valo wrote:
>
> drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:986:2:
> ./include/linux/bitfield.h:189:15: warning: 'rate_mask' is used uninitialized [-Wuninitialized]
>

I have updated gcc to 13.2.1 (local build), but still can't see this warning.
Then, I force to add -Wuninitialized and delete -Wno-maybe-uninitialized
locally, and I can see this warning (but -Wmaybe-uninitialized instead).

I did suspect wireless-next tree does more compiler options, so I also
tried to merge the tree, but still the same.

To prevent blocking pull-request, I would make patch and send pull-request
by your finding. I will continue to dig the cause afterward.

Ping-Ke



2024-05-04 13:38:15

by Kalle Valo

[permalink] [raw]
Subject: Re: pull-request: rtw-next-2024-05-04

Ping-Ke Shih <[email protected]> writes:

> On Sat, 2024-05-04 at 07:10 +0000, Kalle Valo wrote:
>>
>> drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:986:2:
>> ./include/linux/bitfield.h:189:15: warning: 'rate_mask' is used
>> uninitialized [-Wuninitialized]
>>
>
> I have updated gcc to 13.2.1 (local build), but still can't see this warning.

I'm not sure if you aware that crosstool provides an easy way to test
different compilers. More info here:

https://wireless.wiki.kernel.org/en/users/drivers/ath10k/codingstyle#tools

> Then, I force to add -Wuninitialized and delete -Wno-maybe-uninitialized
> locally, and I can see this warning (but -Wmaybe-uninitialized instead).
>
> I did suspect wireless-next tree does more compiler options, so I also
> tried to merge the tree, but still the same.

Weird, maybe it's due to different kconfig options? I have attached my
.config which I use to compile test wireless trees.

> To prevent blocking pull-request, I would make patch and send pull-request
> by your finding. I will continue to dig the cause afterward.

I don't see any warnings with v2 anymore. Thanks for the quick fix!

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


Attachments:
.config (124.05 kB)

2024-05-05 02:23:00

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: pull-request: rtw-next-2024-05-04

On Sat, 2024-05-04 at 16:38 +0300, Kalle Valo wrote:
>
> Ping-Ke Shih <[email protected]> writes:
>
> > On Sat, 2024-05-04 at 07:10 +0000, Kalle Valo wrote:
> > > drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:986:2:
> > > ./include/linux/bitfield.h:189:15: warning: 'rate_mask' is used
> > > uninitialized [-Wuninitialized]
> > >
> >
> > I have updated gcc to 13.2.1 (local build), but still can't see this warning.
>
> I'm not sure if you aware that crosstool provides an easy way to test
> different compilers. More info here:
>
> https://wireless.wiki.kernel.org/en/users/drivers/ath10k/codingstyle#tools


I didn't know that before, and I use that convenient cross build now. :-)

A question about GNUmakefile, it seems miss

include Makefile

Otherwise, 'make' told me no rules to make.

>
> > Then, I force to add -Wuninitialized and delete -Wno-maybe-uninitialized
> > locally, and I can see this warning (but -Wmaybe-uninitialized instead).
> >
> > I did suspect wireless-next tree does more compiler options, so I also
> > tried to merge the tree, but still the same.
>
> Weird, maybe it's due to different kconfig options? I have attached my
> .config which I use to compile test wireless trees.

Using your .config can reproduce the symptom, and then I try to bisect CONFIG_xxx.
The cause is "CONFIG_DEBUG_SECTION_MISMATCH=y". My .config didn't have that.

I also tried my original compiler that can also see the warning with new .config.

>
> > To prevent blocking pull-request, I would make patch and send pull-request
> > by your finding. I will continue to dig the cause afterward.
>
> I don't see any warnings with v2 anymore. Thanks for the quick fix!
>

Thanks for your time on weekend. :-)


2024-05-05 04:29:11

by Kalle Valo

[permalink] [raw]
Subject: Re: pull-request: rtw-next-2024-05-04

Ping-Ke Shih <[email protected]> writes:

> On Sat, 2024-05-04 at 16:38 +0300, Kalle Valo wrote:
>>
>> Ping-Ke Shih <[email protected]> writes:
>>
>> > On Sat, 2024-05-04 at 07:10 +0000, Kalle Valo wrote:
>> > > drivers/net/wireless/realtek/rtlwifi/rtl8192d/hw_common.c:986:2:
>> > > ./include/linux/bitfield.h:189:15: warning: 'rate_mask' is used
>> > > uninitialized [-Wuninitialized]
>> > >
>> >
>> > I have updated gcc to 13.2.1 (local build), but still can't see this warning.
>>
>> I'm not sure if you aware that crosstool provides an easy way to test
>> different compilers. More info here:
>>
>> https://wireless.wiki.kernel.org/en/users/drivers/ath10k/codingstyle#tools
>
>
> I didn't know that before, and I use that convenient cross build now. :-)

There are also similar packages for clang:

https://mirrors.edge.kernel.org/pub/tools/llvm/

> A question about GNUmakefile, it seems miss
>
> include Makefile
>
> Otherwise, 'make' told me no rules to make.

Indeed, thanks for reporting that. I fixed now the wiki.

>> > Then, I force to add -Wuninitialized and delete -Wno-maybe-uninitialized
>> > locally, and I can see this warning (but -Wmaybe-uninitialized instead).
>> >
>> > I did suspect wireless-next tree does more compiler options, so I also
>> > tried to merge the tree, but still the same.
>>
>> Weird, maybe it's due to different kconfig options? I have attached my
>> .config which I use to compile test wireless trees.
>
> Using your .config can reproduce the symptom, and then I try to bisect CONFIG_xxx.
> The cause is "CONFIG_DEBUG_SECTION_MISMATCH=y". My .config didn't have that.
>
> I also tried my original compiler that can also see the warning with
> new .config.

Ah, I would not have never guessed that option could cause something
like this. Very good to know.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches