On 10/02/2015 07:19 AM, Matt Ranostay wrote: > Puts device into DEEP SLEEP when no LEDs are in in the on-state, and no > input_handlers are in use. Also uses *_autosuspend to prevent a LED > trigger from constantly suspending and resuming device. > > Signed-off-by: Matt Ranostay <mranostay@xxxxxxxxx> > --- > drivers/input/keyboard/cap11xx.c | 84 +++++++++++++++++++++++++++++++--------- > 1 file changed, 65 insertions(+), 19 deletions(-) > ... > +static void cap11xx_shutdown_act(void *data) > +{ > + struct i2c_client *i2c_client = data; > + struct cap11xx_priv *priv = i2c_get_clientdata(i2c_client); > + > + cap11xx_set_sleep(priv, true); > + pm_runtime_disable(&i2c_client->dev); > + pm_runtime_set_suspended(&i2c_client->dev); > +} > + > static int cap11xx_i2c_probe(struct i2c_client *i2c_client, > const struct i2c_device_id *id) > { > @@ -363,6 +374,14 @@ static int cap11xx_i2c_probe(struct i2c_client *i2c_client, > if (IS_ERR(priv->regmap)) > return PTR_ERR(priv->regmap); > > + error = devm_add_action(dev, cap11xx_shutdown_act, i2c_client); Why not implement cap11xx_i2c_driver.remove or .shutdown for this? Otherwise, this looks good to me. Thanks, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html