linux-imx/drivers/leds
Grygorii Strashko 1e0dfcd58b leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger
commit 084609bf72 upstream.

Setting a dev_pm_ops suspend/resume pair of callbacks but not a set of
hibernation callbacks means those pm functions will not be
called upon hibernation - that leads to system crash on ARM during
freezing if gpio-led is used in combination with CPU led trigger.
It may happen after freeze_noirq stage (GPIO is suspended)
and before syscore_suspend stage (CPU led trigger is suspended)
- usually when disable_nonboot_cpus() is called.

Log:
  PM: noirq freeze of devices complete after 1.425 msecs
  Disabling non-boot CPUs ...
    ^ system may crash or stuck here with message (TI AM572x)

  WARNING: CPU: 0 PID: 3100 at drivers/bus/omap_l3_noc.c:148 l3_interrupt_handler+0x22c/0x370()
  44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER1_P3 (Idle): Data Access in Supervisor mode during Functional access

  CPU1: shutdown
    ^ or here

Fix this by using SIMPLE_DEV_PM_OPS, which appropriately
assigns the suspend and hibernation callbacks and move
led_suspend/led_resume under CONFIG_PM_SLEEP to avoid
build warnings.

Fixes: 73e1ab41a8 (leds: Convert led class driver from legacy pm ops to dev_pm_ops)
Signed-off-by: Grygorii Strashko <Grygorii.Strashko@linaro.org>
Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
2015-07-30 14:10:51 +02:00
..
trigger leds: trigger: ledtrig-backlight: Fix invalid memory access in fb_event notification callback 2013-08-26 17:46:36 -07:00
dell-led.c drivers/leds: Add module.h to files using it implicitly 2011-10-31 19:31:49 -04:00
Kconfig Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2013-09-12 11:35:33 -07:00
led-class.c leds / PM: fix hibernation on arm when gpio-led used with CPU led trigger 2015-07-30 14:10:51 +02:00
led-core.c leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
led-triggers.c leds: led-triggers: Fix checkpatch warnings 2012-11-27 14:49:30 -08:00
leds-88pm860x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-adp5520.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-asic3.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-atmel-pwm.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-bd2802.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-blinkm.c leds: remove use of __devexit 2012-11-28 12:35:06 -08:00
leds-clevo-mail.c leds: clevo-mail: Fix incorrect placement of __initdata 2013-08-26 17:22:11 -07:00
leds-cobalt-qube.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-12-15 12:52:42 -08:00
leds-cobalt-raq.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-12-15 12:52:42 -08:00
leds-da903x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-da9052.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-dac124s085.c leds: convert DAC124S085 LED driver to devm_kzalloc() 2012-07-24 07:52:40 +08:00
leds-fsg.c leds: leds-fsg: use devm_ioremap 2012-11-26 14:28:45 -08:00
leds-gpio-register.c leds: provide helper to register "leds-gpio" devices 2011-05-25 08:39:51 -07:00
leds-gpio.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-hp6xx.c leds: convert led platform drivers to module_platform_driver 2012-01-10 16:30:48 -08:00
leds-lm355x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lm3530.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lm3533.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lm3642.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-locomo.c drivers/leds: Add module.h to files using it implicitly 2011-10-31 19:31:49 -04:00
leds-lp55xx-common.c leds: support new LP8501 device - another LP55xx common 2013-08-26 17:22:10 -07:00
leds-lp55xx-common.h leds: lp55xx: add common macros for device attributes 2013-08-26 17:22:12 -07:00
leds-lp3944.c leds: leds-lp3944, fix "sparse" warning "mixing different enum types" 2013-08-26 17:22:11 -07:00
leds-lp5521.c leds: lp5521/5523: Remove duplicate mutex 2014-01-15 15:31:42 -08:00
leds-lp5523.c leds: lp5521/5523: Remove duplicate mutex 2014-01-15 15:31:42 -08:00
leds-lp5562.c leds: lp5562: use LP55xx common macros for device attributes 2013-08-26 17:22:13 -07:00
leds-lp8501.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-lp8788.c leds-lp8788: fix a parent device in _probe() 2013-02-01 17:47:05 -08:00
leds-lt3593.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-max8997.c leds: remove use of __devexit 2012-11-28 12:35:06 -08:00
leds-mc13783.c leds: mc13783: Fix "uninitialized variable" warning 2013-07-02 08:44:02 -07:00
leds-net48xx.c leds: leds-net48xx: Use linux/io.h instead of asm/io.h 2012-11-27 14:49:28 -08:00
leds-netxbig.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-ns2.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-ot200.c drivers/leds/leds-ot200.c: fix error caused by shifted mask 2013-05-24 16:22:51 -07:00
leds-pca955x.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-pca963x.c leds-pca963x: Fix device tree parsing 2013-08-26 17:22:14 -07:00
leds-pca9532.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-pwm.c leds: leds-pwm: properly clean up after probe failure 2014-06-09 15:53:22 +02:00
leds-rb532.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-12-15 12:52:42 -08:00
leds-regulator.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-s3c24xx.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-ss4200.c leds: ss4200: Fix incorrect placement of __initdata 2013-08-26 17:22:12 -07:00
leds-sunfire.c leds: use platform_{get,set}_drvdata() 2013-06-20 16:21:33 -07:00
leds-tca6507.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-wm831x-status.c leds: wm831x-status: Request a REG resource 2013-08-30 10:17:45 -07:00
leds-wm8350.c leds: use dev_get_platdata() 2013-08-26 17:22:11 -07:00
leds-wrap.c leds: leds-wrap: Use <linux/io.h> instead of <asm/io.h> 2012-11-27 14:49:30 -08:00
leds.h leds: delay led_set_brightness if stopping soft-blink 2012-09-11 18:32:40 +08:00
Makefile Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2013-09-12 11:35:33 -07:00