mirror of https://gitee.com/openkylin/linux.git
i2c-pnx: Use struct dev_pm_ops for power management
Make the PNX I2C controller driver define its PM callbacks through a struct dev_pm_ops object rather than by using legacy PM hooks in struct platform_driver. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
This commit is contained in:
parent
84603c7c2e
commit
783414ba9a
|
@ -587,25 +587,27 @@ static struct i2c_algorithm pnx_algorithm = {
|
|||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int i2c_pnx_controller_suspend(struct platform_device *pdev,
|
||||
pm_message_t state)
|
||||
static int i2c_pnx_controller_suspend(struct device *dev)
|
||||
{
|
||||
struct i2c_pnx_algo_data *alg_data = platform_get_drvdata(pdev);
|
||||
struct i2c_pnx_algo_data *alg_data = dev_get_drvdata(dev);
|
||||
|
||||
clk_disable(alg_data->clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int i2c_pnx_controller_resume(struct platform_device *pdev)
|
||||
static int i2c_pnx_controller_resume(struct device *dev)
|
||||
{
|
||||
struct i2c_pnx_algo_data *alg_data = platform_get_drvdata(pdev);
|
||||
struct i2c_pnx_algo_data *alg_data = dev_get_drvdata(dev);
|
||||
|
||||
return clk_enable(alg_data->clk);
|
||||
}
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(i2c_pnx_pm,
|
||||
i2c_pnx_controller_suspend, i2c_pnx_controller_resume);
|
||||
#define PNX_I2C_PM (&i2c_pnx_pm)
|
||||
#else
|
||||
#define i2c_pnx_controller_suspend NULL
|
||||
#define i2c_pnx_controller_resume NULL
|
||||
#define PNX_I2C_PM NULL
|
||||
#endif
|
||||
|
||||
static int __devinit i2c_pnx_probe(struct platform_device *pdev)
|
||||
|
@ -783,11 +785,10 @@ static struct platform_driver i2c_pnx_driver = {
|
|||
.name = "pnx-i2c",
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = of_match_ptr(i2c_pnx_of_match),
|
||||
.pm = PNX_I2C_PM,
|
||||
},
|
||||
.probe = i2c_pnx_probe,
|
||||
.remove = __devexit_p(i2c_pnx_remove),
|
||||
.suspend = i2c_pnx_controller_suspend,
|
||||
.resume = i2c_pnx_controller_resume,
|
||||
};
|
||||
|
||||
static int __init i2c_adap_pnx_init(void)
|
||||
|
|
Loading…
Reference in New Issue