diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-16 15:45:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-16 15:45:55 -0500 |
commit | 71f777ed50e9109c235c14604d5e23d2f8e7453c (patch) | |
tree | 89d68da346c1f0e4de4429af2be36a8a39566064 /arch/arm/mach-omap2/omap_device.c | |
parent | dd3190ee8142d94c9aa09d278a106544b2e5e7d1 (diff) | |
parent | 6886059f2ef5d62c73e87a905e84fa4f87d56074 (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.c | 13 |
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 | ||