aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_device.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-11-16 15:45:55 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-16 15:45:55 -0500
commit71f777ed50e9109c235c14604d5e23d2f8e7453c (patch)
tree89d68da346c1f0e4de4429af2be36a8a39566064 /arch/arm/mach-omap2/omap_device.c
parentdd3190ee8142d94c9aa09d278a106544b2e5e7d1 (diff)
parent6886059f2ef5d62c73e87a905e84fa4f87d56074 (diff)
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: "A first set of batches of fixes for 3.13. The diffstat is large mostly because we're adding a defconfig for a family that's been lacking it, and there's some missing clock information added for i.MX and OMAP. The at91 new code is around dealing with RTC/RTT reset at boot to fix possible hangs due to pending wakeup interrupts coming in during early boot" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (29 commits) ARM: OMAP2+: Fix build for dra7xx without omap4 and 5 ARM: OMAP2+: omap_device: maintain sane runtime pm status around suspend/resume doc: devicetree: Add bindings documentation for omap-des driver ARM: dts: doc: Document missing compatible property for omap-sham driver ARM: OMAP3: Beagle: fix return value check in beagle_opp_init() ARM: at91: fix hanged boot due to early rtt-interrupt ARM: at91: fix hanged boot due to early rtc-interrupt video: exynos_mipi_dsim: Remove unused variable ARM: highbank: only select errata 764369 if SMP ARM: sti: only select errata 764369 if SMP ARM: tegra: init fuse before setting reset handler ARM: vt8500: add defconfig for v6/v7 chips ARM: integrator_cp: Set LCD{0,1} enable lines when turning on CLCD ARM: OMAP: devicetree: fix SPI node compatible property syntax items pinctrl: single: call pcs_soc->rearm() whenever IRQ mask is changed ARM: OMAP2+: smsc911x: fix return value check in gpmc_smsc911x_init() MAINTAINERS: drop discontinued mailing list ARM: dts: i.MX51: Fix OTG PHY clock ARM: imx: set up pllv3 POWER and BYPASS sequentially ARM: imx: pllv3 needs relock in .set_rate() call ...
Diffstat (limited to 'arch/arm/mach-omap2/omap_device.c')
-rw-r--r--arch/arm/mach-omap2/omap_device.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
index b69dd9abb50a..53f0735817bb 100644
--- a/arch/arm/mach-omap2/omap_device.c
+++ b/arch/arm/mach-omap2/omap_device.c
@@ -621,6 +621,7 @@ static int _od_suspend_noirq(struct device *dev)
621 621
622 if (!ret && !pm_runtime_status_suspended(dev)) { 622 if (!ret && !pm_runtime_status_suspended(dev)) {
623 if (pm_generic_runtime_suspend(dev) == 0) { 623 if (pm_generic_runtime_suspend(dev) == 0) {
624 pm_runtime_set_suspended(dev);
624 omap_device_idle(pdev); 625 omap_device_idle(pdev);
625 od->flags |= OMAP_DEVICE_SUSPENDED; 626 od->flags |= OMAP_DEVICE_SUSPENDED;
626 } 627 }
@@ -634,10 +635,18 @@ static int _od_resume_noirq(struct device *dev)
634 struct platform_device *pdev = to_platform_device(dev); 635 struct platform_device *pdev = to_platform_device(dev);
635 struct omap_device *od = to_omap_device(pdev); 636 struct omap_device *od = to_omap_device(pdev);
636 637
637 if ((od->flags & OMAP_DEVICE_SUSPENDED) && 638 if (od->flags & OMAP_DEVICE_SUSPENDED) {
638 !pm_runtime_status_suspended(dev)) {
639 od->flags &= ~OMAP_DEVICE_SUSPENDED; 639 od->flags &= ~OMAP_DEVICE_SUSPENDED;
640 omap_device_enable(pdev); 640 omap_device_enable(pdev);
641 /*
642 * XXX: we run before core runtime pm has resumed itself. At
643 * this point in time, we just restore the runtime pm state and
644 * considering symmetric operations in resume, we donot expect
645 * to fail. If we failed, something changed in core runtime_pm
646 * framework OR some device driver messed things up, hence, WARN
647 */
648 WARN(pm_runtime_set_active(dev),
649 "Could not set %s runtime state active\n", dev_name(dev));
641 pm_generic_runtime_resume(dev); 650 pm_generic_runtime_resume(dev);
642 } 651 }
643 652