<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/power, branch v3.16.52</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>power/reset: xgene-reset: Fix prototype of xgene_restart()</title>
<updated>2017-11-11T13:33:44+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@linaro.org</email>
</author>
<published>2014-08-25T00:36:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a04a7aa1428d03f11128c1ba83c9fa3a0758ef9c'/>
<id>a04a7aa1428d03f11128c1ba83c9fa3a0758ef9c</id>
<content type='text'>
commit d3ed534cca703b2aaeee9277a5b8063ae6eab1d1 upstream.

The xgene-reset driver uses xgene_restart() as arm_pm_restart() but that
function should take an enum reset_type as the first argument rather than
a char. Fix this; the paramter is not referenced in the implementation.

Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d3ed534cca703b2aaeee9277a5b8063ae6eab1d1 upstream.

The xgene-reset driver uses xgene_restart() as arm_pm_restart() but that
function should take an enum reset_type as the first argument rather than
a char. Fix this; the paramter is not referenced in the implementation.

Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: pda_power: move from timer to delayed_work</title>
<updated>2017-08-26T01:14:42+00:00</updated>
<author>
<name>Michael Trimarchi</name>
<email>michael@amarulasolutions.com</email>
</author>
<published>2017-04-25T13:18:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8a450fa9fa7de3787462361acf0ca2383eeb2789'/>
<id>8a450fa9fa7de3787462361acf0ca2383eeb2789</id>
<content type='text'>
commit 633e8799ddc09431be2744c4a1efdbda13af2b0b upstream.

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

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

Fixes: b2998049cfae ("[BATTERY] pda_power platform driver")
Signed-off-by: Michael Trimarchi &lt;michael@amarulasolutions.com&gt;
Signed-off-by: Anthony Brandon &lt;anthony@amarulasolutions.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.co.uk&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 633e8799ddc09431be2744c4a1efdbda13af2b0b upstream.

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

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

Fixes: b2998049cfae ("[BATTERY] pda_power platform driver")
Signed-off-by: Michael Trimarchi &lt;michael@amarulasolutions.com&gt;
Signed-off-by: Anthony Brandon &lt;anthony@amarulasolutions.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.co.uk&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: isp1704: Fix unchecked return value of devm_kzalloc</title>
<updated>2017-08-26T01:14:42+00:00</updated>
<author>
<name>Pan Bian</name>
<email>bianpan2016@163.com</email>
</author>
<published>2017-04-24T08:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=df5a28b8505f81526167b6311fdb2d9fc8994233'/>
<id>df5a28b8505f81526167b6311fdb2d9fc8994233</id>
<content type='text'>
commit 8b20839988f1ed5e534b270f3776709b640dc7e0 upstream.

Function devm_kzalloc() will return a NULL pointer. However, in function
isp1704_charger_probe(), the return value of devm_kzalloc() is directly
used without validation. This may result in a bad memory access bug.

Fixes: 34a109610e2a ("isp1704_charger: Add DT support")
Signed-off-by: Pan Bian &lt;bianpan2016@163.com&gt;
Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.co.uk&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8b20839988f1ed5e534b270f3776709b640dc7e0 upstream.

Function devm_kzalloc() will return a NULL pointer. However, in function
isp1704_charger_probe(), the return value of devm_kzalloc() is directly
used without validation. This may result in a bad memory access bug.

Fixes: 34a109610e2a ("isp1704_charger: Add DT support")
Signed-off-by: Pan Bian &lt;bianpan2016@163.com&gt;
Reviewed-by: Pali Rohár &lt;pali.rohar@gmail.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.co.uk&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: lp8788: prevent out of bounds array access</title>
<updated>2017-08-26T01:14:31+00:00</updated>
<author>
<name>Giedrius Statkevičius</name>
<email>giedrius.statkevicius@gmail.com</email>
</author>
<published>2017-03-25T16:00:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1d4198c528dafc809f6bca277018359aa43b2953'/>
<id>1d4198c528dafc809f6bca277018359aa43b2953</id>
<content type='text'>
commit bdd9968d35f7fcdb76089347d1529bf079534214 upstream.

