Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9da34892 authored by Tyrel Datwyler's avatar Tyrel Datwyler Committed by Benjamin Herrenschmidt
Browse files

powerpc/pseries: Expose in kernel device tree update to drmgr



Traditionally it has been drmgr's responsibilty to update the device tree
through the /proc/ppc64/ofdt interface after a suspend/resume operation.
This patchset however has modified suspend/resume ops to preform an update
entirely in the kernel during the resume. Therefore, a mechanism is required
to expose that information to drmgr.

This patch adds a show function to the "hibernate" attribute that returns 1
if the kernel performs a device tree update after the resume and 0 otherwise.
This allows newer versions of drmgr to avoid doing a second unnecessary
device tree update.

Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 6b36ba84
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -192,7 +192,30 @@ static ssize_t store_hibernate(struct device *dev,
	return rc;
}

static DEVICE_ATTR(hibernate, S_IWUSR, NULL, store_hibernate);
#define USER_DT_UPDATE	0
#define KERN_DT_UPDATE	1

/**
 * show_hibernate - Report device tree update responsibilty
 * @dev:		subsys root device
 * @attr:		device attribute struct
 * @buf:		buffer
 *
 * Report whether a device tree update is performed by the kernel after a
 * resume, or if drmgr must coordinate the update from user space.
 *
 * Return value:
 *	0 if drmgr is to initiate update, and 1 otherwise
 **/
static ssize_t show_hibernate(struct device *dev,
			      struct device_attribute *attr,
			      char *buf)
{
	return sprintf(buf, "%d\n", KERN_DT_UPDATE);
}

static DEVICE_ATTR(hibernate, S_IWUSR | S_IRUGO,
		   show_hibernate, store_hibernate);

static struct bus_type suspend_subsys = {
	.name = "power",