soc: qcom: pil: Correct notification path in subsys_stop

Send SUBSYS_BEFORE_SHUTDOWN notification to clients before doing
graceful shutdown so that clients can do their end of housekeeping.

CRs-Fixed: 1066446
Change-Id: I77b248c51914651aea4b27d7c5a3d5d784b1e542
Signed-off-by: Puja Gupta <pujag@codeaurora.org>
This commit is contained in:
Puja Gupta 2016-09-12 17:41:07 -07:00
parent c2ab8cf0ae
commit f68a3b56e4

View file

@ -730,6 +730,7 @@ static void subsys_stop(struct subsys_device *subsys)
{ {
const char *name = subsys->desc->name; const char *name = subsys->desc->name;
notify_each_subsys_device(&subsys, 1, SUBSYS_BEFORE_SHUTDOWN, NULL);
if (!of_property_read_bool(subsys->desc->dev->of_node, if (!of_property_read_bool(subsys->desc->dev->of_node,
"qcom,pil-force-shutdown")) { "qcom,pil-force-shutdown")) {
subsys_set_state(subsys, SUBSYS_OFFLINING); subsys_set_state(subsys, SUBSYS_OFFLINING);
@ -739,7 +740,6 @@ static void subsys_stop(struct subsys_device *subsys)
pr_debug("Graceful shutdown failed for %s\n", name); pr_debug("Graceful shutdown failed for %s\n", name);
} }
notify_each_subsys_device(&subsys, 1, SUBSYS_BEFORE_SHUTDOWN, NULL);
subsys->desc->shutdown(subsys->desc, false); subsys->desc->shutdown(subsys->desc, false);
subsys_set_state(subsys, SUBSYS_OFFLINE); subsys_set_state(subsys, SUBSYS_OFFLINE);
disable_all_irqs(subsys); disable_all_irqs(subsys);