diff options
author | Todd Poynor <toddpoynor@google.com> | 2012-03-28 14:17:12 -0700 |
---|---|---|
committer | Todd Poynor <toddpoynor@google.com> | 2012-03-28 14:17:12 -0700 |
commit | d8182e02ef90b7ee9eb3e4ad26aaeab39f05bb6a (patch) | |
tree | 998c72033d458ae4affa2459d27a25bc7527a498 | |
parent | 4d3fcdfb47c2a1ca48853f45b5c2e5379952622b (diff) | |
parent | 718f45296490b52be3623523a539e48c204aa1c7 (diff) | |
download | kernel_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.c | 20 |
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); |