<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/power, branch v4.4.211</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>PM / AVS: SmartReflex: NULL check before some freeing functions is not needed</title>
<updated>2019-12-05T14:26:40+00:00</updated>
<author>
<name>Thomas Meyer</name>
<email>thomas@m3y3r.de</email>
</author>
<published>2018-12-02T20:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=587c7c9fc221b90c1c13a46b9be0df340dd564d3'/>
<id>587c7c9fc221b90c1c13a46b9be0df340dd564d3</id>
<content type='text'>
[ Upstream commit 14d338a857f05f894ba3badd9e6d3039c68b8180 ]

NULL check before some freeing functions is not needed.

Signed-off-by: Thomas Meyer &lt;thomas@m3y3r.de&gt;
Reviewed-by: Kevin Hilman &lt;khilman@baylibre.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 14d338a857f05f894ba3badd9e6d3039c68b8180 ]

NULL check before some freeing functions is not needed.

Signed-off-by: Thomas Meyer &lt;thomas@m3y3r.de&gt;
Reviewed-by: Kevin Hilman &lt;khilman@baylibre.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: twl4030_charger: disable eoc interrupt on linear charge</title>
<updated>2019-11-25T14:54:02+00:00</updated>
<author>
<name>Andreas Kemnade</name>
<email>andreas@kemnade.info</email>
</author>
<published>2018-09-17T05:00:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6aa5efca2ba003cbd99f3489a82ee8e69611bfcc'/>
<id>6aa5efca2ba003cbd99f3489a82ee8e69611bfcc</id>
<content type='text'>
[ Upstream commit 079cdff3d0a09c5da10ae1be35def7a116776328 ]

This avoids getting woken up from suspend after power interruptions
when the bci wrongly thinks the battery is full just because
of input current going low because of low input power

Signed-off-by: Andreas Kemnade &lt;andreas@kemnade.info&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 079cdff3d0a09c5da10ae1be35def7a116776328 ]

This avoids getting woken up from suspend after power interruptions
when the bci wrongly thinks the battery is full just because
of input current going low because of low input power

Signed-off-by: Andreas Kemnade &lt;andreas@kemnade.info&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: twl4030_charger: fix charging current out-of-bounds</title>
<updated>2019-11-25T14:54:02+00:00</updated>
<author>
<name>Andreas Kemnade</name>
<email>andreas@kemnade.info</email>
</author>
<published>2018-09-17T05:20:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4e42816ac16bb15b58e3304b4c5036141cc38ef5'/>
<id>4e42816ac16bb15b58e3304b4c5036141cc38ef5</id>
<content type='text'>
[ Upstream commit 8314c212f995bc0d06b54ad02ef0ab4089781540 ]

the charging current uses unsigned int variables, if we step back
if the current is still low, we would run into negative which
means setting the target to a huge value.
Better add checks here.

Signed-off-by: Andreas Kemnade &lt;andreas@kemnade.info&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 8314c212f995bc0d06b54ad02ef0ab4089781540 ]

the charging current uses unsigned int variables, if we step back
if the current is still low, we would run into negative which
means setting the target to a huge value.
Better add checks here.

Signed-off-by: Andreas Kemnade &lt;andreas@kemnade.info&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: max8998-charger: Fix platform data retrieval</title>
<updated>2019-11-25T14:53:59+00:00</updated>
<author>
<name>Tomasz Figa</name>
<email>tomasz.figa@gmail.com</email>
</author>
<published>2018-07-17T16:05:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=709426fc57462a42618ac3d63db852b292d19e49'/>
<id>709426fc57462a42618ac3d63db852b292d19e49</id>
<content type='text'>
[ Upstream commit cb90a2c6f77fe9b43d1e3f759bb2f13fe7fa1811 ]

Since the max8998 MFD driver supports instantiation by DT, platform data
retrieval is handled in MFD probe and cell drivers should get use
the pdata field of max8998_dev struct to obtain them.

