Skip to contentSkip to conversation

PM: omap_device fix for v3.1-rc

PATCH Applied Kevin Hilman 3 participants 9 messages Aug 24, 2011 – Sep 1, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover PM: omap_device fix for v3.1-rc

While this fix could go via the OMAP tree, since the original patch causing the problem went via Rafael's tree (due to dependencies) I'm submitting the fix to go via Rafael's tree as well.

Applies on v3.1-rc3.

Kevin Hilman (1):
OMAP: omap_device: only override _noirq methods, not normal
suspend/resume

 arch/arm/plat-omap/omap_device.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
Signature · 1 line
1.7.6
#1 lore raw

PATCH 1/1 OMAP: omap_device: only override _noirq methods, not normal suspend/resume

commit c03f007a8bf0e092caeb6856a5c8a850df10b974 (OMAP: PM:
omap_device: add system PM methods for PM domain handling) mistakenly used SET_SYSTEM_SLEEP_PM_OPS() when trying to configure custom methods for the PM domains noirq methods. Fix that by setting only the suspend_noirq and resume_noirq methods with custom versions.

Note that all other PM domain methods (including the "normal" suspend/resume methods) are populated using USE_PLATFORM_PM_SLEEP_OPS, which configures them all to the default subsystem (platform_bus) methods.

---
 arch/arm/plat-omap/omap_device.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
arch/arm/plat-omap/omap_device.c +2 -1
index b6b4097..9a6a538 100644
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
 		SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
 				   _od_runtime_idle)
 		USE_PLATFORM_PM_SLEEP_OPS
-		SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+		.suspend_noirq = _od_suspend_noirq,
+		.resume_noirq = _od_resume_noirq,
 	}
 };
 
Signature · 1 line
1.7.6
#2 lore raw

PATCH 1/1 OMAP: omap_device: only override _noirq methods, not normal suspend/resume

Quoted 6 lines · Kevin Hilman

commit c03f007a8bf0e092caeb6856a5c8a850df10b974 (OMAP: PM:
omap_device: add system PM methods for PM domain handling) mistakenly used SET_SYSTEM_SLEEP_PM_OPS() when trying to configure custom methods for the PM domains noirq methods. Fix that by setting only the suspend_noirq and resume_noirq methods with custom versions.

Quoted 8 lines

Note that all other PM domain methods (including the "normal" suspend/resume methods) are populated using USE_PLATFORM_PM_SLEEP_OPS, which configures them all to the default subsystem (platform_bus) methods.

Applied to linux-pm/pm-fixes, will be pushed for 3.1, thanks!

Rafael

Quoted 19 lines
---
 arch/arm/plat-omap/omap_device.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
arch/arm/plat-omap/omap_device.c +2 -1
index b6b4097..9a6a538 100644
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
 		SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
 				   _od_runtime_idle)
 		USE_PLATFORM_PM_SLEEP_OPS
-		SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+		.suspend_noirq = _od_suspend_noirq,
+		.resume_noirq = _od_resume_noirq,
 	}
 };
 
#3 lore raw

Re: [PATCH 1/1] OMAP: omap_device: only override _noirq methods, not normal suspend/resume

In reply to Kevin Hilman
Quoted 6 lines · Kevin Hilman

commit c03f007a8bf0e092caeb6856a5c8a850df10b974 (OMAP: PM:
omap_device: add system PM methods for PM domain handling) mistakenly used SET_SYSTEM_SLEEP_PM_OPS() when trying to configure custom methods for the PM domains noirq methods. Fix that by setting only the suspend_noirq and resume_noirq methods with custom versions.

Quoted 8 lines

Note that all other PM domain methods (including the "normal" suspend/resume methods) are populated using USE_PLATFORM_PM_SLEEP_OPS, which configures them all to the default subsystem (platform_bus) methods.

Applied to linux-pm/pm-fixes, will be pushed for 3.1, thanks!

Rafael

Quoted 19 lines
---
 arch/arm/plat-omap/omap_device.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
arch/arm/plat-omap/omap_device.c +2 -1
index b6b4097..9a6a538 100644
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
 		SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
 				   _od_runtime_idle)
 		USE_PLATFORM_PM_SLEEP_OPS
-		SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+		.suspend_noirq = _od_suspend_noirq,
+		.resume_noirq = _od_resume_noirq,
 	}
 };
 
#4 lore raw

PATCH 1/1 OMAP: omap_device: only override _noirq methods, not normal suspend/resume

In reply to Kevin Hilman

