[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230827154312.GT3523530@kernel.org>
Date: Sun, 27 Aug 2023 17:43:12 +0200
From: Simon Horman <horms@...nel.org>
To: Evan Quan <evan.quan@....com>
Cc: lenb@...nel.org, johannes@...solutions.net, davem@...emloft.net,
edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com,
alexander.deucher@....com, rafael@...nel.org, Lijo.Lazar@....com,
mario.limonciello@....com, linux-kernel@...r.kernel.org,
linux-acpi@...r.kernel.org, amd-gfx@...ts.freedesktop.org,
dri-devel@...ts.freedesktop.org, linux-wireless@...r.kernel.org,
netdev@...r.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:
> 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 <evan.quan@....com>
...
> diff --git a/drivers/acpi/amd_wbrf.c b/drivers/acpi/amd_wbrf.c
...
> +/**
> + * acpi_amd_wbrf_add_exclusion - broadcast the frequency band the device
> + * 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 design
nit: ./checkpatch.pl --codespell suggests benifit -> benefit.
> + * 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);
...
Powered by blists - more mailing lists