Fixes: ee999fb3f17f ("mfd: max8998: Add support for Device Tree")
Signed-off-by: Tomasz Figa &lt;tomasz.figa@gmail.com&gt;
Signed-off-by: Paweł Chmiel &lt;pawel.mikolaj.chmiel@gmail.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit cb90a2c6f77fe9b43d1e3f759bb2f13fe7fa1811 ]

Since the max8998 MFD driver supports instantiation by DT, platform data
retrieval is handled in MFD probe and cell drivers should get use
the pdata field of max8998_dev struct to obtain them.

Fixes: ee999fb3f17f ("mfd: max8998: Add support for Device Tree")
Signed-off-by: Tomasz Figa &lt;tomasz.figa@gmail.com&gt;
Signed-off-by: Paweł Chmiel &lt;pawel.mikolaj.chmiel@gmail.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: ab8500_fg: silence uninitialized variable warnings</title>
<updated>2019-11-25T14:53:58+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2018-09-10T08:39:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=52741990fa566179fa2cedce505f3e56e0a32433'/>
<id>52741990fa566179fa2cedce505f3e56e0a32433</id>
<content type='text'>
[ Upstream commit 54baff8d4e5dce2cef61953b1dc22079cda1ddb1 ]

If kstrtoul() fails then we print "charge_full" when it's uninitialized.
The debug printk doesn't add anything so I deleted it and cleaned these
two functions up a bit.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 54baff8d4e5dce2cef61953b1dc22079cda1ddb1 ]

If kstrtoul() fails then we print "charge_full" when it's uninitialized.
The debug printk doesn't add anything so I deleted it and cleaned these
two functions up a bit.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: sysfs: prevent endless uevent loop with CONFIG_POWER_SUPPLY_DEBUG</title>
<updated>2019-06-11T10:23:49+00:00</updated>
<author>
<name>Andrey Smirnov</name>
<email>andrew.smirnov@gmail.com</email>
</author>
<published>2019-04-24T07:16:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fc0208b3428d67b04b5bb66ee7dce1d555c0053a'/>
<id>fc0208b3428d67b04b5bb66ee7dce1d555c0053a</id>
<content type='text'>
[ Upstream commit 349ced9984ff540ce74ca8a0b2e9b03dc434b9dd ]

Fix a similar endless event loop as was done in commit
8dcf32175b4e ("i2c: prevent endless uevent loop with
CONFIG_I2C_DEBUG_CORE"):

  The culprit is the dev_dbg printk in the i2c uevent handler. If
  this is activated (for instance by CONFIG_I2C_DEBUG_CORE) it results
  in an endless loop with systemd-journald.

  This happens if user-space scans the system log and reads the uevent
  file to get information about a newly created device, which seems
  fair use to me. Unfortunately reading the "uevent" file uses the
  same function that runs for creating the uevent for a new device,
  generating the next syslog entry

Both CONFIG_I2C_DEBUG_CORE and CONFIG_POWER_SUPPLY_DEBUG were reported
in https://bugs.freedesktop.org/show_bug.cgi?id=76886 but only former
seems to have been fixed. Drop debug prints as it was done in I2C
subsystem to resolve the issue.

Signed-off-by: Andrey Smirnov &lt;andrew.smirnov@gmail.com&gt;
Cc: Chris Healy &lt;cphealy@gmail.com&gt;
Cc: linux-pm@vger.kernel.org
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 349ced9984ff540ce74ca8a0b2e9b03dc434b9dd ]

