Before, only control_reset() was implemented. However, the reset core only invokes control_reset() once in its lifetime. Because we need it to invoke control_reset() again after resume out of S2 or S3, we have switched to putting the reset functionality into the control_deassert() method and having an empty control_assert() method.
Signed-off-by: Jim Quinlan <james.quin...@broadcom.com> --- drivers/reset/reset-brcmstb-rescal.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/reset/reset-brcmstb-rescal.c b/drivers/reset/reset-brcmstb-rescal.c index b6f074d6a65f..1f54ae4f91fe 100644 --- a/drivers/reset/reset-brcmstb-rescal.c +++ b/drivers/reset/reset-brcmstb-rescal.c @@ -20,8 +20,8 @@ struct brcm_rescal_reset { struct reset_controller_dev rcdev; }; -static int brcm_rescal_reset_set(struct reset_controller_dev *rcdev, - unsigned long id) +static int brcm_rescal_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) { struct brcm_rescal_reset *data = container_of(rcdev, struct brcm_rescal_reset, rcdev); @@ -52,6 +52,12 @@ static int brcm_rescal_reset_set(struct reset_controller_dev *rcdev, return 0; } +static int brcm_rescal_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return 0; +} + static int brcm_rescal_reset_xlate(struct reset_controller_dev *rcdev, const struct of_phandle_args *reset_spec) { @@ -60,7 +66,8 @@ static int brcm_rescal_reset_xlate(struct reset_controller_dev *rcdev, } static const struct reset_control_ops brcm_rescal_reset_ops = { - .reset = brcm_rescal_reset_set, + .deassert = brcm_rescal_reset_deassert, + .assert = brcm_rescal_reset_assert, }; static int brcm_rescal_reset_probe(struct platform_device *pdev) -- 2.17.1
smime.p7s
Description: S/MIME Cryptographic Signature