diff options
author | Peter Huewe <peterhuewe@gmx.de> | 2012-12-06 01:20:51 +0100 |
---|---|---|
committer | Kent Yoder <key@linux.vnet.ibm.com> | 2013-02-05 09:38:23 -0600 |
commit | d459335381eca1cb91fefb87021d3d172342e55a (patch) | |
tree | 4a112cf8541962ef7d62a2e750e7b6a38be23a4d /drivers/char/tpm | |
parent | 2bfee22f6c60e046f6b04f2d4855fddac1f67290 (diff) | |
download | linux-stable-d459335381eca1cb91fefb87021d3d172342e55a.tar.gz linux-stable-d459335381eca1cb91fefb87021d3d172342e55a.tar.bz2 linux-stable-d459335381eca1cb91fefb87021d3d172342e55a.zip |
char/tpm: Use struct dev_pm_ops for power management
This patch converts the suspend and resume functions for
tpm_i2c_stm_st33 to the new dev_pm_ops.
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
Diffstat (limited to 'drivers/char/tpm')
-rw-r--r-- | drivers/char/tpm/tpm_i2c_stm_st33.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/drivers/char/tpm/tpm_i2c_stm_st33.c b/drivers/char/tpm/tpm_i2c_stm_st33.c index cf4f42e3e83d..24a33e08d0c6 100644 --- a/drivers/char/tpm/tpm_i2c_stm_st33.c +++ b/drivers/char/tpm/tpm_i2c_stm_st33.c @@ -818,6 +818,7 @@ static __devexit int tpm_st33_i2c_remove(struct i2c_client *client) return 0; } +#ifdef CONFIG_PM_SLEEP /* * tpm_st33_i2c_pm_suspend suspend the TPM device * Added: Work around when suspend and no tpm application is running, suspend @@ -827,12 +828,10 @@ static __devexit int tpm_st33_i2c_remove(struct i2c_client *client) * @param: mesg, the power management message. * @return: 0 in case of success. */ -static int tpm_st33_i2c_pm_suspend(struct i2c_client *client, pm_message_t mesg) +static int tpm_st33_i2c_pm_suspend(struct device *dev) { - struct tpm_chip *chip = - (struct tpm_chip *)i2c_get_clientdata(client); - struct st33zp24_platform_data *pin_infos = - ((struct i2c_client *)TPM_VPRIV(chip))->dev.platform_data; + struct tpm_chip *chip = dev_get_drvdata(dev); + struct st33zp24_platform_data *pin_infos = dev->platform_data; int ret = 0; if (power_mgt) @@ -840,7 +839,7 @@ static int tpm_st33_i2c_pm_suspend(struct i2c_client *client, pm_message_t mesg) else{ if (chip->data_buffer == NULL) chip->data_buffer = pin_infos->tpm_i2c_buffer[0]; - ret = tpm_pm_suspend(&client->dev); + ret = tpm_pm_suspend(dev); } return ret; } /* tpm_st33_i2c_suspend() */ @@ -850,12 +849,10 @@ static int tpm_st33_i2c_pm_suspend(struct i2c_client *client, pm_message_t mesg) * @param: client, the i2c_client drescription (TPM I2C description). * @return: 0 in case of success. */ -static int tpm_st33_i2c_pm_resume(struct i2c_client *client) +static int tpm_st33_i2c_pm_resume(struct device *dev) { - struct tpm_chip *chip = - (struct tpm_chip *)i2c_get_clientdata(client); - struct st33zp24_platform_data *pin_infos = - ((struct i2c_client *)TPM_VPRIV(chip))->dev.platform_data; + struct tpm_chip *chip = dev_get_drvdata(dev); + struct st33zp24_platform_data *pin_infos = dev->platform_data; int ret = 0; @@ -868,29 +865,28 @@ static int tpm_st33_i2c_pm_resume(struct i2c_client *client) } else{ if (chip->data_buffer == NULL) chip->data_buffer = pin_infos->tpm_i2c_buffer[0]; - ret = tpm_pm_resume(&client->dev); + ret = tpm_pm_resume(dev); if (!ret) tpm_do_selftest(chip); } return ret; } /* tpm_st33_i2c_pm_resume() */ +#endif static const struct i2c_device_id tpm_st33_i2c_id[] = { {TPM_ST33_I2C, 0}, {} }; - MODULE_DEVICE_TABLE(i2c, tpm_st33_i2c_id); - +static SIMPLE_DEV_PM_OPS(tpm_st33_i2c_ops, tpm_st33_i2c_pm_suspend, tpm_st33_i2c_pm_resume); static struct i2c_driver tpm_st33_i2c_driver = { .driver = { .owner = THIS_MODULE, .name = TPM_ST33_I2C, + .pm = &tpm_st33_i2c_ops, }, .probe = tpm_st33_i2c_probe, .remove = tpm_st33_i2c_remove, - .resume = tpm_st33_i2c_pm_resume, - .suspend = tpm_st33_i2c_pm_suspend, .id_table = tpm_st33_i2c_id }; |