From mboxrd@z Thu Jan 1 00:00:00 1970 From: joshc@codeaurora.org (Josh Cartwright) Date: Fri, 19 Sep 2014 10:19:20 -0500 Subject: [PATCH] pinctrl: qcom: use restart_notifier mechanism for ps_hold In-Reply-To: <541BA451.9010508@roeck-us.net> References: <1411079579-10172-1-git-send-email-joshc@codeaurora.org> <541B9ADA.2070107@roeck-us.net> <541BA451.9010508@roeck-us.net> Message-ID: <20140919151920.GH3749@joshc.qualcomm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, Sep 18, 2014 at 08:34:41PM -0700, Guenter Roeck wrote: > On 09/18/2014 07:54 PM, Guenter Roeck wrote: > >On 09/18/2014 03:32 PM, Josh Cartwright wrote: > >>By converting to the restart_notifier mechanism for restart, we allow > >>for other mechanisms, like the watchdog, to be used for restart in the > >>case where PS_HOLD has failed to reset the chip. > >> > >>Choose priority 128, as according to documentation, this mechanism "is > >>sufficient to restart the entire system". > >> > >>Cc: Pramod Gurav > >>Cc: Guenter Roeck > >>Signed-off-by: Josh Cartwright > >>--- [..] > >> int msm_pinctrl_probe(struct platform_device *pdev, > >> const struct msm_pinctrl_soc_data *soc_data) > >>@@ -943,6 +948,15 @@ int msm_pinctrl_remove(struct platform_device *pdev) > >> > >> pinctrl_unregister(pctrl->pctrl); > >> > >>+ if (pctrl->restart_nb.notifier_call) { > > One more comment: The conditional is really unnecessary. Just let > unregister_restart_handler deal with it ... > > >>+ ret = unregister_restart_handler(&pctrl->restart_nb); > > and just ignore the error return. The function will only return an error > if the entry was not found, and then it is a don't care. Awesome, thanks. I like simplifications :). I was hijacking notifier_call to indicate whether or not the restart notifier was registered at all (because it's conditional on the particular chipset having a "ps_hold" function). But, nice to know unregister_restart_handler() does the right thing if the handler wasn't registered in the first place. Josh -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation