Skip to content

Commit ff43728

Browse files
committed
bus: ti-sysc: Move legacy platform data idling into separate functions
Let's move the legacy idle and enable into separate functions to simplify PM runtime functions a bit. Signed-off-by: Tony Lindgren <[email protected]>
1 parent b7182b4 commit ff43728

File tree

1 file changed

+50
-28
lines changed

1 file changed

+50
-28
lines changed

drivers/bus/ti-sysc.c

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -622,9 +622,50 @@ static void sysc_show_registers(struct sysc *ddata)
622622
buf);
623623
}
624624

625-
static int __maybe_unused sysc_runtime_suspend(struct device *dev)
625+
static int __maybe_unused sysc_runtime_suspend_legacy(struct device *dev,
626+
struct sysc *ddata)
627+
{
628+
struct ti_sysc_platform_data *pdata;
629+
int error;
630+
631+
pdata = dev_get_platdata(ddata->dev);
632+
if (!pdata)
633+
return 0;
634+
635+
if (!pdata->idle_module)
636+
return -ENODEV;
637+
638+
error = pdata->idle_module(dev, &ddata->cookie);
639+
if (error)
640+
dev_err(dev, "%s: could not idle: %i\n",
641+
__func__, error);
642+
643+
return 0;
644+
}
645+
646+
static int __maybe_unused sysc_runtime_resume_legacy(struct device *dev,
647+
struct sysc *ddata)
626648
{
627649
struct ti_sysc_platform_data *pdata;
650+
int error;
651+
652+
pdata = dev_get_platdata(ddata->dev);
653+
if (!pdata)
654+
return 0;
655+
656+
if (!pdata->enable_module)
657+
return -ENODEV;
658+
659+
error = pdata->enable_module(dev, &ddata->cookie);
660+
if (error)
661+
dev_err(dev, "%s: could not enable: %i\n",
662+
__func__, error);
663+
664+
return 0;
665+
}
666+
667+
static int __maybe_unused sysc_runtime_suspend(struct device *dev)
668+
{
628669
struct sysc *ddata;
629670
int error = 0, i;
630671

@@ -634,19 +675,11 @@ static int __maybe_unused sysc_runtime_suspend(struct device *dev)
634675
return 0;
635676

636677
if (ddata->legacy_mode) {
637-
pdata = dev_get_platdata(ddata->dev);
638-
if (!pdata)
639-
return 0;
640-
641-
if (!pdata->idle_module)
642-
return -ENODEV;
643-
644-
error = pdata->idle_module(dev, &ddata->cookie);
645-
if (error)
646-
dev_err(dev, "%s: could not idle: %i\n",
647-
__func__, error);
678+
error = sysc_runtime_suspend_legacy(dev, ddata);
679+
if (!error)
680+
ddata->enabled = false;
648681

649-
goto idled;
682+
return error;
650683
}
651684

652685
for (i = 0; i < ddata->nr_clocks; i++) {
@@ -659,15 +692,13 @@ static int __maybe_unused sysc_runtime_suspend(struct device *dev)
659692
clk_disable(ddata->clocks[i]);
660693
}
661694

662-
idled:
663695
ddata->enabled = false;
664696

665697
return error;
666698
}
667699

668700
static int __maybe_unused sysc_runtime_resume(struct device *dev)
669701
{
670-
struct ti_sysc_platform_data *pdata;
671702
struct sysc *ddata;
672703
int error = 0, i;
673704

@@ -677,19 +708,11 @@ static int __maybe_unused sysc_runtime_resume(struct device *dev)
677708
return 0;
678709

679710
if (ddata->legacy_mode) {
680-
pdata = dev_get_platdata(ddata->dev);
681-
if (!pdata)
682-
return 0;
711+
error = sysc_runtime_resume_legacy(dev, ddata);
712+
if (!error)
713+
ddata->enabled = true;
683714

684-
if (!pdata->enable_module)
685-
return -ENODEV;
686-
687-
error = pdata->enable_module(dev, &ddata->cookie);
688-
if (error)
689-
dev_err(dev, "%s: could not enable: %i\n",
690-
__func__, error);
691-
692-
goto awake;
715+
return error;
693716
}
694717

695718
for (i = 0; i < ddata->nr_clocks; i++) {
@@ -704,7 +727,6 @@ static int __maybe_unused sysc_runtime_resume(struct device *dev)
704727
return error;
705728
}
706729

707-
awake:
708730
ddata->enabled = true;
709731

710732
return error;

0 commit comments

Comments
 (0)