|
@@ -196,10 +196,11 @@ static int __devexit bh1780_remove(struct i2c_client *client)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_PM
|
|
|
-static int bh1780_suspend(struct i2c_client *client, pm_message_t mesg)
|
|
|
+static int bh1780_suspend(struct device *dev)
|
|
|
{
|
|
|
struct bh1780_data *ddata;
|
|
|
int state, ret;
|
|
|
+ struct i2c_client *client = to_i2c_client(dev);
|
|
|
|
|
|
ddata = i2c_get_clientdata(client);
|
|
|
state = bh1780_read(ddata, BH1780_REG_CONTROL, "CONTROL");
|
|
@@ -217,14 +218,14 @@ static int bh1780_suspend(struct i2c_client *client, pm_message_t mesg)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int bh1780_resume(struct i2c_client *client)
|
|
|
+static int bh1780_resume(struct device *dev)
|
|
|
{
|
|
|
struct bh1780_data *ddata;
|
|
|
int state, ret;
|
|
|
+ struct i2c_client *client = to_i2c_client(dev);
|
|
|
|
|
|
ddata = i2c_get_clientdata(client);
|
|
|
state = ddata->power_state;
|
|
|
-
|
|
|
ret = bh1780_write(ddata, BH1780_REG_CONTROL, state,
|
|
|
"CONTROL");
|
|
|
|
|
@@ -233,9 +234,10 @@ static int bh1780_resume(struct i2c_client *client)
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
+static SIMPLE_DEV_PM_OPS(bh1780_pm, bh1780_suspend, bh1780_resume);
|
|
|
+#define BH1780_PMOPS (&bh1780_pm)
|
|
|
#else
|
|
|
-#define bh1780_suspend NULL
|
|
|
-#define bh1780_resume NULL
|
|
|
+#define BH1780_PMOPS NULL
|
|
|
#endif /* CONFIG_PM */
|
|
|
|
|
|
static const struct i2c_device_id bh1780_id[] = {
|
|
@@ -247,11 +249,10 @@ static struct i2c_driver bh1780_driver = {
|
|
|
.probe = bh1780_probe,
|
|
|
.remove = bh1780_remove,
|
|
|
.id_table = bh1780_id,
|
|
|
- .suspend = bh1780_suspend,
|
|
|
- .resume = bh1780_resume,
|
|
|
.driver = {
|
|
|
- .name = "bh1780"
|
|
|
- },
|
|
|
+ .name = "bh1780",
|
|
|
+ .pm = BH1780_PMOPS,
|
|
|
+},
|
|
|
};
|
|
|
|
|
|
static int __init bh1780_init(void)
|