val might become 7 in which case stime[7] (array of length 7) would be
accessed during the scnprintf call later and that will cause issues.
Obviously, string concatenation is not intended here so just a comma needs
to be added to fix the issue.

Fixes: 98a276649358 ("power_supply: Add new lp8788 charger driver")
Signed-off-by: Giedrius Statkevičius &lt;giedrius.statkevicius@gmail.com&gt;
Acked-by: Milo Kim &lt;milo.kim@ti.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bdd9968d35f7fcdb76089347d1529bf079534214 upstream.

val might become 7 in which case stime[7] (array of length 7) would be
accessed during the scnprintf call later and that will cause issues.
Obviously, string concatenation is not intended here so just a comma needs
to be added to fix the issue.

Fixes: 98a276649358 ("power_supply: Add new lp8788 charger driver")
Signed-off-by: Giedrius Statkevičius &lt;giedrius.statkevicius@gmail.com&gt;
Acked-by: Milo Kim &lt;milo.kim@ti.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: bq24190_charger: Handle fault before status on interrupt</title>
<updated>2017-06-05T20:16:56+00:00</updated>
<author>
<name>Liam Breck</name>
<email>liam@networkimprov.net</email>
</author>
<published>2017-01-18T17:26:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=15367f1059f9e2831e56cb5a01fd6beaed334fb1'/>
<id>15367f1059f9e2831e56cb5a01fd6beaed334fb1</id>
<content type='text'>
commit ba52e75718784fda1b683ee0bfded72a0b83b047 upstream.

Reading both fault and status registers and logging any fault should
take priority over handling status register update.

Fix by moving the status handling to later in interrupt routine.

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ba52e75718784fda1b683ee0bfded72a0b83b047 upstream.

Reading both fault and status registers and logging any fault should
take priority over handling status register update.

Fix by moving the status handling to later in interrupt routine.

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: bq24190_charger: Don't read fault register outside irq_handle_thread()</title>
<updated>2017-06-05T20:16:56+00:00</updated>
<author>
<name>Liam Breck</name>
<email>liam@networkimprov.net</email>
</author>
<published>2017-01-18T17:26:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=57ab80e6f5a605910c402a416822c33f82eeb986'/>
<id>57ab80e6f5a605910c402a416822c33f82eeb986</id>
<content type='text'>
commit 68abfb8015832ddf728b911769659468efaf8bd9 upstream.

Caching the fault register after a single I2C read may not keep an accurate
value.

Fix by doing two reads in irq_handle_thread() and using the cached value
elsewhere. If a safety timer fault later clears itself, we apparently don't get
an interrupt (INT), however other interrupts would refresh the register cache.

From the data sheet: "When a fault occurs, the charger device sends out INT
 and keeps the fault state in REG09 until the host reads the fault register.
 Before the host reads REG09 and all the faults are cleared, the charger
 device would not send any INT upon new faults. In order to read the
 current fault status, the host has to read REG09 two times consecutively.
 The 1st reads fault register status from the last read [1] and the 2nd reads
 the current fault register status."

[1] presumably a typo; should be "last fault"

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 68abfb8015832ddf728b911769659468efaf8bd9 upstream.

Caching the fault register after a single I2C read may not keep an accurate
value.

Fix by doing two reads in irq_handle_thread() and using the cached value
elsewhere. If a safety timer fault later clears itself, we apparently don't get
an interrupt (INT), however other interrupts would refresh the register cache.

From the data sheet: "When a fault occurs, the charger device sends out INT
 and keeps the fault state in REG09 until the host reads the fault register.
 Before the host reads REG09 and all the faults are cleared, the charger
 device would not send any INT upon new faults. In order to read the
 current fault status, the host has to read REG09 two times consecutively.
 The 1st reads fault register status from the last read [1] and the 2nd reads
 the current fault register status."

[1] presumably a typo; should be "last fault"

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: bq24190_charger: Call power_supply_changed() for relevant component</title>
<updated>2017-06-05T20:16:56+00:00</updated>
<author>
<name>Liam Breck</name>
<email>liam@networkimprov.net</email>
</author>
<published>2017-01-18T17:26:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=167dc75c2faf2a8b237d44de1d1770e59602c382'/>
<id>167dc75c2faf2a8b237d44de1d1770e59602c382</id>
<content type='text'>
commit 2d9fee6a42ea170e4378b3363a7ad385d0e67281 upstream.

