Loading drivers/bus/ti-sysc.c +34 −0 Original line number Original line Diff line number Diff line Loading @@ -58,6 +58,7 @@ static const char * const clock_names[] = { "fck", "ick", }; * @cfg: interconnect target module configuration * @cfg: interconnect target module configuration * @name: name if available * @name: name if available * @revision: interconnect target module revision * @revision: interconnect target module revision * @needs_resume: runtime resume needed on resume from suspend */ */ struct sysc { struct sysc { struct device *dev; struct device *dev; Loading @@ -71,6 +72,8 @@ struct sysc { struct sysc_config cfg; struct sysc_config cfg; const char *name; const char *name; u32 revision; u32 revision; bool enabled; bool needs_resume; }; }; static u32 sysc_read(struct sysc *ddata, int offset) static u32 sysc_read(struct sysc *ddata, int offset) Loading Loading @@ -497,7 +500,38 @@ static int __maybe_unused sysc_runtime_resume(struct device *dev) return 0; return 0; } } #ifdef CONFIG_PM_SLEEP static int sysc_suspend(struct device *dev) { struct sysc *ddata; ddata = dev_get_drvdata(dev); if (!ddata->enabled) return 0; ddata->needs_resume = true; return sysc_runtime_suspend(dev); } static int sysc_resume(struct device *dev) { struct sysc *ddata; ddata = dev_get_drvdata(dev); if (ddata->needs_resume) { ddata->needs_resume = false; return sysc_runtime_resume(dev); } return 0; } #endif static const struct dev_pm_ops sysc_pm_ops = { static const struct dev_pm_ops sysc_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(sysc_suspend, sysc_resume) SET_RUNTIME_PM_OPS(sysc_runtime_suspend, SET_RUNTIME_PM_OPS(sysc_runtime_suspend, sysc_runtime_resume, sysc_runtime_resume, NULL) NULL) Loading Loading
drivers/bus/ti-sysc.c +34 −0 Original line number Original line Diff line number Diff line Loading @@ -58,6 +58,7 @@ static const char * const clock_names[] = { "fck", "ick", }; * @cfg: interconnect target module configuration * @cfg: interconnect target module configuration * @name: name if available * @name: name if available * @revision: interconnect target module revision * @revision: interconnect target module revision * @needs_resume: runtime resume needed on resume from suspend */ */ struct sysc { struct sysc { struct device *dev; struct device *dev; Loading @@ -71,6 +72,8 @@ struct sysc { struct sysc_config cfg; struct sysc_config cfg; const char *name; const char *name; u32 revision; u32 revision; bool enabled; bool needs_resume; }; }; static u32 sysc_read(struct sysc *ddata, int offset) static u32 sysc_read(struct sysc *ddata, int offset) Loading Loading @@ -497,7 +500,38 @@ static int __maybe_unused sysc_runtime_resume(struct device *dev) return 0; return 0; } } #ifdef CONFIG_PM_SLEEP static int sysc_suspend(struct device *dev) { struct sysc *ddata; ddata = dev_get_drvdata(dev); if (!ddata->enabled) return 0; ddata->needs_resume = true; return sysc_runtime_suspend(dev); } static int sysc_resume(struct device *dev) { struct sysc *ddata; ddata = dev_get_drvdata(dev); if (ddata->needs_resume) { ddata->needs_resume = false; return sysc_runtime_resume(dev); } return 0; } #endif static const struct dev_pm_ops sysc_pm_ops = { static const struct dev_pm_ops sysc_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(sysc_suspend, sysc_resume) SET_RUNTIME_PM_OPS(sysc_runtime_suspend, SET_RUNTIME_PM_OPS(sysc_runtime_suspend, sysc_runtime_resume, sysc_runtime_resume, NULL) NULL) Loading