return 0;
 }
 
-static int msp_suspend(struct i2c_client *client, pm_message_t state)
+#ifdef CONFIG_PM_SLEEP
+static int msp_suspend(struct device *dev)
 {
+       struct i2c_client *client = to_i2c_client(dev);
        v4l_dbg(1, msp_debug, client, "suspend\n");
        msp_reset(client);
        return 0;
 }
 
-static int msp_resume(struct i2c_client *client)
+static int msp_resume(struct device *dev)
 {
+       struct i2c_client *client = to_i2c_client(dev);
        v4l_dbg(1, msp_debug, client, "resume\n");
        msp_wake_thread(client);
        return 0;
 }
+#endif
 
 /* ----------------------------------------------------------------------- */
 
 
 /* ----------------------------------------------------------------------- */
 
+static const struct dev_pm_ops msp3400_pm_ops = {
+       SET_SYSTEM_SLEEP_PM_OPS(msp_suspend, msp_resume)
+};
+
 static const struct i2c_device_id msp_id[] = {
        { "msp3400", 0 },
        { }
        .driver = {
                .owner  = THIS_MODULE,
                .name   = "msp3400",
+               .pm     = &msp3400_pm_ops,
        },
        .probe          = msp_probe,
        .remove         = msp_remove,
-       .suspend        = msp_suspend,
-       .resume         = msp_resume,
        .id_table       = msp_id,
 };
 
 
        return 0;
 }
 
-static int tuner_suspend(struct i2c_client *c, pm_message_t state)
+#ifdef CONFIG_PM_SLEEP
+static int tuner_suspend(struct device *dev)
 {
+       struct i2c_client *c = to_i2c_client(dev);
        struct tuner *t = to_tuner(i2c_get_clientdata(c));
        struct analog_demod_ops *analog_ops = &t->fe.ops.analog_ops;
 
        return 0;
 }
 
-static int tuner_resume(struct i2c_client *c)
+static int tuner_resume(struct device *dev)
 {
+       struct i2c_client *c = to_i2c_client(dev);
        struct tuner *t = to_tuner(i2c_get_clientdata(c));
 
        tuner_dbg("resume\n");
 
        return 0;
 }
+#endif
 
 static int tuner_command(struct i2c_client *client, unsigned cmd, void *arg)
 {
  * I2C structs and module init functions
  */
 
+static const struct dev_pm_ops tuner_pm_ops = {
+       SET_SYSTEM_SLEEP_PM_OPS(tuner_suspend, tuner_resume)
+};
+
 static const struct i2c_device_id tuner_id[] = {
        { "tuner", }, /* autodetect */
        { }
        .driver = {
                .owner  = THIS_MODULE,
                .name   = "tuner",
+               .pm     = &tuner_pm_ops,
        },
        .probe          = tuner_probe,
        .remove         = tuner_remove,
        .command        = tuner_command,
-       .suspend        = tuner_suspend,
-       .resume         = tuner_resume,
        .id_table       = tuner_id,
 };