Skip to content
  • Shawn Guo's avatar
    pwm: mxs: set pwm_chip can_sleep flag · bd9c1b60
    Shawn Guo authored
    
    
    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: default avatarStefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: default avatarShawn Guo <shawn.guo@freescale.com>
    Acked-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
    Tested-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
    bd9c1b60