- 28 Aug, 2020 12 commits
-
-
Jonathan Bakker authored
In commit 830ae442 ("extcon: Remove the deprecated extcon functions") the function extcon_register_interest became a no-op returning an error, leading to non-functional behaviour in charger-manager. Additionally, a translation table is needed between the text representation of the extcon cable names and their IDs is needed. In order to retain DT compatibility, TA and CHARGE-DOWNSTREAM are added as they were present up until commit 11eecf91 ("extcon: Modify the id and name of external connector") Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonghwa Lee authored
Prevents direct charging control in cable notification and only set the input current limit according to cable type. Leave the enabling of charing to cm_monitor() where charging management proceeds. We may lose a few ms to enable charging compared to before, but it's more important that charging is enabled always in safe context. Signed-off-by:
Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by:
Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonghwa Lee authored
cm_monitor(), where charging management starts, checks various charging condition sequentially to decide next charging operation. However, as it follows sequential process, cascaded if statements, it does some jobs which have already done in the previous stage. This results in a delay in decision making. Moreover, starting point of charging is spread all around which makes maintain code and debugging difficult. Both of the problems mentioned above become clean if it manages battery charging focusing on battery status not following sequential condition checking. Now, cm_monitor() moves battery state diagram and does the optimal operation for current state. As a result, it reduces whole monitoring time almost in half. Signed-off-by:
Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by:
Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonghwa Lee authored
Current charger-manager calls power_supply_changed() whenever charging status is changed. Remove the separated power_supply_changed() calls and let it be called at end of try_charger_enable() function which is called to set charging/discharging. Signed-off-by:
Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by:
Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonghwa Lee authored
The POWER_SUPPLY_CHARGE_NOW/FULL property reflects battery's charges in uAh unit, but charger-manager has been used it wrongly as a status field. Signed-off-by:
Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by:
Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonathan Bakker authored
We were using POWER_SUPPLY_PROP_TEMP if the temperature was coming via the fuel gauge and POWER_SUPPLY_PROP_TEMP_AMBIENT if it was coming via the thermal framework. Since they're mutually exclusive in the driver and we don't know if the thermal framework is ambient or not, unify them both to use POWER_SUPPLY_PROP_TEMP. Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonghwa Lee authored
cm_notify_event() was introduced to get an event associated with the battery status externally (ie in board files), but no one ever used it. Moreover it makes charger manager driver more complicated. Drop the function and all data related to it to simplify the driver. Signed-off-by:
Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by:
Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Jonghwa Lee authored
Whenever the battery status is changed, charger manager triggers a uevent through a private interface. Modify it to use power_supply_changed() since it belongs to the power supply subsystem. Signed-off-by:
Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by:
Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by:
Jonathan Bakker <xc-racer2@live.ca> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Andreas Kemnade authored
Both chips have charger and a fuel gauge. This adds basic support for displaying the state of the battery and the input power, settings are not modified. There are some defaults set via OTP. Charging also starts after plugging USB. Known issues of the fuel gauge: There are drivers in the wild which disable the fuel gauge at shutdown. If a kernel is booted without fuel gauge support, after such a driver has been used, the fuel gauge will stay off and decalibrate. If this driver is used after that, it might display wrong values for charge level. Signed-off-by:
Andreas Kemnade <andreas@kemnade.info> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Ikjoon Jang authored
Current sbs-battery considers all smbus errors as disconnection events when battery-detect pin isn't supplied, and restored to present state back when any successful transaction is made. This can lead to unwanted state changes between present and !present when there's one i2c error and other following commands were successful. This patch provides a unified way of checking presence by calling sbs_get_battery_presence_and_health() when detect pin is not used. Signed-off-by:
Ikjoon Jang <ikjn@chromium.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Sebastian Reichel authored
Simplify the driver and remove the DT specific code by using the generic device property framework. Reviewed-by:
Dmitry Osipenko <digetx@gmail.com> Tested-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Sebastian Reichel authored
There are no platforms using the pdata support, so let's drop it to simplify the driver. Reviewed-by:
Dmitry Osipenko <digetx@gmail.com> Tested-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
- 27 Aug, 2020 7 commits
-
-
Dan Murphy authored
Update the license to the SPDX licensing format. Signed-off-by:
Dan Murphy <dmurphy@ti.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Colin Ian King authored
There is a spelling mistake in a dev_dbg message. Fix it. Signed-off-by:
Colin Ian King <colin.king@canonical.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Ikjoon Jang authored
This patch enables calling sbs_get_battery_presence_and_health() without checking its chip type. No functional changes. Signed-off-by:
Ikjoon Jang <ikjn@chromium.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Ikjoon Jang authored
Remove unused enable_detection flag which is always true after the device is proved. Signed-off-by:
Ikjoon Jang <ikjn@chromium.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Sebastian Reichel authored
Add new charge-current-limit feature to gpio-charger. Reviewed-by:
Linus Walleij <linus.walleij@linaro.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Sebastian Reichel authored
Immutable branch between arm and power-supply for gpio-charger for 5.10 This immutable branch drops legacy gpio API from gpio-charger and updates the remaining users to the new gpiod API instead. Signed-off-by:
Sebastian Reichel <sre@kernel.org>
-
Linus Walleij authored
This converts the GPIO charger to use exclusively GPIO descriptors, moving the two remaining platforms passing global GPIO numbers over to using a GPIO descriptor table. Signed-off-by:
Linus Walleij <linus.walleij@linaro.org> Cc: Robert Jarzmik <robert.jarzmik@free.fr> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
- 26 Aug, 2020 8 commits
-
-
Krzysztof Kozlowski authored
Common pattern of handling deferred probe can be simplified with dev_err_probe(). Less code and also it prints the error value. Signed-off-by:
Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by:
David Lechner <david@lechnology.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Krzysztof Kozlowski authored
Common pattern of handling deferred probe can be simplified with dev_err_probe(). Less code and also it prints the error value. Signed-off-by:
Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Krzysztof Kozlowski authored
Common pattern of handling deferred probe can be simplified with dev_err_probe(). Less code and also it prints the error value. Signed-off-by:
Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Krzysztof Kozlowski authored
Common pattern of handling deferred probe can be simplified with dev_err_probe(). Less code and also it prints the error value. Signed-off-by:
Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Krzysztof Kozlowski authored
Common pattern of handling deferred probe can be simplified with dev_err_probe(). Less code and also it prints the error value. Signed-off-by:
Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Subbaraman Narayanamurthy authored
Currently, power_supply framework supports only Battery, UPS, Mains and USB power_supply_type. Add wireless power_supply_type so that the drivers which supports wireless can register a power supply class device with POWER_SUPPLY_TYPE_WIRELESS. Signed-off-by:
Subbaraman Narayanamurthy <subbaram@codeaurora.org> Signed-off-by:
Guru Das Srinagesh <gurus@codeaurora.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Dmitry Osipenko authored
Let's simply disable/enable IRQ rather than use a mutex that protects from racing with the interrupt handler. The result of this patch is that it's a bit easier now to follow the driver's code. Tested-by:
David Heidelberg <david@ixit.cz> Signed-off-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
David Heidelberg authored
SMB347 is a charger and not a battery driver. Secondly, power-supply core now supports monitored-battery. So the 'fake' battery doesn't do anything useful for us, and thus, it should be removed. Transfer smb347-battery functionality into smb347-mains and smb347-usb. Reviewed-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
David Heidelberg <david@ixit.cz> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
- 25 Aug, 2020 9 commits
-
-
David Heidelberg authored
SMB345 tested on Nexus 7 2013. Based on: - https://patchwork.kernel.org/patch/4922431/ - https://patchwork.ozlabs.org/patch/666877/Signed-off-by:
David Heidelberg <david@ixit.cz> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
David Heidelberg authored
This patch adds device-tree support to the SMB347 charger driver. All legacy platform data now can be parsed from DT. Because of that and since SMB347 is an I2C client driver, the IRQ number can be passed automatically through client's IRQ variable if it's defined in DT. There is no need to map GPIO to IRQ manually in the case of DT. This patch is based on the original work made by: Jonghwa Lee <jonghwa3.lee@samsung.com> Link: https://patchwork.kernel.org/patch/4284731/Signed-off-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
David Heidelberg <david@ixit.cz> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Dmitry Osipenko authored
The generic battery temperature properties are already supported by the power-supply core. Let's support parsing of the common battery temperature properties from a device-tree. Signed-off-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
David Heidelberg authored
Summit SMB3xx series is a Programmable Switching Li+ Battery Charger. This patch adds device-tree binding for Summit SMB345, SMB347 and SMB358 chargers. Signed-off-by:
David Heidelberg <david@ixit.cz> Signed-off-by:
Dmitry Osipenko <digetx@gmail.com> Reviewed-by:
Rob Herring <robh@kernel.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Dmitry Osipenko authored
Document generic battery temperature properties. Signed-off-by:
Dmitry Osipenko <digetx@gmail.com> Reviewed-by:
Rob Herring <robh@kernel.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
David Heidelberg authored
Simplify code, more convenient to use with Device Tree. Reviewed-by:
Dmitry Osipenko <digetx@gmail.com> Signed-off-by:
David Heidelberg <david@ixit.cz> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Elliot Berman authored
Convert reboot-mode bindings to YAML. Signed-off-by:
Elliot Berman <eberman@codeaurora.org> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Rikard Falkeborn authored
Constify a number of static variables that are not modified to allow the compiler to put them in read-only memory. Signed-off-by:
Rikard Falkeborn <rikard.falkeborn@gmail.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
Alex Dewar authored
This battery appears only to be used by a single board (DA850), so it makes sense to add this to the Kconfig file so that users don't build the module unnecessarily. It currently seems to be built for the x86 Arch Linux kernel where it's probably not doing much good. Signed-off-by:
Alex Dewar <alex.dewar90@gmail.com> Acked-by:
David Lechner <david@lechnology.com> Signed-off-by:
Sebastian Reichel <sebastian.reichel@collabora.com>
-
- 16 Aug, 2020 4 commits
-
-
Linus Torvalds authored
-
git://git.kernel.dk/linux-blockLinus Torvalds authored
Pull io_uring fixes from Jens Axboe: "A few differerent things in here. Seems like syzbot got some more io_uring bits wired up, and we got a handful of reports and the associated fixes are in here. General fixes too, and a lot of them marked for stable. Lastly, a bit of fallout from the async buffered reads, where we now more easily trigger short reads. Some applications don't really like that, so the io_read() code now handles short reads internally, and got a cleanup along the way so that it's now easier to read (and documented). We're now passing tests that failed before" * tag 'io_uring-5.9-2020-08-15' of git://git.kernel.dk/linux-block: io_uring: short circuit -EAGAIN for blocking read attempt io_uring: sanitize double poll handling io_uring: internally retry short reads io_uring: retain iov_iter state over io_read/io_write calls task_work: only grab task signal lock when needed io_uring: enable lookup of links holding inflight files io_uring: fail poll arm on queue proc failure io_uring: hold 'ctx' reference around task_work queue + execute fs: RWF_NOWAIT should imply IOCB_NOIO io_uring: defer file table grabbing request cleanup for locked requests io_uring: add missing REQ_F_COMP_LOCKED for nested requests io_uring: fix recursive completion locking on oveflow flush io_uring: use TWA_SIGNAL for task_work uncondtionally io_uring: account locked memory before potential error case io_uring: set ctx sq/cq entry count earlier io_uring: Fix NULL pointer dereference in loop_rw_iter() io_uring: add comments on how the async buffered read retry works io_uring: io_async_buf_func() need not test page bit
-
Mike Rapoport authored
Commit 1355c31e ("asm-generic: pgalloc: provide generic pmd_alloc_one() and pmd_free_one()") converted parisc to use generic version of pmd_alloc_one() but it missed the fact that parisc uses order-1 pages for PMD. Restore the original version of pmd_alloc_one() for parisc, just use GFP_PGTABLE_KERNEL that implies __GFP_ZERO instead of GFP_KERNEL and memset. Fixes: 1355c31e ("asm-generic: pgalloc: provide generic pmd_alloc_one() and pmd_free_one()") Reported-by:
Meelis Roos <mroos@linux.ee> Signed-off-by:
Mike Rapoport <rppt@linux.ibm.com> Tested-by:
Meelis Roos <mroos@linux.ee> Reviewed-by:
Matthew Wilcox (Oracle) <willy@infradead.org> Link: https://lkml.kernel.org/r/9f2b5ebd-e4a4-0fa1-6cd3-4b9f6892d1ad@linux.eeSigned-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
git://git.kernel.dk/linux-blockLinus Torvalds authored
Pull block fixes from Jens Axboe: "A few fixes on the block side of things: - Discard granularity fix (Coly) - rnbd cleanups (Guoqing) - md error handling fix (Dan) - md sysfs fix (Junxiao) - Fix flush request accounting, which caused an IO slowdown for some configurations (Ming) - Properly propagate loop flag for partition scanning (Lennart)" * tag 'block-5.9-2020-08-14' of git://git.kernel.dk/linux-block: block: fix double account of flush request's driver tag loop: unset GENHD_FL_NO_PART_SCAN on LOOP_CONFIGURE rnbd: no need to set bi_end_io in rnbd_bio_map_kern rnbd: remove rnbd_dev_submit_io md-cluster: Fix potential error pointer dereference in resize_bitmaps() block: check queue's limits.discard_granularity in __blkdev_issue_discard() md: get sysfs entry after redundancy attr group create
-