RE: [V10 1/8] ACPI: Add support for AMD ACPI based Wifi band RFI mitigation feature
From: Quan, Evan <hidden>
Date: 2023-08-28 02:13:51
Also in:
amd-gfx, dri-devel, linux-acpi, lkml, netdev
[AMD Official Use Only - General]
-----Original Message----- From: Simon Horman <horms@kernel.org> Sent: Sunday, August 27, 2023 11:43 PM To: Quan, Evan <redacted> Cc: lenb@kernel.org; johannes@sipsolutions.net; davem@davemloft.net; edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; Deucher, Alexander [off-list ref]; rafael@kernel.org; Lazar, Lijo [off-list ref]; Limonciello, Mario [off-list ref]; linux-kernel@vger.kernel.org; linux-acpi@vger.kernel.org; amd- gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux- wireless@vger.kernel.org; netdev@vger.kernel.org Subject: Re: [V10 1/8] ACPI: Add support for AMD ACPI based Wifi band RFI mitigation feature On Fri, Aug 25, 2023 at 04:38:39PM +0800, Evan Quan wrote:quoted
Due to electrical and mechanical constraints in certain platform designs there may be likely interference of relatively high-powered harmonics of the (G-)DDR memory clocks with local radio module frequency bands used by Wifi 6/6e/7. To mitigate this, AMD has introduced a mechanism that devices can use to notify active use of particular frequencies so that other devices can make relative internal adjustments as necessary to avoid this resonance. Signed-off-by: Evan Quan <redacted>...quoted
diff --git a/drivers/acpi/amd_wbrf.c b/drivers/acpi/amd_wbrf.c...quoted
+/** + * acpi_amd_wbrf_add_exclusion - broadcast the frequency band thedevicequoted
+ * is using + * + * @dev: device pointer + * @in: input structure containing the frequency band the device is +using + * + * Broadcast to other consumers the frequency band the device starts + * to use. Underneath the surface the information is cached into an + * internal buffer first. Then a notification is sent to all those + * registered consumers. So then they can retrieve that buffer to + * know the latest active frequency bands. The benifit with such +designnit: ./checkpatch.pl --codespell suggests benifit -> benefit.
Thanks, will fix that. Evan
quoted
+ * is for those consumers which have not been registered yet, they +can + * still have a chance to retrieve such information later. + */ +int acpi_amd_wbrf_add_exclusion(struct device *dev, + struct wbrf_ranges_in_out *in) +{ + struct acpi_device *adev = ACPI_COMPANION(dev); + int ret; + + if (!adev) + return -ENODEV; + + ret = wbrf_record(adev, WBRF_RECORD_ADD, in); + if (ret) + return ret; + + blocking_notifier_call_chain(&wbrf_chain_head, + WBRF_CHANGED, + NULL); + + return 0; +} +EXPORT_SYMBOL_GPL(acpi_amd_wbrf_add_exclusion);...