Skip to content

Commit ed289b9

Browse files
committed
Merge tag 'platform-drivers-x86-amd-wbrf-v6.8-1' into review-hans
Immutable branch between pdx86 amd wbrf branch and wifi / amdgpu due for the v6.8 merge window platform-drivers-x86-amd-wbrf-v6.8-1: v6.7-rc1 + AMD WBRF support for merging into the wifi subsys and amdgpu driver for 6.8.
2 parents 704af3a + 58e82a6 commit ed289b9

File tree

6 files changed

+502
-0
lines changed

6 files changed

+502
-0
lines changed

Documentation/driver-api/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ available subsections can be seen below.
115115
hte/index
116116
wmi
117117
dpll
118+
wbrf
118119

119120
.. only:: subproject and html
120121

Documentation/driver-api/wbrf.rst

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
.. SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
=================================
4+
WBRF - Wifi Band RFI Mitigations
5+
=================================
6+
7+
Due to electrical and mechanical constraints in certain platform designs
8+
there may be likely interference of relatively high-powered harmonics of
9+
the GPU memory clocks with local radio module frequency bands used by
10+
certain Wifi bands.
11+
12+
To mitigate possible RFI interference producers can advertise the
13+
frequencies in use and consumers can use this information to avoid using
14+
these frequencies for sensitive features.
15+
16+
When a platform is known to have this issue with any contained devices,
17+
the platform designer will advertise the availability of this feature via
18+
ACPI devices with a device specific method (_DSM).
19+
* Producers with this _DSM will be able to advertise the frequencies in use.
20+
* Consumers with this _DSM will be able to register for notifications of
21+
frequencies in use.
22+
23+
Some general terms
24+
==================
25+
26+
Producer: such component who can produce high-powered radio frequency
27+
Consumer: such component who can adjust its in-use frequency in
28+
response to the radio frequencies of other components to mitigate the
29+
possible RFI.
30+
31+
To make the mechanism function, those producers should notify active use
32+
of their particular frequencies so that other consumers can make relative
33+
internal adjustments as necessary to avoid this resonance.
34+
35+
ACPI interface
36+
==============
37+
38+
Although initially used by for wifi + dGPU use cases, the ACPI interface
39+
can be scaled to any type of device that a platform designer discovers
40+
can cause interference.
41+
42+
The GUID used for the _DSM is 7B7656CF-DC3D-4C1C-83E9-66E721DE3070.
43+
44+
3 functions are available in this _DSM:
45+
46+
* 0: discover # of functions available
47+
* 1: record RF bands in use
48+
* 2: retrieve RF bands in use
49+
50+
Driver programming interface
51+
============================
52+
53+
.. kernel-doc:: drivers/platform/x86/amd/wbrf.c
54+
55+
Sample Usage
56+
=============
57+
58+
The expected flow for the producers:
59+
1. During probe, call `acpi_amd_wbrf_supported_producer` to check if WBRF
60+
can be enabled for the device.
61+
2. On using some frequency band, call `acpi_amd_wbrf_add_remove` with 'add'
62+
param to get other consumers properly notified.
63+
3. Or on stopping using some frequency band, call
64+
`acpi_amd_wbrf_add_remove` with 'remove' param to get other consumers notified.
65+
66+
The expected flow for the consumers:
67+
1. During probe, call `acpi_amd_wbrf_supported_consumer` to check if WBRF
68+
can be enabled for the device.
69+
2. Call `amd_wbrf_register_notifier` to register for notification
70+
of frequency band change(add or remove) from other producers.
71+
3. Call the `amd_wbrf_retrieve_freq_band` initally to retrieve
72+
current active frequency bands considering some producers may broadcast
73+
such information before the consumer is up.
74+
4. On receiving a notification for frequency band change, run
75+
`amd_wbrf_retrieve_freq_band` again to retrieve the latest
76+
active frequency bands.
77+
5. During driver cleanup, call `amd_wbrf_unregister_notifier` to
78+
unregister the notifier.

drivers/platform/x86/amd/Kconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,17 @@ config AMD_HSMP
1818

1919
If you choose to compile this driver as a module the module will be
2020
called amd_hsmp.
21+
22+
config AMD_WBRF
23+
bool "AMD Wifi RF Band mitigations (WBRF)"
24+
depends on ACPI
25+
help
26+
WBRF(Wifi Band RFI mitigation) mechanism allows Wifi drivers
27+
to notify the frequencies they are using so that other hardware
28+
can be reconfigured to avoid harmonic conflicts.
29+
30+
AMD provides an ACPI based mechanism to support WBRF on platform with
31+
appropriate underlying support.
32+
33+
This mechanism will only be activated on platforms that advertise a
34+
need for it.

drivers/platform/x86/amd/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ obj-$(CONFIG_AMD_PMC) += pmc/
88
amd_hsmp-y := hsmp.o
99
obj-$(CONFIG_AMD_HSMP) += amd_hsmp.o
1010
obj-$(CONFIG_AMD_PMF) += pmf/
11+
obj-$(CONFIG_AMD_WBRF) += wbrf.o

0 commit comments

Comments
 (0)