linux-imx/drivers/power
Michael Trimarchi 1d87656912 power: supply: pda_power: move from timer to delayed_work
commit 633e8799dd upstream.

This changed is needed to avoid locking problem during
boot as shown:

<5>[    8.824096] Registering SWP/SWPB emulation handler
<6>[    8.977294] clock: disabling unused clocks to save power
<3>[    9.108154] BUG: sleeping function called from invalid context at kernel_albert/kernel/mutex.c:269
<3>[    9.122894] in_atomic(): 1, irqs_disabled(): 0, pid: 1, name: swapper/0
<4>[    9.130249] 3 locks held by swapper/0/1:
<4>[    9.134613]  #0:  (&__lockdep_no_validate__){......}, at: [<c0342430>] __driver_attach+0x58/0xa8
<4>[    9.144500]  #1:  (&__lockdep_no_validate__){......}, at: [<c0342440>] __driver_attach+0x68/0xa8
<4>[    9.154357]  #2:  (&polling_timer){......}, at: [<c0053770>] run_timer_softirq+0x108/0x3ec
<4>[    9.163726] Backtrace:
<4>[    9.166473] [<c001269c>] (dump_backtrace+0x0/0x114) from [<c067e5f0>] (dump_stack+0x20/0x24)
<4>[    9.175811]  r6:00203230 r5:0000010d r4:d782e000 r3:60000113
<4>[    9.182250] [<c067e5d0>] (dump_stack+0x0/0x24) from [<c007441c>] (__might_sleep+0x10c/0x128)
<4>[    9.191650] [<c0074310>] (__might_sleep+0x0/0x128) from [<c0688f60>] (mutex_lock_nested+0x34/0x36c)
<4>[    9.201660]  r5:c02d5350 r4:d79a0c64
<4>[    9.205688] [<c0688f2c>] (mutex_lock_nested+0x0/0x36c) from [<c02d5350>] (regulator_set_current_limit+0x30/0x118)
<4>[    9.217071] [<c02d5320>] (regulator_set_current_limit+0x0/0x118) from [<c0435ce0>] (update_charger+0x84/0xc4)
<4>[    9.228027]  r7:d782fb20 r6:00000101 r5:c1767e94 r4:00000000
<4>[    9.234436] [<c0435c5c>] (update_charger+0x0/0xc4) from [<c0435d40>] (psy_changed+0x20/0x48)
<4>[    9.243804]  r5:d782e000 r4:c1767e94
<4>[    9.247802] [<c0435d20>] (psy_changed+0x0/0x48) from [<c0435dec>] (polling_timer_func+0x84/0xb8)
<4>[    9.257537]  r4:c1767e94 r3:00000002
<4>[    9.261566] [<c0435d68>] (polling_timer_func+0x0/0xb8) from [<c00537e4>] (run_timer_softirq+0x17c/0x3ec)
<4>[    9.272033]  r4:c1767eb0 r3:00000000
<4>[    9.276062] [<c0053668>] (run_timer_softirq+0x0/0x3ec) from [<c004b000>] (__do_softirq+0xf0/0x298)
<4>[    9.286010] [<c004af10>] (__do_softirq+0x0/0x298) from [<c004b650>] (irq_exit+0x98/0xa0)
<4>[    9.295013] [<c004b5b8>] (irq_exit+0x0/0xa0) from [<c000edbc>] (handle_IRQ+0x60/0xc0)
<4>[    9.303680]  r4:c1194e98 r3:c00bc778
<4>[    9.307708] [<c000ed5c>] (handle_IRQ+0x0/0xc0) from [<c0008504>] (gic_handle_irq+0x34/0x68)
<4>[    9.316955]  r8:000ac383 r7:d782fc3c r6:d782fc08 r5:c11936c4 r4:e0802100
<4>[    9.324310] r3:c026ba48
<4>[    9.327301] [<c00084d0>] (gic_handle_irq+0x0/0x68) from [<c068c2c0>] (__irq_svc+0x40/0x74)
<4>[    9.336456] Exception stack(0xd782fc08 to 0xd782fc50)
<4>[    9.342041] fc00:                   d6e30e6c ac383627 00000000 ac383417 ea19c000 ea200000
<4>[    9.351104] fc20: beffffff 00000667 000ac383 d6e30670 d6e3066c d782fc94 d782fbe8 d782fc50
<4>[    9.360168] fc40: c026ba48 c001d1f0 00000113 ffffffff

