[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DM6PR12MB26197EFD7E9F1ACC6F52C40AE417A@DM6PR12MB2619.namprd12.prod.outlook.com>
Date: Mon, 14 Aug 2023 07:46:10 +0000
From: "Quan, Evan" <Evan.Quan@....com>
To: Simon Horman <horms@...nel.org>
CC: "rafael@...nel.org" <rafael@...nel.org>,
"lenb@...nel.org" <lenb@...nel.org>,
"Deucher, Alexander" <Alexander.Deucher@....com>,
"Koenig, Christian" <Christian.Koenig@....com>,
"Pan, Xinhui" <Xinhui.Pan@....com>,
"airlied@...il.com" <airlied@...il.com>,
"daniel@...ll.ch" <daniel@...ll.ch>,
"johannes@...solutions.net" <johannes@...solutions.net>,
"davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>,
"kuba@...nel.org" <kuba@...nel.org>,
"pabeni@...hat.com" <pabeni@...hat.com>,
"Limonciello, Mario" <Mario.Limonciello@....com>,
"mdaenzer@...hat.com" <mdaenzer@...hat.com>,
"maarten.lankhorst@...ux.intel.com"
<maarten.lankhorst@...ux.intel.com>,
"tzimmermann@...e.de" <tzimmermann@...e.de>,
"hdegoede@...hat.com" <hdegoede@...hat.com>,
"jingyuwang_vip@....com" <jingyuwang_vip@....com>,
"Lazar, Lijo" <Lijo.Lazar@....com>,
"jim.cromie@...il.com" <jim.cromie@...il.com>,
"bellosilicio@...il.com" <bellosilicio@...il.com>,
"andrealmeid@...lia.com" <andrealmeid@...lia.com>,
"trix@...hat.com" <trix@...hat.com>,
"jsg@....id.au" <jsg@....id.au>, "arnd@...db.de" <arnd@...db.de>,
"andrew@...n.ch" <andrew@...n.ch>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
"amd-gfx@...ts.freedesktop.org" <amd-gfx@...ts.freedesktop.org>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"linux-wireless@...r.kernel.org" <linux-wireless@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: [PATCH V8 2/9] drivers core: add ACPI based WBRF mechanism
introduced by AMD
[AMD Official Use Only - General]
> -----Original Message-----
> From: Simon Horman <horms@...nel.org>
> Sent: Friday, August 11, 2023 5:38 PM
> To: Quan, Evan <Evan.Quan@....com>
> Cc: rafael@...nel.org; lenb@...nel.org; Deucher, Alexander
> <Alexander.Deucher@....com>; Koenig, Christian
> <Christian.Koenig@....com>; Pan, Xinhui <Xinhui.Pan@....com>;
> airlied@...il.com; daniel@...ll.ch; johannes@...solutions.net;
> davem@...emloft.net; edumazet@...gle.com; kuba@...nel.org;
> pabeni@...hat.com; Limonciello, Mario <Mario.Limonciello@....com>;
> mdaenzer@...hat.com; maarten.lankhorst@...ux.intel.com;
> tzimmermann@...e.de; hdegoede@...hat.com; jingyuwang_vip@....com;
> Lazar, Lijo <Lijo.Lazar@....com>; jim.cromie@...il.com;
> bellosilicio@...il.com; andrealmeid@...lia.com; trix@...hat.com;
> jsg@....id.au; arnd@...db.de; andrew@...n.ch; 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: [PATCH V8 2/9] drivers core: add ACPI based WBRF mechanism
> introduced by AMD
>
> On Thu, Aug 10, 2023 at 03:37:56PM +0800, Evan Quan wrote:
> > AMD has introduced an ACPI based mechanism to support WBRF for some
> > platforms with AMD dGPU + WLAN. This needs support from BIOS equipped
> > with necessary AML implementations and dGPU firmwares.
> >
> > For those systems without the ACPI mechanism and developing solutions,
> > user can use/fall-back the generic WBRF solution for diagnosing potential
> > interference issues.
> >
> > And for the platform which does not equip with the necessary AMD ACPI
> > implementations but with CONFIG_WBRF_AMD_ACPI built as 'y', it will
> > fall back to generic WBRF solution if the `wbrf` is set as "on".
> >
> > Co-developed-by: Mario Limonciello <mario.limonciello@....com>
> > Signed-off-by: Mario Limonciello <mario.limonciello@....com>
> > Co-developed-by: Evan Quan <evan.quan@....com>
> > Signed-off-by: Evan Quan <evan.quan@....com>
>
> ...
>
> > diff --git a/drivers/acpi/amd_wbrf.c b/drivers/acpi/amd_wbrf.c
>
> ...
>
> > +static bool check_acpi_wbrf(acpi_handle handle, u64 rev, u64 funcs)
> > +{
> > + int i;
> > + u64 mask = 0;
> > + union acpi_object *obj;
> > +
> > + if (funcs == 0)
> > + return false;
> > +
> > + obj = acpi_evaluate_wbrf(handle, rev, 0);
> > + if (!obj)
> > + return false;
> > +
> > + if (obj->type != ACPI_TYPE_BUFFER)
> > + return false;
> > +
> > + /*
> > + * Bit vector providing supported functions information.
> > + * Each bit marks support for one specific function of the WBRF
> method.
> > + */
> > + for (i = 0; i < obj->buffer.length && i < 8; i++)
> > + mask |= (((u64)obj->buffer.pointer[i]) << (i * 8));
> > +
> > + ACPI_FREE(obj);
> > +
> > + if ((mask & BIT(WBRF_ENABLED)) &&
> > + (mask & funcs) == funcs)
>
> Hi Evan,
>
> a minor nit from my side: the indentation of the line above seems odd.
Thanks. Will update this.
Evan
>
> if ((mask & BIT(WBRF_ENABLED)) &&
> (mask & funcs) == funcs)
>
> > + return true;
> > +
> > + return false;
> > +}
>
> ...
Powered by blists - more mailing lists