arch/arm/plat-omap/omap_device.c static struct dev_pm_domain omap_device_pm_domain = { · line 628

Quoted 11 lines · Kevin Hilman
arch/arm/plat-omap/omap_device.c +2 -1
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
                SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
                                   _od_runtime_idle)
                USE_PLATFORM_PM_SLEEP_OPS
-               SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+               .suspend_noirq = _od_suspend_noirq,
+               .resume_noirq = _od_resume_noirq,
        }
 };

This breaks if CONFIG_SUSPEND is not set and the _od_suspend_noirq/_od_resume_noirq functions are not defined.

Arnd

#5 lore raw

PATCH 1/1 OMAP: omap_device: only override _noirq methods, not normal suspend/resume

Quoted 15 lines · Arnd Bergmann

arch/arm/plat-omap/omap_device.c static struct dev_pm_domain omap_device_pm_domain = { · line 628

Quoted 11 lines · Kevin Hilman
arch/arm/plat-omap/omap_device.c +2 -1
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
                SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
                                   _od_runtime_idle)
                USE_PLATFORM_PM_SLEEP_OPS
-               SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+               .suspend_noirq = _od_suspend_noirq,
+               .resume_noirq = _od_resume_noirq,
        }
 };

This breaks if CONFIG_SUSPEND is not set and the _od_suspend_noirq/_od_resume_noirq functions are not defined.

Indeed.

Will post a fix shortly.

Kevin

#6 lore raw

Re: [PATCH 1/1] OMAP: omap_device: only override _noirq methods, not normal suspend/resume

In reply to Arnd Bergmann
Quoted 15 lines · Arnd Bergmann

arch/arm/plat-omap/omap_device.c static struct dev_pm_domain omap_device_pm_domain = { · line 628

Quoted 11 lines · Kevin Hilman
arch/arm/plat-omap/omap_device.c +2 -1
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
                SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
                                   _od_runtime_idle)
                USE_PLATFORM_PM_SLEEP_OPS
-               SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+               .suspend_noirq = _od_suspend_noirq,
+               .resume_noirq = _od_resume_noirq,
        }
 };

This breaks if CONFIG_SUSPEND is not set and the _od_suspend_noirq/_od_resume_noirq functions are not defined.

Indeed.

Will post a fix shortly.

Kevin

#7 lore raw

Re: [PATCH 1/1] OMAP: omap_device: only override _noirq methods, not normal suspend/resume

In reply to Kevin Hilman

arch/arm/plat-omap/omap_device.c static struct dev_pm_domain omap_device_pm_domain = { · line 628

Quoted 11 lines · Kevin Hilman
arch/arm/plat-omap/omap_device.c +2 -1
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
                SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
                                   _od_runtime_idle)
                USE_PLATFORM_PM_SLEEP_OPS
-               SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+               .suspend_noirq = _od_suspend_noirq,
+               .resume_noirq = _od_resume_noirq,
        }
 };

This breaks if CONFIG_SUSPEND is not set and the _od_suspend_noirq/_od_resume_noirq functions are not defined.

Arnd

#8 lore raw

PATCH 1/1 OMAP: omap_device: only override _noirq methods, not normal suspend/resume

In reply to Kevin Hilman

commit c03f007a8bf0e092caeb6856a5c8a850df10b974 (OMAP: PM:
omap_device: add system PM methods for PM domain handling) mistakenly used SET_SYSTEM_SLEEP_PM_OPS() when trying to configure custom methods for the PM domains noirq methods. Fix that by setting only the suspend_noirq and resume_noirq methods with custom versions.

Note that all other PM domain methods (including the "normal" suspend/resume methods) are populated using USE_PLATFORM_PM_SLEEP_OPS, which configures them all to the default subsystem (platform_bus) methods.

---
 arch/arm/plat-omap/omap_device.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
arch/arm/plat-omap/omap_device.c +2 -1
index b6b4097..9a6a538 100644
@@ -622,7 +622,8 @@ static struct dev_pm_domain omap_device_pm_domain = {
 		SET_RUNTIME_PM_OPS(_od_runtime_suspend, _od_runtime_resume,
 				   _od_runtime_idle)
 		USE_PLATFORM_PM_SLEEP_OPS
-		SET_SYSTEM_SLEEP_PM_OPS(_od_suspend_noirq, _od_resume_noirq)
+		.suspend_noirq = _od_suspend_noirq,
+		.resume_noirq = _od_resume_noirq,
 	}
 };
 
Signature · 1 line
1.7.6