Files
linux_media/include/linux
Dan Williams 48001ea50d PM, libnvdimm: Add runtime firmware activation support
Abstract platform specific mechanics for nvdimm firmware activation
behind a handful of generic ops. At the bus level ->activate_state()
indicates the unified state (idle, busy, armed) of all DIMMs on the bus,
and ->capability() indicates the system state expectations for activate.
At the DIMM level ->activate_state() indicates the per-DIMM state,
->activate_result() indicates the outcome of the last activation
attempt, and ->arm() attempts to transition the DIMM from 'idle' to
'armed'.

A new hibernate_quiet_exec() facility is added to support firmware
activation in an OS defined system quiesce state. It leverages the fact
that the hibernate-freeze state wants to assert that a memory
hibernation snapshot can be taken. This is in contrast to a platform
firmware defined quiesce state that may forcefully quiet the memory
controller independent of whether an individual device-driver properly
supports hibernate-freeze.

The libnvdimm sysfs interface is extended to support detection of a
firmware activate capability. The mechanism supports enumeration and
triggering of firmware activate, optionally in the
hibernate_quiet_exec() context.

[rafael: hibernate_quiet_exec() proposal]
[vishal: fix up sparse warning, grammar in Documentation/]

Cc: Pavel Machek <pavel@ucw.cz>
Cc: Ira Weiny <ira.weiny@intel.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Reported-by: kernel test robot <lkp@intel.com>
Co-developed-by: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Signed-off-by: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
2020-07-28 19:28:32 -06:00
..
2020-05-17 21:10:28 -07:00
2020-05-09 16:15:13 -06:00
2020-05-24 20:48:11 +02:00
2020-05-19 09:40:29 -06:00
2020-05-13 08:44:35 -07:00
2020-05-04 11:19:58 -07:00
2020-06-18 09:24:35 -06:00
2020-06-09 09:39:13 -07:00
2020-05-28 07:59:45 -07:00
2020-04-30 12:54:01 -07:00
2020-05-18 10:30:21 +01:00
2020-06-02 15:15:46 +01:00
2020-05-08 18:18:11 +01:00
2020-05-08 00:12:42 +02:00
2020-05-28 10:31:09 +02:00
2020-06-10 19:14:18 -07:00
2020-05-09 13:57:12 +02:00
2020-05-15 13:51:28 -07:00
2020-05-09 13:57:12 +02:00
2020-05-17 14:10:07 -06:00
2020-05-14 16:44:24 +02:00
2020-05-14 16:44:25 +02:00
2020-04-28 11:05:44 +02:00
2020-05-28 11:11:45 -07:00
2020-05-04 09:16:37 -07:00
2020-05-29 14:52:53 +02:00