arm: omap3: pm34xx.c: Some minor fixups
v3 cover arm: omap3: pm34xx.c: Some minor fixups
I found some minor issues when looking through pm34xx.c recently so these patches try to address them. My apologies if they are already fixed in another branch somewhere. Based on latest k.o. master branch.
Mark
PATCH v3 1/2 arm: omap3: pm34xx.c: Fix omap3_pm_init() error out paths
From: "Mark A. Greer" <[email protected]>
It appears that the error paths were overlooked when the omap3_pm_init() routine had the prcm chain handler code added. Fix this by adding a goto target and reordering the error handling code. Also fix how the irq argument for free_irq() is determined.
--- arch/arm/mach-omap2/pm34xx.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
arch/arm/mach-omap2/pm34xx.c +10 -6
@@ -817,13 +817,13 @@ static int __init omap3_pm_init(void)if (ret) {pr_err ("pm: Failed to request pm_io irq\n" ); - goto err1; + goto err2; } ret =pwrdm_for_each (pwrdms_setup,NULL );if (ret) {printk (KERN_ERR "Failed to setup powerdomains\n" ); - goto err2; + goto err3; } (void )clkdm_for_each (clkdms_setup,NULL );
@@ -831,7 +831,8 @@ static int __init omap3_pm_init(void) mpu_pwrdm =pwrdm_lookup ("mpu_pwrdm" );if (mpu_pwrdm ==NULL ) {printk (KERN_ERR "Failed to get mpu_pwrdm\n" ); - goto err2; + ret = -EINVAL ; + goto err3; } neon_pwrdm =pwrdm_lookup ("neon_pwrdm" );
@@ -879,14 +880,17 @@ static int __init omap3_pm_init(void) }omap3_save_scratchpad_contents (); -err1:return ret; -err2: -free_irq (INT_34XX_PRCM_MPU_IRQ ,NULL ); + +err3:list_for_each_entry_safe (pwrst, tmp, &pwrst_list, node) {list_del (&pwrst->node);kfree (pwrst); } +free_irq (omap_prcm_event_to_irq ("io" ), omap3_pm_init); +err2: +free_irq (omap_prcm_event_to_irq ("wkup" ),NULL ); +err1:return ret; }
Signature · 1 line
1.7.9.4
PATCH v3 1/2 arm: omap3: pm34xx.c: Fix omap3_pm_init() error out paths
Quoted 7 lines · Mark A. Greer
From: "Mark A. Greer" <[email protected]>
It appears that the error paths were overlooked when the
omap3_pm_init()routine had the prcm chain handler code added. Fix this by adding a goto target and reordering the error handling code. Also fix how the irq argument forfree_irq()is determined.
You are right, it looks like the error handling part was accidentally dropped from version 7 of the prcm patch set.
Paul, you going to grab this?
-Tero
Quoted 58 lines
CC Tero Kristo <[email protected]>Signed-off-by Mark A. Greer <[email protected]>--- arch/arm/mach-omap2/pm34xx.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)arch/arm/mach-omap2/pm34xx.c +10
-6@@ -817,13 +817,13 @@ static int __init omap3_pm_init(void)if (ret) {pr_err ("pm: Failed to request pm_io irq\n" ); - goto err1; + goto err2; } ret =pwrdm_for_each (pwrdms_setup,NULL );if (ret) {printk (KERN_ERR "Failed to setup powerdomains\n" ); - goto err2; + goto err3; } (void )clkdm_for_each (clkdms_setup,NULL );@@ -831,7 +831,8 @@ static int __init omap3_pm_init(void) mpu_pwrdm =pwrdm_lookup ("mpu_pwrdm" );if (mpu_pwrdm ==NULL ) {printk (KERN_ERR "Failed to get mpu_pwrdm\n" ); - goto err2; + ret = -EINVAL ; + goto err3; } neon_pwrdm =pwrdm_lookup ("neon_pwrdm" );@@ -879,14 +880,17 @@ static int __init omap3_pm_init(void) }omap3_save_scratchpad_contents (); -err1:return ret; -err2: -free_irq (INT_34XX_PRCM_MPU_IRQ ,NULL ); + +err3:list_for_each_entry_safe (pwrst, tmp, &pwrst_list, node) {list_del (&pwrst->node);kfree (pwrst); } +free_irq (omap_prcm_event_to_irq ("io" ), omap3_pm_init); +err2: +free_irq (omap_prcm_event_to_irq ("wkup" ),NULL ); +err1:return ret; }
PATCH v3 1/2 arm: omap3: pm34xx.c: Fix omap3_pm_init() error out paths
+ Kevin
Quoted 9 lines · Tero Kristo
Quoted 7 lines · Mark A. Greer
From: "Mark A. Greer" <[email protected]>
It appears that the error paths were overlooked when the
omap3_pm_init()routine had the prcm chain handler code added. Fix this by adding a goto target and reordering the error handling code. Also fix how the irq argument forfree_irq()is determined.
Quoted 6 lines
You are right, it looks like the error handling part was accidentally dropped from version 7 of the prcm patch set.
Acked-by Tero Kristo <[email protected]>Paul, you going to grab this?
Kevin is the pm34xx.c maintainer, so unless he wants me to queue it, it's probably best for him to take it.
- Paul
PATCH v3 1/2 arm: omap3: pm34xx.c: Fix omap3_pm_init() error out paths
Quoted 16 lines · Paul Walmsley
+ Kevin
Quoted 12 lines · Tero Kristo
Quoted 7 lines · Mark A. Greer
From: "Mark A. Greer" <[email protected]>
It appears that the error paths were overlooked when the
omap3_pm_init()routine had the prcm chain handler code added. Fix this by adding a goto target and reordering the error handling code. Also fix how the irq argument forfree_irq()is determined.You are right, it looks like the error handling part was accidentally dropped from version 7 of the prcm patch set.
Quoted 6 lines
Quoted 3 lines
Acked-by Tero Kristo <[email protected]>Paul, you going to grab this?
Kevin is the
pm34xx.cmaintainer, so unless he wants me to queue it, it's probably best for him to take it.
Yeah, I've already queued these for v3.4. (branch: for_3.4/fixes/pm)
Kevin
PATCH v3 2/2 arm: omap3: pm34xx.c: Replace printk() with appropriate pr_*()
In reply to Mark A. GreerFrom: "Mark A. Greer" <[email protected]>
Currently, pm34xx.c has a mix of printk() and pr_*() statements so replace the printk() statements with the equivalent pr_*() statements.
--- arch/arm/mach-omap2/pm34xx.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-)
arch/arm/mach-omap2/pm34xx.c +10 -12
@@ -166,8 +166,7 @@ static void omap3_save_secure_ram_context(void)pwrdm_set_next_pwrst (mpu_pwrdm, mpu_next_state);/* Following is for error tracking, it should not happen */ if (ret) { -printk (KERN_ERR "save_secure_sram() returns %08x\n" , - ret); +pr_err ("save_secure_sram() returns %08x\n" , ret);while (1 ) ; }
@@ -307,7 +306,7 @@ void omap_sram_idle(void)break ;default :/* Invalid state */ -printk (KERN_ERR "Invalid mpu state in sram_idle\n" ); +pr_err ("Invalid mpu state in sram_idle\n" );return ; }
@@ -463,18 +462,17 @@ restore:list_for_each_entry (pwrst, &pwrst_list, node) { state =pwrdm_read_prev_pwrst (pwrst->pwrdm);if (state > pwrst->next_state) { -printk (KERN_INFO "Powerdomain (%s) didn't enter " -"target state %d\n" , +pr_info ("Powerdomain (%s) didn't enter " +"target state %d\n" , pwrst->pwrdm->name, pwrst->next_state); ret =-1 ; }omap_set_pwrdm_state (pwrst->pwrdm, pwrst->saved_state); }if (ret) -printk (KERN_ERR "Could not enter target state in pm_suspend\n" ); +pr_err ("Could not enter target state in pm_suspend\n" );else -printk (KERN_INFO "Successfully put all powerdomains " -"to target state\n" ); +pr_info ("Successfully put all powerdomains to target state\n" );return ret; }
@@ -822,7 +820,7 @@ static int __init omap3_pm_init(void) ret =pwrdm_for_each (pwrdms_setup,NULL );if (ret) { -printk (KERN_ERR "Failed to setup powerdomains\n" ); +pr_err ("Failed to setup powerdomains\n" ); goto err3; }
@@ -830,7 +828,7 @@ static int __init omap3_pm_init(void) mpu_pwrdm =pwrdm_lookup ("mpu_pwrdm" );if (mpu_pwrdm ==NULL ) { -printk (KERN_ERR "Failed to get mpu_pwrdm\n" ); +pr_err ("Failed to get mpu_pwrdm\n" ); ret = -EINVAL ; goto err3; }
@@ -865,8 +863,8 @@ static int __init omap3_pm_init(void) omap3_secure_ram_storage =kmalloc (0x803F ,GFP_KERNEL );if (!omap3_secure_ram_storage) -printk (KERN_ERR "Memory allocation failed when" -"allocating for secure sram context\n" ); +pr_err ("Memory allocation failed when " +"allocating for secure sram context\n" );local_irq_disable ();local_fiq_disable ();
Signature · 1 line
1.7.9.4
v3 cover arm: omap3: pm34xx.c: Some minor fixups
In reply to Mark A. GreerQuoted 4 lines · Mark A. Greer
I found some minor issues when looking through
pm34xx.crecently so these patches try to address them. My apologies if they are already fixed in another branch somewhere. Based on latest k.o. master branch.
Thanks Mark.
Queueing these for v3.4-rc.
Kevin