Commit graph

17 commits

Author SHA1 Message Date
Bjoern A. Zeeb
43bd8bf721 rtw89: enable ACPI support on FreeBSD
Now that LinuxKPI supports the lower case Linux ACPI spellings under
LINUXKPI_WANT_LINUX_ACPI remove the #ifdef around the code and compile in
ACPI support.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 8c97c46418)
2025-07-16 08:34:33 +02:00
Bjoern A. Zeeb
6298b56637 rtw89: prevent a NULL pointer deref in rtw89_swap_chanctx()
It is currently unclear if this is a result of the driver itself already
or the way LinuxKPI drives channels and the driver simply accepting and
acting on things it no longer should.
For now put the bandaid into place to make the driver work and pass
packets.  For better resilience the check does not hurt anyway.

The moment we enter rtw89_chanctx_ops_add() the first time,
entity_map 0x00000001 has the lowest bit set and find_next_zero_bit()
will return 1. As a result the driver will try to swap chanctxs and
trip over a NULL pointer in rtw89_swap_chanctx().  See comment there
for how to (likely) trigger it.

Sponsored by:	The FreeBSD Foundation
Reported by:	Axel Rau (Axel.Rau Chaos1.DE) with 8852CE

(cherry picked from commit 3a427b8320)
2025-07-09 10:05:43 +02:00
Bjoern A. Zeeb
b6e8b845ae rtw89: merge Realtek's rtw89 driver based on Linux v6.14
This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
38fec10eb60d687e30c8c6b5420d86e8149f7557 ( tag: v6.14 ).

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit df279a26d3)
2025-04-29 22:29:51 +00:00
Bjoern A. Zeeb
1be235fcc4 rtw89: make wow.c compile
So far we have not compiled wow.c given we do not enable CONFIG_PM
yet.
Make the necessary file local adjustments to make the file compile
once further changes in LinuxKPI 802.11 code are comitted.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 848fdcae03)
2025-04-29 10:49:27 +00:00
Bjoern A. Zeeb
0735e8ddc3 rtw88/rtw89: avoid duplicate top-level directory with debugfs
If people like me having multiple cards in the same system
creating the debugfs dirctory leads to a panic upon attaching
the 2nd card due to the duplicate name.
Rather than using the hard coded driver name, use the device name
(e.g., rtw880, rtw881, rtw882).
This solves two issues: it avoids the duplicate name and we get
individual debugging/statistic information for each card.

Sponsored by:	The FreeBSD Foundation
X-Note:		ath1[01]k and mt76 likely will need a similar change

(cherry picked from commit b4886c4ece)
2025-02-10 14:52:11 +00:00
Bjoern A. Zeeb
9689622f98 rtw88/rtw89: add module_param to enable/disable HT/VHT and EHT
In order to better test HT and VHT support with LinuxKPI add (tunable)
options disabled by default to on-demand enable HT/VHT
and for rtw89 also EHT.

It is expected that we will remove this FreeBSD-specific code again in
the future.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 7a5b55e3b4)
2025-02-10 14:52:11 +00:00
Bjoern A. Zeeb
e6698f0614 rtw89: update Realtek's rtw89 driver.
This adds support for the Realtek 8922AE PCI
wireless network (Wi-Fi 7) adapter.

This version is based on
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
98f7e32f20d28ec452afb208f9cffc08448a2652 ( tag: v6.11 ).

Sponsored by:   The FreeBSD Foundation

(cherry picked from commit 6d67aabd63)
2025-02-10 14:52:07 +00:00
Bjoern A. Zeeb
3ed00f3920 LinuxKPI based WiFi drivers: scripts to extract fwget(8) and port details
Add a "zzz_fw_ports_fwget.sh" script to each LinuxKPI based wireless
driver which in essential are all the same and in detail all different.
They extract information for fwget(8), wifi-firmware-* ports, man pages
and for iwlwififw also for the wiki.

Sponsored by:	The FreeBSD Foundation
Suggested by:	imp (to have automation in D44918)

(cherry picked from commit 96190b4fef)
2024-10-31 14:33:56 +00:00
Bjoern A. Zeeb
9bb9bfc769 rtw89: add missing bsddriver.name assignments for two chipsets
On FreeBSDs we locally set bsddriver.name in struct pci_driver to have
the same name for all chipsets.  This helps with, e.g., device
enumeration.  For two chipsets the manual entry was missing.

