From: Mingyou Chen <qby140326@gmail.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Hans de Goede" <hansg@kernel.org>,
"Ilya Gladyshev" <ilya.gladyshev@linux.dev>
Cc: KentoNion <kento@kekto.ru>,
platform-driver-x86@vger.kernel.org,
"ted eric" <ericted8810@gmail.com>, "Armin Wolf" <W_Armin@gmx.de>,
linux-kernel@vger.kernel.org, "Chris Taraszka" <chris@miget.com>,
"Matias Civadda" <matias.civadda2342001@gmail.com>,
"高 俊文" <btx342@gmail.com>, powerfullz <wleizc7319@gmail.com>,
"孙 誉铭" <wolf109909@outlook.com>,
"Miloš Vlku" <vlku.milos.fun@gmail.com>, Rsplwe <i@rsplwe.com>,
"Bozhen Peng" <bozhenpeng93@gmail.com>,
"Anton Karasev" <uselessfire@gmail.com>,
"Jame Jao" <jaojame6@gmail.com>,
"Mingyou Chen" <qby140326@gmail.com>
Subject: [PATCH v12 6/6] platform/x86: bitland-mifs-wmi: Fallback to balanced platform profile if last performance profile is not available
Date: Mon, 12 Oct 2026 21:36:48 +0800 [thread overview]
Message-ID: <20261012133648.132363-7-qby140326@gmail.com> (raw)
In-Reply-To: <20261012133648.132363-1-qby140326@gmail.com>
On Bitland laptops, performance profiles require an external power
supply. If the system enters suspend in a performance profile and the AC
adapter is unplugged while the machine is asleep, laptop_profile_set()
fails with -EOPNOTSUPP during resume when attempting to re-apply
saved_profile.
Returning an error from the resume callback simply because the power
cable was removed during sleep is undesirable, as the device is
otherwise
fully functional.
Gracefully handle this condition by falling back to
PLATFORM_PROFILE_BALANCED
whenever restoring the saved profile returns -EOPNOTSUPP. Update
saved_profile accordingly and notify user space via
platform_profile_notify() so daemons such as power-profiles-daemon stay
in sync with the actual hardware state.
Signed-off-by: Mingyou Chen <qby140326@gmail.com>
---
drivers/platform/x86/bitland-mifs-wmi.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/bitland-mifs-wmi.c b/drivers/platform/x86/bitland-mifs-wmi.c
index fac1cdbbd778..44b16b7b4034 100644
--- a/drivers/platform/x86/bitland-mifs-wmi.c
+++ b/drivers/platform/x86/bitland-mifs-wmi.c
@@ -392,13 +392,27 @@ static int bitland_mifs_wmi_suspend(struct device *dev)
static int bitland_mifs_wmi_resume(struct device *dev)
{
struct bitland_mifs_wmi_data *data = dev_get_drvdata(dev);
+ int ret;
/* Skip event device */
if (!data->pp_dev)
return 0;
+ ret = laptop_profile_set(dev, data->saved_profile);
+
+ if (ret == -EOPNOTSUPP && data->saved_profile != PLATFORM_PROFILE_BALANCED) {
+ dev_dbg(dev, "Cannot restore profile %d (likely on battery), falling back to balanced\n",
+ data->saved_profile);
+
+ ret = laptop_profile_set(dev, PLATFORM_PROFILE_BALANCED);
+ if (!ret) {
+ data->saved_profile = PLATFORM_PROFILE_BALANCED;
+ platform_profile_notify(data->pp_dev);
+ }
+ }
+
dev_dbg(dev, "Resuming, restoring profile %d\n", data->saved_profile);
- return laptop_profile_set(dev, data->saved_profile);
+ return ret;
}
static DEFINE_SIMPLE_DEV_PM_OPS(bitland_mifs_wmi_pm_ops,
--
2.55.0
prev parent reply other threads:[~2026-10-12 13:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 13:36 [PATCH v12 0/6] Merge redmi-wmi into bitland-mifs-wmi Mingyou Chen
2026-10-12 13:36 ` [PATCH v12 1/6] MAINTAINERS: Add maintainer entry of bitland-mifs-wmi driver Mingyou Chen
2026-10-12 13:36 ` [PATCH v12 2/6] platform/x86: bitland-mifs-wmi: Merge the function of redmi-wmi into the bitland driver Mingyou Chen
2026-10-12 13:36 ` [PATCH v12 3/6] platform/x86: bitland-mifs-wmi: Add Redmi mic-mute key entries Mingyou Chen
2026-10-12 13:36 ` [PATCH v12 4/6] platform/x86: redmi-wmi: Drop redmi-wmi driver Mingyou Chen
2026-10-12 13:36 ` [PATCH v12 5/6] platform/x86: bitland-mifs-wmi: Add quirks table Mingyou Chen
2026-10-12 13:36 ` Mingyou Chen [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=20261012133648.132363-7-qby140326@gmail.com \
--to=qby140326@gmail.com \
--cc=W_Armin@gmx.de \
--cc=bozhenpeng93@gmail.com \
--cc=btx342@gmail.com \
--cc=chris@miget.com \
--cc=ericted8810@gmail.com \
--cc=hansg@kernel.org \
--cc=i@rsplwe.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=ilya.gladyshev@linux.dev \
--cc=jaojame6@gmail.com \
--cc=kento@kekto.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=matias.civadda2342001@gmail.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=uselessfire@gmail.com \
--cc=vlku.milos.fun@gmail.com \
--cc=wleizc7319@gmail.com \
--cc=wolf109909@outlook.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®