Search Linux Wireless

RE: [PATCH V8 2/9] drivers core: add ACPI based WBRF mechanism introduced by AMD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Official Use Only - General]



> -----Original Message-----
> From: Simon Horman <horms@xxxxxxxxxx>
> Sent: Friday, August 11, 2023 5:38 PM
> To: Quan, Evan <Evan.Quan@xxxxxxx>
> Cc: rafael@xxxxxxxxxx; lenb@xxxxxxxxxx; Deucher, Alexander
> <Alexander.Deucher@xxxxxxx>; Koenig, Christian
> <Christian.Koenig@xxxxxxx>; Pan, Xinhui <Xinhui.Pan@xxxxxxx>;
> airlied@xxxxxxxxx; daniel@xxxxxxxx; johannes@xxxxxxxxxxxxxxxx;
> davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx;
> pabeni@xxxxxxxxxx; Limonciello, Mario <Mario.Limonciello@xxxxxxx>;
> mdaenzer@xxxxxxxxxx; maarten.lankhorst@xxxxxxxxxxxxxxx;
> tzimmermann@xxxxxxx; hdegoede@xxxxxxxxxx; jingyuwang_vip@xxxxxxx;
> Lazar, Lijo <Lijo.Lazar@xxxxxxx>; jim.cromie@xxxxxxxxx;
> bellosilicio@xxxxxxxxx; andrealmeid@xxxxxxxxxx; trix@xxxxxxxxxx;
> jsg@xxxxxxxxx; arnd@xxxxxxxx; andrew@xxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; amd-
> gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-
> wireless@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx
> 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@xxxxxxx>
> > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> > Co-developed-by: Evan Quan <evan.quan@xxxxxxx>
> > Signed-off-by: Evan Quan <evan.quan@xxxxxxx>
> 
> ...
> 
> > 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;
> > +}
> 
> ...



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux