Documentation/driver-api/wbrf.rst
.. SPDX-License-Identifier: GPL-2.0-or-later
Due to electrical and mechanical constraints in certain platform designs there may be likely interference of relatively high-powered harmonics of the GPU memory clocks with local radio module frequency bands used by certain Wifi bands.
To mitigate possible RFI interference producers can advertise the frequencies in use and consumers can use this information to avoid using these frequencies for sensitive features.
When a platform is known to have this issue with any contained devices, the platform designer will advertise the availability of this feature via ACPI devices with a device specific method (_DSM).
Producer: such component who can produce high-powered radio frequency Consumer: such component who can adjust its in-use frequency in response to the radio frequencies of other components to mitigate the possible RFI.
To make the mechanism function, those producers should notify active use of their particular frequencies so that other consumers can make relative internal adjustments as necessary to avoid this resonance.
Although initially used by for wifi + dGPU use cases, the ACPI interface can be scaled to any type of device that a platform designer discovers can cause interference.
The GUID used for the _DSM is 7B7656CF-DC3D-4C1C-83E9-66E721DE3070.
3 functions are available in this _DSM:
.. kernel-doc:: drivers/platform/x86/amd/wbrf.c
The expected flow for the producers:
acpi_amd_wbrf_supported_producer to check if WBRF
can be enabled for the device.acpi_amd_wbrf_add_remove with 'add'
param to get other consumers properly notified.acpi_amd_wbrf_add_remove with 'remove' param to get other consumers notified.The expected flow for the consumers:
acpi_amd_wbrf_supported_consumer to check if WBRF
can be enabled for the device.amd_wbrf_register_notifier to register for notification
of frequency band change(add or remove) from other producers.amd_wbrf_retrieve_freq_band initially to retrieve
current active frequency bands considering some producers may broadcast
such information before the consumer is up.amd_wbrf_retrieve_freq_band again to retrieve the latest
active frequency bands.amd_wbrf_unregister_notifier to
unregister the notifier.