tpm/tpm_i2c_stm_st33: Replace access to io_lpcpd from struct st33zp24_platform_data...
authorChristophe Ricard <christophe.ricard@gmail.com>
Sun, 8 Mar 2015 10:17:13 +0000 (11:17 +0100)
committerPeter Huewe <peterhuewe@gmx.de>
Wed, 18 Mar 2015 21:43:05 +0000 (22:43 +0100)
io_lpcpd is accessible from struct tpm_stm_dev.
struct st33zp24_platform_data is only valid when using static platform
configuration data, not when using dts.

Reviewed-by: Jason Gunthorpe <jason.gunthorpe@obsidianresearch.com>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
drivers/char/tpm/tpm_i2c_stm_st33.c

index 612845b36c299ee52b6be16e7506ec236655844e..882c60a433fd420429dfe06beab3a5bb21c43064 100644 (file)
@@ -837,11 +837,14 @@ static int tpm_stm_i2c_remove(struct i2c_client *client)
  */
 static int tpm_stm_i2c_pm_suspend(struct device *dev)
 {
-       struct st33zp24_platform_data *pin_infos = dev->platform_data;
+       struct tpm_chip *chip = dev_get_drvdata(dev);
+       struct tpm_stm_dev *tpm_dev;
        int ret = 0;
 
-       if (gpio_is_valid(pin_infos->io_lpcpd))
-               gpio_set_value(pin_infos->io_lpcpd, 0);
+       tpm_dev = (struct tpm_stm_dev *)TPM_VPRIV(chip);
+
+       if (gpio_is_valid(tpm_dev->io_lpcpd))
+               gpio_set_value(tpm_dev->io_lpcpd, 0);
        else
                ret = tpm_pm_suspend(dev);
 
@@ -856,12 +859,13 @@ static int tpm_stm_i2c_pm_suspend(struct device *dev)
 static int tpm_stm_i2c_pm_resume(struct device *dev)
 {
        struct tpm_chip *chip = dev_get_drvdata(dev);
-       struct st33zp24_platform_data *pin_infos = dev->platform_data;
-
+       struct tpm_stm_dev *tpm_dev;
        int ret = 0;
 
-       if (gpio_is_valid(pin_infos->io_lpcpd)) {
-               gpio_set_value(pin_infos->io_lpcpd, 1);
+       tpm_dev = (struct tpm_stm_dev *)TPM_VPRIV(chip);
+
+       if (gpio_is_valid(tpm_dev->io_lpcpd)) {
+               gpio_set_value(tpm_dev->io_lpcpd, 1);
                ret = wait_for_stat(chip,
                                TPM_STS_VALID, chip->vendor.timeout_b,
                                &chip->vendor.read_queue, false);