Fixes: b2998049cf ("[BATTERY] pda_power platform driver")
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Anthony Brandon <anthony@amarulasolutions.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
[bwh: Backported to 3.2:
 - Drop changes in otg_handle_notification()
 - Adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2017-08-26 02:14:04 +01:00
..
apm_power.c apm_power: Fix style error in macros 2011-07-08 16:55:56 +04:00
bq20z75.c bq20z75: Enable detection after registering 2011-07-08 16:53:07 +04:00
bq27x00_battery.c bq27x00_battery: Name of cycle count property 2011-05-20 19:25:05 +04:00
collie_battery.c power_supply: Don't use flush_scheduled_work() 2010-12-22 02:39:56 +03:00
da9030_battery.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ds2760_battery.c ds2760_battery: Fix rated capacity of the hx4700 1800mAh battery 2011-05-20 19:25:10 +04:00
ds2780_battery.c drivers/power/ds2780_battery.c: fix deadlock upon insertion and removal 2011-11-02 16:07:03 -07:00
ds2782_battery.c Change Ryan Mallon's email address across the kernel 2011-06-16 11:22:05 +02:00
gpio-charger.c gpio-charger: Fix checking return value of request_any_context_irq 2011-07-08 17:01:59 +04:00
intel_mid_battery.c x86/mrst: Battery fixes 2011-12-05 17:06:37 +01:00
isp1704_charger.c isp1704_charger: Allow board specific powering routine 2011-04-20 17:48:49 +04:00
jz4740-battery.c jz4740: silence warnings related to mfd_get_cell changes 2011-03-23 10:42:02 +01:00
Kconfig um: switch to use of drivers/Kconfig 2011-11-02 14:15:41 +01:00
Makefile Merge git://git.infradead.org/battery-2.6 2011-07-31 06:24:50 -10:00
max8903_charger.c drivers/power: Add module.h to the actual modules in drivers/power 2011-10-31 19:31:56 -04:00
max8925_power.c power_supply: Use max8925 platform_data from cell 2011-05-26 19:45:32 +02:00
max8997_charger.c drivers/power: Add module.h to the actual modules in drivers/power 2011-10-31 19:31:56 -04:00
max8998_charger.c drivers/power: Add module.h to the actual modules in drivers/power 2011-10-31 19:31:56 -04:00
max17040_battery.c power: max17040: Fix NULL pointer dereference when there is no platform_data 2014-04-02 00:58:47 +01:00
max17042_battery.c drivers/power: Add module.h to the actual modules in drivers/power 2011-10-31 19:31:56 -04:00
olpc_battery.c olpc_battery: Fix up XO-1.5 properties list 2011-01-13 01:41:57 +03:00
pcf50633-charger.c pcf50633-charger: Add missing sysfs_remove_group() 2010-09-22 16:14:49 +04:00
pda_power.c power: supply: pda_power: move from timer to delayed_work 2017-08-26 02:14:04 +01:00
pmu_battery.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
power_supply_core.c power_supply: Initialize changed_work before calling device_add 2011-02-22 11:01:42 +01:00
power_supply_leds.c power_supply: Add new LED trigger charging-blink-solid-full 2011-01-31 16:31:51 +03:00
power_supply_sysfs.c drivers: power_supply_sysfs.c needs stat.h 2011-10-31 19:31:15 -04:00
power_supply.h power_supply: Use attribute groups 2010-05-19 12:14:28 +04:00
s3c_adc_battery.c s3c-adc-battery: Fix compilation error due to missing header (module.h) 2011-08-19 21:01:46 +04:00
test_power.c power: test_power: correctly handle empty writes 2016-02-13 10:34:07 +00:00
tosa_battery.c power_supply: Don't use flush_scheduled_work() 2010-12-22 02:39:56 +03:00
twl4030_charger.c twl4030_charger: Fix warnings 2011-07-08 16:57:59 +04:00
wm97xx_battery.c power_supply: Don't use flush_scheduled_work() 2010-12-22 02:39:56 +03:00
wm831x_backup.c wm831x_backup: Support multiple instances 2011-07-08 16:56:47 +04:00
wm831x_power.c wm831x_power: Use IRQF_ONESHOT to request threaded IRQs 2015-11-27 12:48:19 +00:00
wm8350_power.c mfd: Update WM8350 drivers for changed interrupt numbers 2010-03-07 22:16:58 +01:00
z2_battery.c PXA: Use dev_pm_ops in z2_battery 2011-05-20 19:25:11 +04:00