diff options
Diffstat (limited to 'drivers/acpi/x86/utils.c')
| -rw-r--r-- | drivers/acpi/x86/utils.c | 24 | 
1 files changed, 10 insertions, 14 deletions
diff --git a/drivers/acpi/x86/utils.c b/drivers/acpi/x86/utils.c index 7dca73417e2b..2fe0934dcd64 100644 --- a/drivers/acpi/x86/utils.c +++ b/drivers/acpi/x86/utils.c @@ -206,16 +206,16 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s  }  /* - * AMD systems from Renoir and Lucienne *require* that the NVME controller + * AMD systems from Renoir onwards *require* that the NVME controller   * is put into D3 over a Modern Standby / suspend-to-idle cycle.   *   * This is "typically" accomplished using the `StorageD3Enable`   * property in the _DSD that is checked via the `acpi_storage_d3` function - * but this property was introduced after many of these systems launched - * and most OEM systems don't have it in their BIOS. + * but some OEM systems still don't have it in their BIOS.   *   * The Microsoft documentation for StorageD3Enable mentioned that Windows has - * a hardcoded allowlist for D3 support, which was used for these platforms. + * a hardcoded allowlist for D3 support as well as a registry key to override + * the BIOS, which has been used for these cases.   *   * This allows quirking on Linux in a similar fashion.   * @@ -228,19 +228,15 @@ bool acpi_device_override_status(struct acpi_device *adev, unsigned long long *s   *    https://bugzilla.kernel.org/show_bug.cgi?id=216773   *    https://bugzilla.kernel.org/show_bug.cgi?id=217003   * 2) On at least one HP system StorageD3Enable is missing on the second NVME -      disk in the system. + *    disk in the system. + * 3) On at least one HP Rembrandt system StorageD3Enable is missing on the only + *    NVME device.   */ -static const struct x86_cpu_id storage_d3_cpu_ids[] = { -	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 24, NULL),  /* Picasso */ -	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 96, NULL),	/* Renoir */ -	X86_MATCH_VENDOR_FAM_MODEL(AMD, 23, 104, NULL),	/* Lucienne */ -	X86_MATCH_VENDOR_FAM_MODEL(AMD, 25, 80, NULL),	/* Cezanne */ -	{} -}; -  bool force_storage_d3(void)  { -	return x86_match_cpu(storage_d3_cpu_ids); +	if (!cpu_feature_enabled(X86_FEATURE_ZEN)) +		return false; +	return acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0;  }  /*  | 
