aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2012-03-28 14:17:12 -0700
committerTodd Poynor <toddpoynor@google.com>2012-03-28 14:17:12 -0700
commitd8182e02ef90b7ee9eb3e4ad26aaeab39f05bb6a (patch)
tree998c72033d458ae4affa2459d27a25bc7527a498
parent4d3fcdfb47c2a1ca48853f45b5c2e5379952622b (diff)
parent718f45296490b52be3623523a539e48c204aa1c7 (diff)
downloadkernel_samsung_tuna-d8182e02ef90b7ee9eb3e4ad26aaeab39f05bb6a.zip
kernel_samsung_tuna-d8182e02ef90b7ee9eb3e4ad26aaeab39f05bb6a.tar.gz
kernel_samsung_tuna-d8182e02ef90b7ee9eb3e4ad26aaeab39f05bb6a.tar.bz2
Merge branch 'linux-omap-3.0' into android-omap-3.0
-rw-r--r--arch/arm/mach-omap2/smartreflex.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
index bc0abe7..c2d85c1 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -848,19 +848,13 @@ int sr_notifier_control(struct voltagedomain *voltdm, bool enable)
return -EINVAL;
}
- if (!enable)
- sr_write_reg(sr, IRQSTATUS, value);
switch (sr->ip_type) {
case SR_TYPE_V1:
value = notifier_to_irqen_v1(sr_class->notify_flags);
- sr_modify_reg(sr, ERRCONFIG_V1, value,
- (enable) ? value : 0);
break;
case SR_TYPE_V2:
value = notifier_to_irqen_v2(sr_class->notify_flags);
- sr_write_reg(sr, (enable) ? IRQENABLE_SET : IRQENABLE_CLR,
- value);
break;
default:
dev_warn(&sr->pdev->dev, "%s: unknown type of sr??\n",
@@ -868,6 +862,20 @@ int sr_notifier_control(struct voltagedomain *voltdm, bool enable)
return -EINVAL;
}
+ if (!enable)
+ sr_write_reg(sr, IRQSTATUS, value);
+
+ switch (sr->ip_type) {
+ case SR_TYPE_V1:
+ sr_modify_reg(sr, ERRCONFIG_V1, value,
+ (enable) ? value : 0);
+ break;
+ case SR_TYPE_V2:
+ sr_write_reg(sr, (enable) ? IRQENABLE_SET : IRQENABLE_CLR,
+ value);
+ break;
+ }
+
if (enable != sr->irq_enabled) {
if (enable)
enable_irq(sr->irq);