From: sashiko-bot@kernel.org
To: "Vladyslav Tymoshchuk" <tvlad744@gmail.com>
Cc: linux-usb@vger.kernel.org
Subject: Re: [RFC PATCH 4/4] power: supply: qcom_battmgr: Allow charger changes to wake up the system
Date: Thu, 22 Oct 2026 17:44:54 +0000 [thread overview]
Message-ID: <sashiko-outbox-181883@kernel.org> (raw)
In-Reply-To: <20261022173225.58-1-tvlad744@gmail.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] power: supply: qcom_battmgr: broken wakeup filter on SC8280XP and X1E80100
--
commit 40893dd1782d4c214a14dd6e1c7eba74c6b54afb
Author: Vladyslav Tymoshchuk <tvlad744@gmail.com>
power: supply: qcom_battmgr: Allow charger changes to wake up the system
This commit marks the qcom_battmgr device as wakeup-capable and registers a
wakeup filter with pmic_glink so that USB and wireless charger property
notifications can wake the system when wakeup is enabled in sysfs.
> diff --git a/drivers/power/supply/qcom_battmgr.c b/drivers/power/supply/qcom_battmgr.c
> index 636d6f6acecc5..7a783a3a320d5 100644
> --- a/drivers/power/supply/qcom_battmgr.c
> +++ b/drivers/power/supply/qcom_battmgr.c
[ ... ]
> @@ -1596,6 +1597,20 @@ static void qcom_battmgr_sm8350_callback(struct qcom_battmgr *battmgr,
> complete(&battmgr->ack);
> }
>
> +static bool qcom_battmgr_is_charger_notification(const void *data, size_t len, void *priv)
> +{
> + const struct qcom_battmgr_message *msg = data;
> + unsigned int notification;
> +
> + if (le32_to_cpu(msg->hdr.opcode) != BATTMGR_NOTIFICATION ||
> + len != sizeof(msg->hdr) + sizeof(msg->notification))
> + return false;
> +
> + notification = le32_to_cpu(msg->notification) & 0xff;
> +
> + return notification == NOTIF_USB_PROPERTY || notification == NOTIF_WLS_PROPERTY;
> +}
> +
> static void qcom_battmgr_callback(const void *data, size_t len, void *priv)
> {
> const struct pmic_glink_hdr *hdr = data;
> @@ -1750,6 +1765,10 @@ static int qcom_battmgr_probe(struct auxiliary_device *adev,
> if (IS_ERR(battmgr->client))
> return PTR_ERR(battmgr->client);
>
> + device_set_wakeup_capable(dev, true);
> + pmic_glink_client_set_wakeup_filter(battmgr->client,
> + qcom_battmgr_is_charger_notification);
> +
> pmic_glink_client_register(battmgr->client);
>
> return 0;
[Severity: Medium]
Does wakeup work on sc8280xp and x1e80100 variants with this filter?
In drivers/power/supply/qcom_battmgr.c, qcom_battmgr_probe() unconditionally
marks the device as wakeup-capable and sets the wakeup filter to
qcom_battmgr_is_charger_notification() for all variants. However,
qcom_battmgr_is_charger_notification() only accepts:
return notification == NOTIF_USB_PROPERTY || notification == NOTIF_WLS_PROPERTY;
which belong exclusively to the sm8350 and sm8550 property-get protocol.
As noted in the comment above qcom_battmgr_sc8280xp_set_online():
/*
* The charger supplies' online state comes from the battery status response,
* and the firmware sends no notification of its own when it changes, so
* announce the change here. A supply that is not registered yet announces its
* state when it is.
*/
On sc8280xp and x1e80100 platforms, the firmware only sends battery
notifications rather than dedicated charger property notifications when AC,
USB, or wireless charger online state changes. When userspace enables
power/wakeup on those platforms and a charger is plugged in or unplugged
while suspended, the call chain:
pmic_glink_rpmsg_callback() ->
pmic_glink_is_wakeup_event() ->
qcom_battmgr_is_charger_notification()
will reject every incoming notification, making wakeup a no-op despite being
advertised in sysfs.
Should device_set_wakeup_capable() and pmic_glink_client_set_wakeup_filter()
only be called on the sm8350 and sm8550 variants, or is a different wakeup
condition needed for sc8280xp and x1e80100?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261022164151.592-1-tvlad744@gmail.com?part=4
prev parent reply other threads:[~2026-10-22 17:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-22 16:41 [RFC PATCH 0/4] soc: qcom: pmic_glink: Hold back notifications over system sleep Vladyslav Tymoshchuk
2026-10-22 16:41 ` [RFC PATCH 1/4] " Vladyslav Tymoshchuk
2026-10-22 18:03 ` sashiko-bot
2026-10-22 16:41 ` [RFC PATCH 2/4] soc: qcom: pmic_glink: Report wakeup events on behalf of clients Vladyslav Tymoshchuk
2026-10-22 17:55 ` sashiko-bot
2026-10-22 16:41 ` [RFC PATCH 3/4] usb: typec: ucsi: glink: Wake up the system on connector changes Vladyslav Tymoshchuk
2026-10-22 17:36 ` sashiko-bot
2026-10-22 17:32 ` [RFC PATCH 4/4] power: supply: qcom_battmgr: Allow charger changes to wake up the system Vladyslav Tymoshchuk
2026-10-22 17:44 ` sashiko-bot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-181883@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=tvlad744@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.