Fix a similar endless event loop as was done in commit
8dcf32175b4e ("i2c: prevent endless uevent loop with
CONFIG_I2C_DEBUG_CORE"):

  The culprit is the dev_dbg printk in the i2c uevent handler. If
  this is activated (for instance by CONFIG_I2C_DEBUG_CORE) it results
  in an endless loop with systemd-journald.

  This happens if user-space scans the system log and reads the uevent
  file to get information about a newly created device, which seems
  fair use to me. Unfortunately reading the "uevent" file uses the
  same function that runs for creating the uevent for a new device,
  generating the next syslog entry

Both CONFIG_I2C_DEBUG_CORE and CONFIG_POWER_SUPPLY_DEBUG were reported
in https://bugs.freedesktop.org/show_bug.cgi?id=76886 but only former
seems to have been fixed. Drop debug prints as it was done in I2C
subsystem to resolve the issue.

Signed-off-by: Andrey Smirnov &lt;andrew.smirnov@gmail.com&gt;
Cc: Chris Healy &lt;cphealy@gmail.com&gt;
Cc: linux-pm@vger.kernel.org
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: olpc_battery: correct the temperature units</title>
<updated>2019-01-13T09:05:34+00:00</updated>
<author>
<name>Lubomir Rintel</name>
<email>lkundrak@v3.sk</email>
</author>
<published>2018-11-16T16:23:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1bd63edb92acf909db66e22bbfb51a43aeb5743a'/>
<id>1bd63edb92acf909db66e22bbfb51a43aeb5743a</id>
<content type='text'>
commit ed54ffbe554f0902689fd6d1712bbacbacd11376 upstream.

According to [1] and [2], the temperature values are in tenths of degree
Celsius. Exposing the Celsius value makes the battery appear on fire:

  $ upower -i /org/freedesktop/UPower/devices/battery_olpc_battery
  ...
      temperature:         236.9 degrees C

Tested on OLPC XO-1 and OLPC XO-1.75 laptops.

[1] include/linux/power_supply.h
[2] Documentation/power/power_supply_class.txt

Fixes: fb972873a767 ("[BATTERY] One Laptop Per Child power/battery driver")
Cc: stable@vger.kernel.org
Signed-off-by: Lubomir Rintel &lt;lkundrak@v3.sk&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ed54ffbe554f0902689fd6d1712bbacbacd11376 upstream.

According to [1] and [2], the temperature values are in tenths of degree
Celsius. Exposing the Celsius value makes the battery appear on fire:

  $ upower -i /org/freedesktop/UPower/devices/battery_olpc_battery
  ...
      temperature:         236.9 degrees C

Tested on OLPC XO-1 and OLPC XO-1.75 laptops.

[1] include/linux/power_supply.h
[2] Documentation/power/power_supply_class.txt

Fixes: fb972873a767 ("[BATTERY] One Laptop Per Child power/battery driver")
Cc: stable@vger.kernel.org
Signed-off-by: Lubomir Rintel &lt;lkundrak@v3.sk&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>power: vexpress: fix corruption in notifier registration</title>
<updated>2018-10-10T06:52:04+00:00</updated>
<author>
<name>Sudeep Holla</name>
<email>sudeep.holla@arm.com</email>
</author>
<published>2018-06-18T15:54:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=97294c24f8682913458d11bcf60dd923c0ee24b2'/>
<id>97294c24f8682913458d11bcf60dd923c0ee24b2</id>
<content type='text'>
[ Upstream commit 09bebb1adb21ecd04adf7ccb3b06f73e3a851e93 ]

Vexpress platforms provide two different restart handlers: SYS_REBOOT
that restart the entire system, while DB_RESET only restarts the
daughter board containing the CPU. DB_RESET is overridden by SYS_REBOOT
if it exists.

notifier_chain_register used in register_restart_handler by design
relies on notifiers to be registered once only, however vexpress restart
notifier can get registered twice. When this happen it corrupts list
of notifiers, as result some notifiers can be not called on proper
event, traverse on list can be cycled forever, and second unregister
can access already freed memory.

So far, since this was the only restart handler in the system, no issue
was observed even if the same notifier was registered twice. However
commit 6c5c0d48b686 ("watchdog: sp805: add restart handler") added
support for SP805 restart handlers and since the system under test
contains two vexpress restart and two SP805 watchdog instances, it was
observed that during the boot traversing the restart handler list looped
forever as there's a cycle in that list resulting in boot hang.

This patch fixes the issues by ensuring that the notifier is installed
only once.

Cc: Sebastian Reichel &lt;sre@kernel.org&gt;
Signed-off-by: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Fixes: 46c99ac66222 ("power/reset: vexpress: Register with kernel restart handler")
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.co.uk&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 09bebb1adb21ecd04adf7ccb3b06f73e3a851e93 ]