Sponsored by:	The FreeBSD Foundation

(cherry picked from commit ce15215bef)
2024-10-16 21:46:27 +00:00
Bjoern A. Zeeb
7e72ea8cd1 ath10k/rtw89: make compile again after LinuxKPI changes
Both drivers are not yet attached to the build so this change is
for people currently trying them out.

In 96ab16ebab the sys/rman.h include
was removed.  In various wireless drivers we prefer to directly use
bus_dma functions rather than io* LinuxKPI once.  In order to cast
the pointer we need sys/rman.h back for our native 'struct resource'
in their pci.c implementations.
Long-term we should consider providing some lkpi_-FreeBSD-specific
wrapper functions to avoid this problem.

MFC after:	3 days

(cherry picked from commit c8e7f78a3d)
2024-02-18 16:41:46 +00:00
Bjoern A. Zeeb
fcc737d59e rtw89: improve debugging and fix a sleep issue
Improve log messages to be more helpful in error cases.
Change one LinuxKPI sleep function as we cannot call the original
one from a context we cannot sleep.
Both cases were hit during testing.

MFC after:	3 days

(cherry picked from commit 118d0ff54d)
2024-02-18 16:41:34 +00:00
Bjoern A. Zeeb
e2340276fc rtw89: update driver from upstream
This is a set of updates of the rtw89 driver based on wireless-testing
(wt-2023-05-11) 711dca0ca3d77414f8f346e564e9c8640147f40d (after v6.4-rc1).
(wt-2023-06-09) 7bd20e011626ccc3ad53e57873452b1716fcfaaa (after v6.4-rc5).
(wt-2023-07-24) 62e409149b62a285e89018e49b2e115757fb9022 (after v6.5-rc3).
(wt-2023-08-06) 2a220a15be657a24868368892e3e2caba2115283 (after v6.5-rc4).
(wt-2023-08-13) 81e147b1317ee7cde8b624ee8c0501b470d7e91c (after v6.5-rc5).

MFC after:      20 days
2023-08-21 01:35:29 +00:00
Bjoern A. Zeeb
f621b087c0 iwlwifi: rtw88: rtw89: fix gcc warnings
Fix -Wno-format and unused variables warnings with gcc by adopting
(to|the) FreeBSD-specific code.

Reported by:	jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Reviewed by:	jhb
Differential Revision: https://reviews.freebsd.org/D39673
2023-04-19 12:21:40 +00:00
Bjoern A. Zeeb
700acdc7b5 rtw89: fix -Wunused-but-set-variable
Fix a -Wunused-but-set-variable warning by adding the field to the
debug logging as is done for other versions handler functions.

MFC after:	3 days
2023-03-23 00:29:38 +00:00
Bjoern A. Zeeb
23c73dbae7 LinuxKPI: iwlwifi: rtw88: rtw89: remove budget argument from netif_napi_add()
In preparation for future updates remove the budget argument from the
netif_napi_add() in drivers and update LinuxKPI to reflect that it is
gone and only set it internally.  This required changes to the currently
committed wireless drivers based on LinuxKPI (iwlwifi, rtw88, rtw89).

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
2022-11-28 17:30:40 +00:00
Bjoern A. Zeeb
1a2b55732f lindebugfs,rtw88,rtw89: correct module dependencies
In f697b9432d the name of the PSEUDOFS
was changed from debugsfs to lindebugfs but the in-tree consumers
were not updated now leaving the drivers not loading if compiled
with debugfs support due to missing dependencies.

MFC after:		3 days
X-MFC-with-after:	f697b9432d
2022-09-25 21:41:22 +00:00
Bjoern A. Zeeb
8e93258f26 rtw89: import Realtek's rtw89 driver
Import rtw89 based on wireless-testing at (tag: wt-2022-09-02)
78667a29c116c6b186a37e28cd8dd7fa9923aee8 with adjustments for FreeBSD.

For the moment this will stay disconnected from the build until the
last bits are flushed out, but this will help people with a card to
do testing and possibly help improving.

Given the lack of full license texts on non-local files this is
imported under the draft policy for handling SPDX files (D29226). [1]

Approved by:	core.11 (imp) [1] [2022-03-27]
MFC after:	6 weeks
2022-09-09 16:32:17 +00:00