RE: [PATCH V8 6/9] drm/amd/pm: setup the framework to support Wifi RFI mitigation feature
From: Quan, Evan <hidden>
Date: 2023-08-14 07:48:33
Also in:
amd-gfx, dri-devel, linux-acpi, linux-wireless, lkml
[AMD Official Use Only - General]
-----Original Message----- From: Simon Horman <horms@kernel.org> Sent: Friday, August 11, 2023 5:35 PM To: Quan, Evan <redacted> Cc: rafael@kernel.org; lenb@kernel.org; Deucher, Alexander [off-list ref]; Koenig, Christian [off-list ref]; Pan, Xinhui [off-list ref]; airlied@gmail.com; daniel@ffwll.ch; johannes@sipsolutions.net; davem@davemloft.net; edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; Limonciello, Mario [off-list ref]; mdaenzer@redhat.com; maarten.lankhorst@linux.intel.com; tzimmermann@suse.de; hdegoede@redhat.com; jingyuwang_vip@163.com; Lazar, Lijo [off-list ref]; jim.cromie@gmail.com; bellosilicio@gmail.com; andrealmeid@igalia.com; trix@redhat.com; jsg@jsg.id.au; arnd@arndb.de; andrew@lunn.ch; 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: [PATCH V8 6/9] drm/amd/pm: setup the framework to support Wifi RFI mitigation feature On Thu, Aug 10, 2023 at 03:38:00PM +0800, Evan Quan wrote:quoted
With WBRF feature supported, as a driver responding to the frequencies, amdgpu driver is able to do shadow pstate switching to mitigate possible interference(between its (G-)DDR memory clocks and local radio module frequency bands used by Wifi 6/6e/7). Signed-off-by: Evan Quan <redacted> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>...quoted
+/** + * smu_wbrf_event_handler - handle notify events + * + * @nb: notifier block + * @action: event type + * @data: event dataHi Evan, a minor nit from my side: although it is documented here, smu_wbrf_event_handler has no @data parameter, while it does have an undocumented _arg parameter.
Thanks for pointing this out. I will fix this. Evan
quoted
+ * + * Calls relevant amdgpu function in response to wbrf event + * notification from kernel. + */ +static int smu_wbrf_event_handler(struct notifier_block *nb, + unsigned long action, void *_arg) +{ + struct smu_context *smu = container_of(nb, struct smu_context, + wbrf_notifier); + + switch (action) { + case WBRF_CHANGED: + smu_wbrf_handle_exclusion_ranges(smu); + break; + default: + return NOTIFY_DONE; + }; + + return NOTIFY_OK; +}...