Skip to contentSkip to conversation

arm: omap3: pm34xx.c: Some minor fixups

PATCH New Mark A. Greer 4 participants 7 messages Mar 18, 2012 – Mar 20, 2012

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

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

#1 lore raw

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
index 27fc7a2..af8d741 100644
@@ -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
#2 lore raw

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 for free_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
---
 arch/arm/mach-omap2/pm34xx.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
arch/arm/mach-omap2/pm34xx.c +10 -6
index 27fc7a2..af8d741 100644
@@ -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;
 }
 
#3 lore raw

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 for free_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.

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

#4 lore raw

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 for free_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

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.

Yeah, I've already queued these for v3.4. (branch: for_3.4/fixes/pm)

Kevin

#5 lore raw

PATCH v3 2/2 arm: omap3: pm34xx.c: Replace printk() with appropriate pr_*()

In reply to Mark A. Greer

From: "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
index af8d741..abc2ee0 100644
@@ -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
#6 lore raw

v3 cover arm: omap3: pm34xx.c: Some minor fixups

In reply to Mark A. Greer
Quoted 4 lines · Mark A. Greer

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.

Thanks Mark.

Queueing these for v3.4-rc.

Kevin