linux/drivers/pwm
Shawn Guo bd9c1b6005 pwm: mxs: set pwm_chip can_sleep flag
The .config() calls clk_get_rate() which might sleep, so we need to set
pwm_chip can_sleep flag.  Otherwise, we see the following warning when
using PWM driven heartbeat led.

WARNING: CPU: 0 PID: 0 at kernel/locking/mutex.c:856 mutex_trylock+0x184/0x1a4()
DEBUG_LOCKS_WARN_ON(in_interrupt())
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.14.0-rc5 #18
[<c0015420>] (unwind_backtrace) from [<c0012cb0>] (show_stack+0x10/0x14)
[<c0012cb0>] (show_stack) from [<c001daf8>] (warn_slowpath_common+0x6c/0x8c)
[<c001daf8>] (warn_slowpath_common) from [<c001dbac>] (warn_slowpath_fmt+0x30/0x40)
[<c001dbac>] (warn_slowpath_fmt) from [<c045df74>] (mutex_trylock+0x184/0x1a4)
[<c045df74>] (mutex_trylock) from [<c0360950>] (clk_prepare_lock+0xc/0xec)
[<c0360950>] (clk_prepare_lock) from [<c0362020>] (clk_get_rate+0xc/0x68)
[<c0362020>] (clk_get_rate) from [<c028d07c>] (mxs_pwm_config+0x20/0x198)
[<c028d07c>] (mxs_pwm_config) from [<c028bde8>] (pwm_config+0x60/0x70)
[<c028bde8>] (pwm_config) from [<c034b61c>] (__led_pwm_set+0x1c/0x3c)
[<c034b61c>] (__led_pwm_set) from [<c034bc3c>] (led_heartbeat_function+0x70/0x110)
[<c034bc3c>] (led_heartbeat_function) from [<c00292f0>] (call_timer_fn+0x7c/0x164)
[<c00292f0>] (call_timer_fn) from [<c00295c8>] (run_timer_softirq+0x1f0/0x260)
[<c00295c8>] (run_timer_softirq) from [<c002255c>] (__do_softirq+0xc4/0x2f0)
[<c002255c>] (__do_softirq) from [<c0022890>] (irq_exit+0xa4/0x10c)
[<c0022890>] (irq_exit) from [<c0010240>] (handle_IRQ+0x34/0x84)
[<c0010240>] (handle_IRQ) from [<c0013524>] (__irq_svc+0x44/0x54)
[<c0013524>] (__irq_svc) from [<c00107f8>] (arch_cpu_idle+0x40/0x48)
[<c00107f8>] (arch_cpu_idle) from [<c005deb8>] (cpu_startup_entry+0x70/0x198)
[<c005deb8>] (cpu_startup_entry) from [<c060aac8>] (start_kernel+0x2a8/0x2f8)

Reported-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2014-05-21 12:08:27 +02:00
..
core.c pwm: add period and polarity to struct pwm_lookup 2014-05-21 09:03:07 +02:00
Kconfig pwm: kona: Introduce Kona PWM controller support 2014-04-28 13:07:44 +02:00
Makefile pwm: kona: Introduce Kona PWM controller support 2014-04-28 13:07:44 +02:00
pwm-ab8500.c pwm: ab8500: Remove unnecessary OOM messages 2014-04-28 13:37:47 +02:00
pwm-atmel-tcb.c pwm: atmel-tcb: fix max time computation for slow clk source 2013-09-19 14:04:32 +02:00
pwm-atmel.c pwm: atmel: correct CDTY calculation 2014-03-18 20:47:48 +01:00
pwm-bcm-kona.c pwm: kona: Introduce Kona PWM controller support 2014-04-28 13:07:44 +02:00
pwm-bfin.c pwm: Fill in missing .owner fields 2013-06-12 13:18:29 +02:00
pwm-clps711x.c pwm: Add CLPS711X PWM support 2014-03-18 21:15:16 +01:00
pwm-ep93xx.c pwm: ep93xx: split module author names 2013-12-20 10:53:50 +01:00
pwm-fsl-ftm.c pwm: Add Freescale FTM PWM driver support 2014-03-18 18:01:56 +01:00
pwm-imx.c pwm: i.MX: Remove unnecessary OOM messages 2014-04-28 13:37:47 +02:00
pwm-jz4740.c pwm: jz4740: Use devm_clk_get() 2013-12-12 13:23:23 +01:00
pwm-lp3943.c pwm: lp3943: Fix potential memory leak during request 2014-02-26 15:45:12 +01:00
pwm-lpc32xx.c pwm: lpc32xx: Remove redundant of_match_ptr 2013-10-08 15:49:19 +02:00
pwm-lpss.c pwm: lpss: Fix const qualifier and sparse warnings 2014-05-07 10:27:57 +02:00
pwm-mxs.c pwm: mxs: set pwm_chip can_sleep flag 2014-05-21 12:08:27 +02:00
pwm-pca9685.c pwm: pca9685: Fix wrong argument to set MODE1_SLEEP bit 2013-06-26 23:23:54 +02:00
pwm-puv3.c pwm: Fill in missing .owner fields 2013-06-12 13:18:29 +02:00
pwm-pxa.c pwm: pxa: Remove unnecessary OOM messages 2014-04-28 13:37:48 +02:00
pwm-renesas-tpu.c pwm: renesas-tpu: remove unused struct tpu_pwm_platform_data 2014-05-21 11:19:29 +02:00
pwm-samsung.c pwm: samsung: Use SIMPLE_DEV_PM_OPS macro 2014-02-26 16:14:57 +01:00
pwm-spear.c pwm: spear: fix check on pwmchip_add() return value 2014-05-07 10:21:05 +02:00
pwm-tegra.c pwm: tegra: Remove unnecessary OOM messages 2014-04-28 13:37:48 +02:00
pwm-tiecap.c pwm: pwm-tiecap: Remove unnecessary OOM messages 2014-04-28 13:37:48 +02:00
pwm-tiehrpwm.c pwm: tiehrpwm: inline accessor functions 2014-05-21 11:51:26 +02:00
pwm-tipwmss.c drivers/pwm: don't check resource with devm_ioremap_resource 2013-05-18 11:55:58 +02:00
pwm-tipwmss.h pwm: davinci: Add Kconfig support for ECAP & EHRPWM devices 2013-03-22 11:35:20 +01:00
pwm-twl-led.c pwm: twl-led: Include linux/of.h header 2013-10-08 15:45:44 +02:00
pwm-twl.c pwm: twl: Really disable twl6030 PWMs 2014-05-08 23:41:47 +02:00
pwm-vt8500.c pwm: vt8500: Remove unnecessary OOM messages 2014-04-28 13:37:48 +02:00
sysfs.c pwm: sysfs: Convert to use ATTRIBUTE_GROUPS macro 2013-12-04 11:35:28 +01:00