From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-i2c@vger.kernel.org
Cc: Wolfram Sang <wsa@the-dreams.de>,
"Rafael J. Wysocki" <rafael@kernel.org>,
linux-acpi@vger.kernel.org, Bingbu Cao <bingbu.cao@intel.com>,
linux-media@vger.kernel.org,
Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>,
Hyungwoo Yang <hyungwoo.yang@intel.com>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Arnd Bergmann <arnd@arndb.de>,
linux-kernel@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
rajmohan.mani@intel.com, Tomasz Figa <tfiga@chromium.org>,
"Qiu, Tian Shu" <tian.shu.qiu@intel.com>
Subject: [PATCH v5 4/6] media: i2c: imx319: Support probe while the device is off
Date: Mon, 10 Aug 2020 17:27:45 +0300 [thread overview]
Message-ID: <20200810142747.12400-5-sakari.ailus@linux.intel.com> (raw)
In-Reply-To: <20200810142747.12400-1-sakari.ailus@linux.intel.com>
From: Rajmohan Mani <rajmohan.mani@intel.com>
Tell ACPI device PM code that the driver supports the device being powered
off when the driver's probe function is entered.
Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
drivers/media/i2c/imx319.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/drivers/media/i2c/imx319.c b/drivers/media/i2c/imx319.c
index 17c2e4b41221e..dc5ebff6a85a3 100644
--- a/drivers/media/i2c/imx319.c
+++ b/drivers/media/i2c/imx319.c
@@ -2424,6 +2424,7 @@ static struct imx319_hwcfg *imx319_get_hwcfg(struct device *dev)
static int imx319_probe(struct i2c_client *client)
{
struct imx319 *imx319;
+ bool low_power;
int ret;
u32 i;
@@ -2436,11 +2437,14 @@ static int imx319_probe(struct i2c_client *client)
/* Initialize subdev */
v4l2_i2c_subdev_init(&imx319->sd, client, &imx319_subdev_ops);
- /* Check module identity */
- ret = imx319_identify_module(imx319);
- if (ret) {
- dev_err(&client->dev, "failed to find sensor: %d", ret);
- goto error_probe;
+ low_power = acpi_dev_state_low_power(&client->dev);
+ if (!low_power) {
+ /* Check module identity */
+ ret = imx319_identify_module(imx319);
+ if (ret) {
+ dev_err(&client->dev, "failed to find sensor: %d", ret);
+ goto error_probe;
+ }
}
imx319->hwcfg = imx319_get_hwcfg(&client->dev);
@@ -2493,10 +2497,10 @@ static int imx319_probe(struct i2c_client *client)
goto error_media_entity;
/*
- * Device is already turned on by i2c-core with ACPI domain PM.
- * Enable runtime PM and turn off the device.
+ * Don't set the device's state to active if it's in a low power state.
*/
- pm_runtime_set_active(&client->dev);
+ if (!low_power)
+ pm_runtime_set_active(&client->dev);
pm_runtime_enable(&client->dev);
pm_runtime_idle(&client->dev);
@@ -2536,7 +2540,7 @@ static const struct dev_pm_ops imx319_pm_ops = {
};
static const struct acpi_device_id imx319_acpi_ids[] = {
- { "SONY319A" },
+ { "SONY319A", },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(acpi, imx319_acpi_ids);
@@ -2549,6 +2553,7 @@ static struct i2c_driver imx319_i2c_driver = {
},
.probe_new = imx319_probe,
.remove = imx319_remove,
+ .flags = I2C_DRV_FL_ALLOW_LOW_POWER_PROBE,
};
module_i2c_driver(imx319_i2c_driver);
--
2.20.1
next prev parent reply other threads:[~2020-08-10 14:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-10 14:27 [PATCH v5 0/6] Support running driver's probe for a device powered off Sakari Ailus
2020-08-10 14:27 ` [PATCH v5 1/6] i2c: Allow driver to manage the device's power state during probe Sakari Ailus
2020-08-10 14:41 ` Sudeep Holla
2020-08-11 8:57 ` Sakari Ailus
2020-08-10 14:27 ` [PATCH v5 2/6] ACPI: Add a convenience function to tell a device is in low power state Sakari Ailus
2020-08-10 14:27 ` [PATCH v5 3/6] ov5670: Support probe whilst the device is in a " Sakari Ailus
2020-08-12 9:12 ` Bingbu Cao
2020-08-12 9:22 ` Sakari Ailus
2020-08-14 4:49 ` Bingbu Cao
2020-08-10 14:27 ` Sakari Ailus [this message]
2020-08-10 14:27 ` [PATCH v5 5/6] at24: Support probing while off Sakari Ailus
2020-08-10 14:27 ` [PATCH v5 6/6] Documentation: ACPI: Document allow-low-power-probe _DSD property Sakari Ailus
2020-08-14 4:11 ` [PATCH v5 0/6] Support running driver's probe for a device powered off Bingbu Cao
2020-08-14 6:18 ` Bingbu Cao
2020-08-14 13:17 ` Tomasz Figa
2020-08-18 11:04 ` Sakari Ailus
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=20200810142747.12400-5-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=arnd@arndb.de \
--cc=bgolaszewski@baylibre.com \
--cc=bingbu.cao@intel.com \
--cc=chiranjeevi.rapolu@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hyungwoo.yang@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=rajmohan.mani@intel.com \
--cc=tfiga@chromium.org \
--cc=tian.shu.qiu@intel.com \
--cc=wsa@the-dreams.de \
/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.