Message ID | 20161026203814.1904690-1-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Arnd, On Wed, Oct 26, 2016 at 10:38:01PM +0200, Arnd Bergmann wrote: > The rework of the PM support has caused two functions to > be orphaned when CONFIG_PM is disabled: > > media/i2c/smiapp/smiapp-core.c:1352:12: error: 'smiapp_power_off' defined but not used [-Werror=unused-function] > media/i2c/smiapp/smiapp-core.c:1206:12: error: 'smiapp_power_on' defined but not used [-Werror=unused-function] > > This changes all four PM entry points to __maybe_unused and > removes the #ifdef markers for consistency. This avoids the > warnings even when something changes again. > > Fixes: cbba45d43631 ("[media] smiapp: Use runtime PM") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> The power-on sequence is in fact mandatory as it involves writing the initial configuration to the sensor as well. Instead, I believe the correct fix is to make the driver depend on CONFIG_PM.
On Thursday, October 27, 2016 10:28:18 AM CEST Sakari Ailus wrote: > > On Wed, Oct 26, 2016 at 10:38:01PM +0200, Arnd Bergmann wrote: > > The rework of the PM support has caused two functions to > > be orphaned when CONFIG_PM is disabled: > > > > media/i2c/smiapp/smiapp-core.c:1352:12: error: 'smiapp_power_off' defined but not used [-Werror=unused-function] > > media/i2c/smiapp/smiapp-core.c:1206:12: error: 'smiapp_power_on' defined but not used [-Werror=unused-function] > > > > This changes all four PM entry points to __maybe_unused and > > removes the #ifdef markers for consistency. This avoids the > > warnings even when something changes again. > > > > Fixes: cbba45d43631 ("[media] smiapp: Use runtime PM") > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > The power-on sequence is in fact mandatory as it involves writing the > initial configuration to the sensor as well. > > Instead, I believe the correct fix is to make the driver depend on > CONFIG_PM. (adding linux-pm list) That would be a rather unusual dependency, though it's possible that a lot of drivers in fact need it but never listed this explictly in Kconfig. What do other drivers do that need to have their runtime_resume function called at probe time when CONFIG_PM is disabled? Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Arnd, On Thu, Oct 27, 2016 at 09:43:16AM +0200, Arnd Bergmann wrote: > On Thursday, October 27, 2016 10:28:18 AM CEST Sakari Ailus wrote: > > > > On Wed, Oct 26, 2016 at 10:38:01PM +0200, Arnd Bergmann wrote: > > > The rework of the PM support has caused two functions to > > > be orphaned when CONFIG_PM is disabled: > > > > > > media/i2c/smiapp/smiapp-core.c:1352:12: error: 'smiapp_power_off' defined but not used [-Werror=unused-function] > > > media/i2c/smiapp/smiapp-core.c:1206:12: error: 'smiapp_power_on' defined but not used [-Werror=unused-function] > > > > > > This changes all four PM entry points to __maybe_unused and > > > removes the #ifdef markers for consistency. This avoids the > > > warnings even when something changes again. > > > > > > Fixes: cbba45d43631 ("[media] smiapp: Use runtime PM") > > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > > > The power-on sequence is in fact mandatory as it involves writing the > > initial configuration to the sensor as well. > > > > Instead, I believe the correct fix is to make the driver depend on > > CONFIG_PM. > > (adding linux-pm list) > > That would be a rather unusual dependency, though it's possible that > a lot of drivers in fact need it but never listed this explictly in > Kconfig. > > What do other drivers do that need to have their runtime_resume > function called at probe time when CONFIG_PM is disabled? That's certainly possible as well. V4L2 sub-device core operation s_power() no longer works (as it now uses runtime PM) but I don't think that's an issue if PM is disabled anyway --- we should really get rid of that in most drivers. I can submit a patch.
diff --git a/drivers/media/i2c/smiapp/smiapp-core.c b/drivers/media/i2c/smiapp/smiapp-core.c index 59872b31f832..fc0142838834 100644 --- a/drivers/media/i2c/smiapp/smiapp-core.c +++ b/drivers/media/i2c/smiapp/smiapp-core.c @@ -1203,7 +1203,7 @@ static int smiapp_setup_flash_strobe(struct smiapp_sensor *sensor) * Power management */ -static int smiapp_power_on(struct device *dev) +static int __maybe_unused smiapp_power_on(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct v4l2_subdev *subdev = i2c_get_clientdata(client); @@ -1349,7 +1349,7 @@ static int smiapp_power_on(struct device *dev) return rval; } -static int smiapp_power_off(struct device *dev) +static int __maybe_unused smiapp_power_off(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct v4l2_subdev *subdev = i2c_get_clientdata(client); @@ -2741,9 +2741,7 @@ static const struct v4l2_subdev_internal_ops smiapp_internal_ops = { * I2C Driver */ -#ifdef CONFIG_PM - -static int smiapp_suspend(struct device *dev) +static int __maybe_unused smiapp_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct v4l2_subdev *subdev = i2c_get_clientdata(client); @@ -2768,7 +2766,7 @@ static int smiapp_suspend(struct device *dev) return 0; } -static int smiapp_resume(struct device *dev) +static int __maybe_unused smiapp_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct v4l2_subdev *subdev = i2c_get_clientdata(client); @@ -2783,13 +2781,6 @@ static int smiapp_resume(struct device *dev) return rval; } -#else - -#define smiapp_suspend NULL -#define smiapp_resume NULL - -#endif /* CONFIG_PM */ - static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev) { struct smiapp_hwconfig *hwcfg;
The rework of the PM support has caused two functions to be orphaned when CONFIG_PM is disabled: media/i2c/smiapp/smiapp-core.c:1352:12: error: 'smiapp_power_off' defined but not used [-Werror=unused-function] media/i2c/smiapp/smiapp-core.c:1206:12: error: 'smiapp_power_on' defined but not used [-Werror=unused-function] This changes all four PM entry points to __maybe_unused and removes the #ifdef markers for consistency. This avoids the warnings even when something changes again. Fixes: cbba45d43631 ("[media] smiapp: Use runtime PM") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/media/i2c/smiapp/smiapp-core.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-)