Re: [PATCH v7 1/3] irqchip/gic-v3-its: add ability to save/restore ITS state
From: Mark Rutland <mark.rutland@arm.com>
Date: 2018-03-01 11:41:51
Also in:
linux-pm, lkml
From: Mark Rutland <mark.rutland@arm.com>
Date: 2018-03-01 11:41:51
Also in:
linux-pm, lkml
On Wed, Feb 28, 2018 at 09:48:18PM -0800, Derek Basehore wrote:
Some platforms power off GIC logic in suspend, so we need to save/restore state. The distributor and redistributor registers need to be handled in platform code due to access permissions on those registers, but the ITS registers can be restored in the kernel. Signed-off-by: Derek Basehore <redacted>
How much state do we have to save/restore? Given we can apparently read all this state, couldn't we *always* save the state, then upon resume detect if the state has been lost, restoring it if so? That way, we don't need a property in FW tables for DT or ACPI. [...]
@@ -3261,6 +3363,9 @@ static int __init its_probe_one(struct resource *res, ctlr |= GITS_CTLR_ImDe; writel_relaxed(ctlr, its->base + GITS_CTLR); + if (fwnode_property_present(handle, "reset-on-suspend")) + its->flags |= ITS_FLAGS_SAVE_SUSPEND_STATE;
Does this allow this property on an ACPI system? If we need this on ACPI, we need a spec update to handle this properly, and shouldn't use device properties like this. Thanks, Mark.