// 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 */ #include #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, }, { .ident = "ROG Ally X", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), DMI_MATCH(DMI_PRODUCT_NAME, "RC72LA"), }, .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); } }