diff options
author | Jens Axboe <axboe@kernel.dk> | 2021-06-24 09:39:02 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-06-24 09:39:02 -0600 |
commit | 5ed9b357024dc43f75099f597187df05bcd5173c (patch) | |
tree | bb00a430c356595c56cf7a86b2fc12008102310a /drivers/acpi/device_pm.c | |
parent | 2b9ac22b12a266eb4fec246a07b504dd4983b16b (diff) | |
parent | 3c3ee16532c1be92350a2a88bd19283b7bdf32e9 (diff) | |
download | linux-5ed9b357024dc43f75099f597187df05bcd5173c.tar.gz linux-5ed9b357024dc43f75099f597187df05bcd5173c.tar.bz2 linux-5ed9b357024dc43f75099f597187df05bcd5173c.zip |
Merge tag 'nvme-5.14-2021-06-22' of git://git.infradead.org/nvme into for-5.14/drivers
Pull NVMe updates from Christoph
"nvme updates for Linux 5.14:
- move the ACPI StorageD3 code to drivers/acpi/ and add quirks for
certain AMD CPUs (Mario Limonciello)
- zoned device support for nvmet (Chaitanya Kulkarni)
- fix the rules for changing the serial number in nvmet (Noam Gottlieb)
- various small fixes and cleanups (Dan Carpenter, JK Kim,
Chaitanya Kulkarni, Hannes Reinecke, Wesley Sheng, Geert Uytterhoeven,
Daniel Wagner)"
* tag 'nvme-5.14-2021-06-22' of git://git.infradead.org/nvme: (38 commits)
nvmet: use NVMET_MAX_NAMESPACES to set nn value
nvme.h: add missing nvme_lba_range_type endianness annotations
nvme: remove zeroout memset call for struct
nvme-pci: remove zeroout memset call for struct
nvmet: remove zeroout memset call for struct
nvmet: add ZBD over ZNS backend support
nvmet: add Command Set Identifier support
nvmet: add nvmet_req_bio put helper for backends
nvmet: add req cns error complete helper
block: export blk_next_bio()
nvmet: remove local variable
nvmet: use nvme status value directly
nvmet: use u32 type for the local variable nsid
nvmet: use u32 for nvmet_subsys max_nsid
nvmet: use req->cmd directly in file-ns fast path
nvmet: use req->cmd directly in bdev-ns fast path
nvmet: make ver stable once connection established
nvmet: allow mn change if subsys not discovered
nvmet: make sn stable once connection was established
nvmet: change sn size and check validity
...
Diffstat (limited to 'drivers/acpi/device_pm.c')
-rw-r--r-- | drivers/acpi/device_pm.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c index d260bc1f3e6e..6dd9bd64903e 100644 --- a/drivers/acpi/device_pm.c +++ b/drivers/acpi/device_pm.c @@ -1340,4 +1340,36 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on) return 1; } EXPORT_SYMBOL_GPL(acpi_dev_pm_attach); + +/** + * acpi_storage_d3 - Check if D3 should be used in the suspend path + * @dev: Device to check + * + * Return %true if the platform firmware wants @dev to be programmed + * into D3hot or D3cold (if supported) in the suspend path, or %false + * when there is no specific preference. On some platforms, if this + * hint is ignored, @dev may remain unresponsive after suspending the + * platform as a whole. + * + * Although the property has storage in the name it actually is + * applied to the PCIe slot and plugging in a non-storage device the + * same platform restrictions will likely apply. + */ +bool acpi_storage_d3(struct device *dev) +{ + struct acpi_device *adev = ACPI_COMPANION(dev); + u8 val; + + if (force_storage_d3()) + return true; + + if (!adev) + return false; + if (fwnode_property_read_u8(acpi_fwnode_handle(adev), "StorageD3Enable", + &val)) + return false; + return val == 1; +} +EXPORT_SYMBOL_GPL(acpi_storage_d3); + #endif /* CONFIG_PM */ |