From: Benjamin Bara <bbara93@gmail.com>
To: lee@kernel.org
Cc: dmitry.osipenko@collabora.com, jonathanh@nvidia.com,
treding@nvidia.com, richard.leitner@linux.dev,
benjamin.bara@skidata.com, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 1/2] mfd: tps6586x: use devm-based power off handler
Date: Mon, 20 Mar 2023 23:03:44 +0100 [thread overview]
Message-ID: <20230320220345.1463687-2-bbara93@gmail.com> (raw)
In-Reply-To: <20230320220345.1463687-1-bbara93@gmail.com>
From: Benjamin Bara <benjamin.bara@skidata.com>
Convert the power off handler to a devm-based power off handler.
Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
---
drivers/mfd/tps6586x.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/drivers/mfd/tps6586x.c b/drivers/mfd/tps6586x.c
index 2d947f3f606a..4869155437cb 100644
--- a/drivers/mfd/tps6586x.c
+++ b/drivers/mfd/tps6586x.c
@@ -22,6 +22,7 @@
#include <linux/err.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
+#include <linux/reboot.h>
#include <linux/regmap.h>
#include <linux/of.h>
@@ -457,13 +458,16 @@ static const struct regmap_config tps6586x_regmap_config = {
.cache_type = REGCACHE_RBTREE,
};
-static struct device *tps6586x_dev;
-static void tps6586x_power_off(void)
+static int tps6586x_power_off_handler(struct sys_off_data *data)
{
- if (tps6586x_clr_bits(tps6586x_dev, TPS6586X_SUPPLYENE, EXITSLREQ_BIT))
- return;
+ int ret;
+ struct device *tps6586x_dev = (struct device *)data->cb_data;
+
+ ret = tps6586x_clr_bits(tps6586x_dev, TPS6586X_SUPPLYENE, EXITSLREQ_BIT);
+ if (ret)
+ return ret;
- tps6586x_set_bits(tps6586x_dev, TPS6586X_SUPPLYENE, SLEEP_MODE_BIT);
+ return tps6586x_set_bits(tps6586x_dev, TPS6586X_SUPPLYENE, SLEEP_MODE_BIT);
}
static void tps6586x_print_version(struct i2c_client *client, int version)
@@ -559,9 +563,13 @@ static int tps6586x_i2c_probe(struct i2c_client *client)
goto err_add_devs;
}
- if (pdata->pm_off && !pm_power_off) {
- tps6586x_dev = &client->dev;
- pm_power_off = tps6586x_power_off;
+ if (pdata->pm_off) {
+ ret = devm_register_power_off_handler(&client->dev, &tps6586x_power_off_handler,
+ &client->dev);
+ if (ret) {
+ dev_err(&client->dev, "register power off handler failed: %d\n", ret);
+ goto err_add_devs;
+ }
}
return 0;
--
2.34.1
next prev parent reply other threads:[~2023-03-20 22:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-20 22:03 [PATCH v2 0/2] mfd: tps6586x: register restart handler Benjamin Bara
2023-03-20 22:03 ` Benjamin Bara [this message]
2023-03-21 2:17 ` [PATCH v2 1/2] mfd: tps6586x: use devm-based power off handler Dmitry Osipenko
2023-03-20 22:03 ` [PATCH v2 2/2] mfd: tps6586x: register restart handler Benjamin Bara
2023-03-21 2:07 ` Dmitry Osipenko
2023-03-21 7:46 ` Jon Hunter
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=20230320220345.1463687-2-bbara93@gmail.com \
--to=bbara93@gmail.com \
--cc=benjamin.bara@skidata.com \
--cc=dmitry.osipenko@collabora.com \
--cc=jonathanh@nvidia.com \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=richard.leitner@linux.dev \
--cc=treding@nvidia.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.