|
@@ -1433,34 +1433,32 @@ static void i801_remove(struct pci_dev *dev)
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_PM
|
|
|
-static int i801_suspend(struct pci_dev *dev, pm_message_t mesg)
|
|
|
+static int i801_suspend(struct device *dev)
|
|
|
{
|
|
|
- struct i801_priv *priv = pci_get_drvdata(dev);
|
|
|
+ struct pci_dev *pci_dev = to_pci_dev(dev);
|
|
|
+ struct i801_priv *priv = pci_get_drvdata(pci_dev);
|
|
|
|
|
|
- pci_save_state(dev);
|
|
|
- pci_write_config_byte(dev, SMBHSTCFG, priv->original_hstcfg);
|
|
|
- pci_set_power_state(dev, pci_choose_state(dev, mesg));
|
|
|
+ pci_write_config_byte(pci_dev, SMBHSTCFG, priv->original_hstcfg);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int i801_resume(struct pci_dev *dev)
|
|
|
+static int i801_resume(struct device *dev)
|
|
|
{
|
|
|
- pci_set_power_state(dev, PCI_D0);
|
|
|
- pci_restore_state(dev);
|
|
|
return 0;
|
|
|
}
|
|
|
-#else
|
|
|
-#define i801_suspend NULL
|
|
|
-#define i801_resume NULL
|
|
|
#endif
|
|
|
|
|
|
+static UNIVERSAL_DEV_PM_OPS(i801_pm_ops, i801_suspend,
|
|
|
+ i801_resume, NULL);
|
|
|
+
|
|
|
static struct pci_driver i801_driver = {
|
|
|
.name = "i801_smbus",
|
|
|
.id_table = i801_ids,
|
|
|
.probe = i801_probe,
|
|
|
.remove = i801_remove,
|
|
|
- .suspend = i801_suspend,
|
|
|
- .resume = i801_resume,
|
|
|
+ .driver = {
|
|
|
+ .pm = &i801_pm_ops,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static int __init i2c_i801_init(void)
|