We wrongly get uevents for bq24190-charger and bq24190-battery on every
register change.

Fix by checking the association with charger and battery before
emitting uevent(s).

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2d9fee6a42ea170e4378b3363a7ad385d0e67281 upstream.

We wrongly get uevents for bq24190-charger and bq24190-battery on every
register change.

Fix by checking the association with charger and battery before
emitting uevent(s).

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: bq24190_charger: Change first_time flag reset condition</title>
<updated>2017-06-05T20:16:56+00:00</updated>
<author>
<name>Thomas Elste</name>
<email>thomas.elste@imms.de</email>
</author>
<published>2015-05-28T09:05:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d3b941b0085e560e1c522d920646833bf96d6606'/>
<id>d3b941b0085e560e1c522d920646833bf96d6606</id>
<content type='text'>
commit cd054ee16580690830297dbda0abe9c184276d6a upstream.

The initial register reset of BQ24190 generates a charger status change
whose propagation via power_supply_changed is prevented using a flag.
This flag gets never reset so all following events are ignored as well
leading for example to userspace not detecting charger connects/disconnects.

Therefor change the reset condition of first_time flag, so only the
propagation of the first charger status change is prevented.

Signed-off-by: Thomas Elste &lt;thomas.elste@imms.de&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit cd054ee16580690830297dbda0abe9c184276d6a upstream.

The initial register reset of BQ24190 generates a charger status change
whose propagation via power_supply_changed is prevented using a flag.
This flag gets never reset so all following events are ignored as well
leading for example to userspace not detecting charger connects/disconnects.

Therefor change the reset condition of first_time flag, so only the
propagation of the first charger status change is prevented.

Signed-off-by: Thomas Elste &lt;thomas.elste@imms.de&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: bq24190_charger: Install irq_handler_thread() at end of probe()</title>
<updated>2017-06-05T20:16:56+00:00</updated>
<author>
<name>Liam Breck</name>
<email>liam@networkimprov.net</email>
</author>
<published>2017-01-18T17:26:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ebe8733e605cfbac3efa7c68e9fa3c13190ca628'/>
<id>ebe8733e605cfbac3efa7c68e9fa3c13190ca628</id>
<content type='text'>
commit d62acc5ef0621463446091ebd7a345e06e9ab80c upstream.

The device specific data is not fully initialized on
request_threaded_irq(). This may cause a crash when the IRQ handler
tries to reference them.

Fix the issue by installing IRQ handler at the end of the probe.

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d62acc5ef0621463446091ebd7a345e06e9ab80c upstream.

The device specific data is not fully initialized on
request_threaded_irq(). This may cause a crash when the IRQ handler
tries to reference them.

Fix the issue by installing IRQ handler at the end of the probe.

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: bq24190_charger: Call set_mode_host() on pm_resume()</title>
<updated>2017-06-05T20:16:55+00:00</updated>
<author>
<name>Liam Breck</name>
<email>liam@networkimprov.net</email>
</author>
<published>2017-01-18T17:26:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cddddea5a5ddae7cd61b54de55f91b3668c10eca'/>
<id>cddddea5a5ddae7cd61b54de55f91b3668c10eca</id>
<content type='text'>
commit e05ad7e0741ce0505e1df157c62b22b95172bb97 upstream.

pm_resume() does a register_reset() which clears charger host mode.

Fix by calling set_mode_host() after the reset.

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit e05ad7e0741ce0505e1df157c62b22b95172bb97 upstream.

pm_resume() does a register_reset() which clears charger host mode.

Fix by calling set_mode_host() after the reset.

Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
Signed-off-by: Liam Breck &lt;kernel@networkimprov.net&gt;
Acked-by: Mark Greer &lt;mgreer@animalcreek.com&gt;
Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Sebastian Reichel &lt;sre@kernel.org&gt;
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
</feed>