Vexpress platforms provide two different restart handlers: SYS_REBOOT
that restart the entire system, while DB_RESET only restarts the
daughter board containing the CPU. DB_RESET is overridden by SYS_REBOOT
if it exists.

notifier_chain_register used in register_restart_handler by design
relies on notifiers to be registered once only, however vexpress restart
notifier can get registered twice. When this happen it corrupts list
of notifiers, as result some notifiers can be not called on proper
event, traverse on list can be cycled forever, and second unregister
can access already freed memory.

So far, since this was the only restart handler in the system, no issue
was observed even if the same notifier was registered twice. However
commit 6c5c0d48b686 ("watchdog: sp805: add restart handler") added
support for SP805 restart handlers and since the system under test
contains two vexpress restart and two SP805 watchdog instances, it was
observed that during the boot traversing the restart handler list looped
forever as there's a cycle in that list resulting in boot hang.

This patch fixes the issues by ensuring that the notifier is installed
only once.

Cc: Sebastian Reichel &lt;sre@kernel.org&gt;
Signed-off-by: Sudeep Holla &lt;sudeep.holla@arm.com&gt;
Fixes: 46c99ac66222 ("power/reset: vexpress: Register with kernel restart handler")
Signed-off-by: Sebastian Reichel &lt;sebastian.reichel@collabora.co.uk&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: supply: pda_power: move from timer to delayed_work</title>
<updated>2018-03-24T09:58:45+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=448de2395f966c6d0f5befede0b582619dedb89e'/>
<id>448de2395f966c6d0f5befede0b582619dedb89e</id>
<content type='text'>
[ Upstream commit 633e8799ddc09431be2744c4a1efdbda13af2b0b ]

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;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 633e8799ddc09431be2744c4a1efdbda13af2b0b ]

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;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>power: bq27xxx_battery: mark some symbols __maybe_unused</title>
<updated>2018-02-25T10:03:50+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2018-02-20T11:54:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e8988dbe21b0449e1e5393e92fafd1f19b7db197'/>
<id>e8988dbe21b0449e1e5393e92fafd1f19b7db197</id>
<content type='text'>
Without the I2C driver, we get a few warnings:

drivers/power/bq27xxx_battery.c:288:12: error: 'bq27xxx_regs' defined but not used [-Werror=unused-variable]
 static u8 *bq27xxx_regs[] = {
            ^
drivers/power/bq27xxx_battery.c:994:12: error: 'bq27xxx_powersupply_init' defined but not used [-Werror=unused-function]
 static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
            ^
drivers/power/bq27xxx_battery.c:1029:13: error: 'bq27xxx_powersupply_unregister' defined but not used [-Werror=unused-function]
 static void bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
             ^

In mainline kernels, this was addressed by a larger rework in 703df6c09795 ("power:
bq27xxx_battery: Reorganize I2C into a module"). We probably don't want this backported
into stable kernels, so instead let's shut up the warnings by marking the symbols
as __maybe_unused.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without the I2C driver, we get a few warnings:

drivers/power/bq27xxx_battery.c:288:12: error: 'bq27xxx_regs' defined but not used [-Werror=unused-variable]
 static u8 *bq27xxx_regs[] = {
            ^
drivers/power/bq27xxx_battery.c:994:12: error: 'bq27xxx_powersupply_init' defined but not used [-Werror=unused-function]
 static int bq27xxx_powersupply_init(struct bq27xxx_device_info *di,
            ^
drivers/power/bq27xxx_battery.c:1029:13: error: 'bq27xxx_powersupply_unregister' defined but not used [-Werror=unused-function]
 static void bq27xxx_powersupply_unregister(struct bq27xxx_device_info *di)
             ^

In mainline kernels, this was addressed by a larger rework in 703df6c09795 ("power:
bq27xxx_battery: Reorganize I2C into a module"). We probably don't want this backported
into stable kernels, so instead let's shut up the warnings by marking the symbols
as __maybe_unused.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
