52 lines
1.0 KiB
C
52 lines
1.0 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* AMD Platform Management Framework Driver Quirks
|
|
*
|
|
* Copyright (c) 2024, Advanced Micro Devices, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* Author: Mario Limonciello <mario.limonciello@amd.com>
|
|
*/
|
|
|
|
#include <linux/dmi.h>
|
|
|
|
#include "pmf.h"
|
|
|
|
struct quirk_entry {
|
|
u32 supported_func;
|
|
};
|
|
|
|
static struct quirk_entry quirk_no_sps_bug = {
|
|
.supported_func = 0x4003,
|
|
};
|
|
|
|
static const struct dmi_system_id fwbug_list[] = {
|
|
{
|
|
.ident = "ROG Zephyrus G14",
|
|
.matches = {
|
|
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
|
|
DMI_MATCH(DMI_PRODUCT_NAME, "GA403UV"),
|
|
},
|
|
.driver_data = &quirk_no_sps_bug,
|
|
},
|
|
{}
|
|
};
|
|
|
|
void amd_pmf_quirks_init(struct amd_pmf_dev *dev)
|
|
{
|
|
const struct dmi_system_id *dmi_id;
|
|
struct quirk_entry *quirks;
|
|
|
|
dmi_id = dmi_first_match(fwbug_list);
|
|
if (!dmi_id)
|
|
return;
|
|
|
|
quirks = dmi_id->driver_data;
|
|
if (quirks->supported_func) {
|
|
dev->supported_func = quirks->supported_func;
|
|
pr_info("Using supported funcs quirk to avoid %s platform firmware bug\n",
|
|
dmi_id->ident);
|
|
}
|
|
}
|
|
|