mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 06:41:39 -04:00
ASoC: Intel: avs: Check maximum valid CPUID leaf
The Intel AVS driver queries CPUID(0x15) before checking if the CPUID leaf
is available. Check the maximum-valid CPU standard leaf beforehand.
Use the CPUID_LEAF_TSC macro instead of the custom local one for the
CPUID(0x15) leaf number.
Fixes: cbe37a4d2b ("ASoC: Intel: avs: Configure basefw on TGL-based platforms")
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20260327021645.555257-2-darwi@linutronix.de
This commit is contained in:
committed by
Borislav Petkov (AMD)
parent
584d752b8a
commit
93a1f0e613
@@ -11,8 +11,6 @@
|
||||
#include "debug.h"
|
||||
#include "messages.h"
|
||||
|
||||
#define CPUID_TSC_LEAF 0x15
|
||||
|
||||
static int avs_tgl_dsp_core_power(struct avs_dev *adev, u32 core_mask, bool power)
|
||||
{
|
||||
core_mask &= AVS_MAIN_CORE_MASK;
|
||||
@@ -49,7 +47,11 @@ static int avs_tgl_config_basefw(struct avs_dev *adev)
|
||||
unsigned int ecx;
|
||||
|
||||
#include <asm/cpuid/api.h>
|
||||
ecx = cpuid_ecx(CPUID_TSC_LEAF);
|
||||
|
||||
if (boot_cpu_data.cpuid_level < CPUID_LEAF_TSC)
|
||||
goto no_cpuid;
|
||||
|
||||
ecx = cpuid_ecx(CPUID_LEAF_TSC);
|
||||
if (ecx) {
|
||||
ret = avs_ipc_set_fw_config(adev, 1, AVS_FW_CFG_XTAL_FREQ_HZ, sizeof(ecx), &ecx);
|
||||
if (ret)
|
||||
@@ -57,6 +59,7 @@ static int avs_tgl_config_basefw(struct avs_dev *adev)
|
||||
}
|
||||
#endif
|
||||
|
||||
no_cpuid:
|
||||
hwid.device = pci->device;
|
||||
hwid.subsystem = pci->subsystem_vendor | (pci->subsystem_device << 16);
|
||||
hwid.revision = pci->revision;
|
||||
|
||||
Reference in New Issue
Block a user