|
@@ -1107,6 +1107,14 @@ static int i2c_hid_remove(struct i2c_client *client)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static void i2c_hid_shutdown(struct i2c_client *client)
|
|
|
+{
|
|
|
+ struct i2c_hid *ihid = i2c_get_clientdata(client);
|
|
|
+
|
|
|
+ i2c_hid_set_power(client, I2C_HID_PWR_SLEEP);
|
|
|
+ free_irq(client->irq, ihid);
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CONFIG_PM_SLEEP
|
|
|
static int i2c_hid_suspend(struct device *dev)
|
|
|
{
|
|
@@ -1231,7 +1239,7 @@ static struct i2c_driver i2c_hid_driver = {
|
|
|
|
|
|
.probe = i2c_hid_probe,
|
|
|
.remove = i2c_hid_remove,
|
|
|
-
|
|
|
+ .shutdown = i2c_hid_shutdown,
|
|
|
.id_table = i2c_hid_id_table,
|
|
|
};
|
|
|
|