[tpmdd-devel,v3,02/11] tpm: Get rid of chip->pdev
diff mbox

Message ID 1455885728-10315-3-git-send-email-stefanb@linux.vnet.ibm.com
State New
Headers show

Commit Message

Stefan Berger Feb. 19, 2016, 12:41 p.m. UTC
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

This is a hold over from before the struct device conversion.

- All prints should be using &chip->dev, which is the Linux
  standard. This changes prints to use tpm0 as the device name,
  not the PnP/etc ID.
- The few places involving sysfs/modules that really do need the
  parent just use chip->dev.parent instead
- We no longer need to get_device(pdev) in any places since it is no
  longer used by any of the code. The kref on the parent is held
  by the device core during device_add and dropped in device_del

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
---
 drivers/char/tpm/tpm-chip.c         | 15 ++++++---------
 drivers/char/tpm/tpm-dev.c          |  4 +---
 drivers/char/tpm/tpm-interface.c    | 30 ++++++++++++++++--------------
 drivers/char/tpm/tpm-sysfs.c        |  6 +++---
 drivers/char/tpm/tpm.h              |  3 +--
 drivers/char/tpm/tpm2-cmd.c         |  8 ++++----
 drivers/char/tpm/tpm_atmel.c        | 14 +++++++-------
 drivers/char/tpm/tpm_i2c_atmel.c    | 16 ++++++++--------
 drivers/char/tpm/tpm_i2c_infineon.c |  6 +++---
 drivers/char/tpm/tpm_i2c_nuvoton.c  | 22 +++++++++++-----------
 drivers/char/tpm/tpm_infineon.c     | 22 +++++++++++-----------
 drivers/char/tpm/tpm_nsc.c          | 20 ++++++++++----------
 drivers/char/tpm/tpm_tis.c          | 14 +++++++-------
 13 files changed, 88 insertions(+), 92 deletions(-)

Comments

Jarkko Sakkinen Feb. 22, 2016, 7:25 p.m. UTC | #1
On Fri, Feb 19, 2016 at 07:41:59AM -0500, Stefan Berger wrote:
> From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
> 
> This is a hold over from before the struct device conversion.
> 
> - All prints should be using &chip->dev, which is the Linux
>   standard. This changes prints to use tpm0 as the device name,
>   not the PnP/etc ID.
> - The few places involving sysfs/modules that really do need the
>   parent just use chip->dev.parent instead
> - We no longer need to get_device(pdev) in any places since it is no
>   longer used by any of the code. The kref on the parent is held
>   by the device core during device_add and dropped in device_del
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

There was couple of places where I would adjust identation but that's
not really a major issue (and it passes checkpatch.pl anyway).

> ---
>  drivers/char/tpm/tpm-chip.c         | 15 ++++++---------
>  drivers/char/tpm/tpm-dev.c          |  4 +---
>  drivers/char/tpm/tpm-interface.c    | 30 ++++++++++++++++--------------
>  drivers/char/tpm/tpm-sysfs.c        |  6 +++---
>  drivers/char/tpm/tpm.h              |  3 +--
>  drivers/char/tpm/tpm2-cmd.c         |  8 ++++----
>  drivers/char/tpm/tpm_atmel.c        | 14 +++++++-------
>  drivers/char/tpm/tpm_i2c_atmel.c    | 16 ++++++++--------
>  drivers/char/tpm/tpm_i2c_infineon.c |  6 +++---
>  drivers/char/tpm/tpm_i2c_nuvoton.c  | 22 +++++++++++-----------
>  drivers/char/tpm/tpm_infineon.c     | 22 +++++++++++-----------
>  drivers/char/tpm/tpm_nsc.c          | 20 ++++++++++----------
>  drivers/char/tpm/tpm_tis.c          | 14 +++++++-------
>  13 files changed, 88 insertions(+), 92 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
> index ab32437..5ed9bed 100644
> --- a/drivers/char/tpm/tpm-chip.c
> +++ b/drivers/char/tpm/tpm-chip.c
> @@ -49,7 +49,7 @@ struct tpm_chip *tpm_chip_find_get(int chip_num)
>  		if (chip_num != TPM_ANY_NUM && chip_num != pos->dev_num)
>  			continue;
>  
> -		if (try_module_get(pos->pdev->driver->owner)) {
> +		if (try_module_get(pos->dev.parent->driver->owner)) {
>  			chip = pos;
>  			break;
>  		}
> @@ -113,13 +113,11 @@ struct tpm_chip *tpmm_chip_alloc(struct device *dev,
>  
>  	scnprintf(chip->devname, sizeof(chip->devname), "tpm%d", chip->dev_num);
>  
> -	chip->pdev = dev;
> -
>  	dev_set_drvdata(dev, chip);
>  
>  	chip->dev.class = tpm_class;
>  	chip->dev.release = tpm_dev_release;
> -	chip->dev.parent = chip->pdev;
> +	chip->dev.parent = dev;
>  #ifdef CONFIG_ACPI
>  	chip->dev.groups = chip->groups;
>  #endif
> @@ -134,7 +132,7 @@ struct tpm_chip *tpmm_chip_alloc(struct device *dev,
>  	device_initialize(&chip->dev);
>  
>  	cdev_init(&chip->cdev, &tpm_fops);
> -	chip->cdev.owner = chip->pdev->driver->owner;
> +	chip->cdev.owner = dev->driver->owner;
>  	chip->cdev.kobj.parent = &chip->dev.kobj;
>  
>  	err = devm_add_action(dev, (void (*)(void *)) put_device, &chip->dev);
> @@ -241,9 +239,8 @@ int tpm_chip_register(struct tpm_chip *chip)
>  	chip->flags |= TPM_CHIP_FLAG_REGISTERED;
>  
>  	if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) {
> -		rc = __compat_only_sysfs_link_entry_to_kobj(&chip->pdev->kobj,
> -							    &chip->dev.kobj,
> -							    "ppi");
> +		rc = __compat_only_sysfs_link_entry_to_kobj(
> +		    &chip->dev.parent->kobj, &chip->dev.kobj, "ppi");
>  		if (rc && rc != -ENOENT) {
>  			tpm_chip_unregister(chip);
>  			return rc;
> @@ -278,7 +275,7 @@ void tpm_chip_unregister(struct tpm_chip *chip)
>  	synchronize_rcu();
>  
>  	if (!(chip->flags & TPM_CHIP_FLAG_TPM2))
> -		sysfs_remove_link(&chip->pdev->kobj, "ppi");
> +		sysfs_remove_link(&chip->dev.parent->kobj, "ppi");
>  
>  	tpm1_chip_unregister(chip);
>  	tpm_dev_del_device(chip);
> diff --git a/drivers/char/tpm/tpm-dev.c b/drivers/char/tpm/tpm-dev.c
> index de0337e..4009765 100644
> --- a/drivers/char/tpm/tpm-dev.c
> +++ b/drivers/char/tpm/tpm-dev.c
> @@ -61,7 +61,7 @@ static int tpm_open(struct inode *inode, struct file *file)
>  	 * by the check of is_open variable, which is protected
>  	 * by driver_lock. */
>  	if (test_and_set_bit(0, &chip->is_open)) {
> -		dev_dbg(chip->pdev, "Another process owns this TPM\n");
> +		dev_dbg(&chip->dev, "Another process owns this TPM\n");
>  		return -EBUSY;
>  	}
>  
> @@ -79,7 +79,6 @@ static int tpm_open(struct inode *inode, struct file *file)
>  	INIT_WORK(&priv->work, timeout_work);
>  
>  	file->private_data = priv;
> -	get_device(chip->pdev);
>  	return 0;
>  }
>  
> @@ -166,7 +165,6 @@ static int tpm_release(struct inode *inode, struct file *file)
>  	file->private_data = NULL;
>  	atomic_set(&priv->data_pending, 0);
>  	clear_bit(0, &priv->chip->is_open);
> -	put_device(priv->chip->pdev);
>  	kfree(priv);
>  	return 0;
>  }
> diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
> index c50637d..65dc7fd 100644
> --- a/drivers/char/tpm/tpm-interface.c
> +++ b/drivers/char/tpm/tpm-interface.c
> @@ -343,7 +343,7 @@ ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
>  	if (count == 0)
>  		return -ENODATA;
>  	if (count > bufsiz) {
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"invalid count value %x %zx\n", count, bufsiz);
>  		return -E2BIG;
>  	}
> @@ -352,7 +352,7 @@ ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
>  
>  	rc = chip->ops->send(chip, (u8 *) buf, count);
>  	if (rc < 0) {
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"tpm_transmit: tpm_send: error %zd\n", rc);
>  		goto out;
>  	}
> @@ -371,7 +371,7 @@ ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
>  			goto out_recv;
>  
>  		if (chip->ops->req_canceled(chip, status)) {
> -			dev_err(chip->pdev, "Operation Canceled\n");
> +			dev_err(&chip->dev, "Operation Canceled\n");
>  			rc = -ECANCELED;
>  			goto out;
>  		}
> @@ -381,14 +381,14 @@ ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
>  	} while (time_before(jiffies, stop));
>  
>  	chip->ops->cancel(chip);
> -	dev_err(chip->pdev, "Operation Timed out\n");
> +	dev_err(&chip->dev, "Operation Timed out\n");
>  	rc = -ETIME;
>  	goto out;
>  
>  out_recv:
>  	rc = chip->ops->recv(chip, (u8 *) buf, bufsiz);
>  	if (rc < 0)
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"tpm_transmit: tpm_recv: error %zd\n", rc);
>  out:
>  	mutex_unlock(&chip->tpm_mutex);
> @@ -414,7 +414,7 @@ ssize_t tpm_transmit_cmd(struct tpm_chip *chip, void *cmd,
>  
>  	err = be32_to_cpu(header->return_code);
>  	if (err != 0 && desc)
> -		dev_err(chip->pdev, "A TPM error (%d) occurred %s\n", err,
> +		dev_err(&chip->dev, "A TPM error (%d) occurred %s\n", err,
>  			desc);
>  
>  	return err;
> @@ -510,7 +510,7 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>  	if (rc == TPM_ERR_INVALID_POSTINIT) {
>  		/* The TPM is not started, we are the first to talk to it.
>  		   Execute a startup command. */
> -		dev_info(chip->pdev, "Issuing TPM_STARTUP");
> +		dev_info(&chip->dev, "Issuing TPM_STARTUP");
>  		if (tpm_startup(chip, TPM_ST_CLEAR))
>  			return rc;
>  
> @@ -522,7 +522,7 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>  				  NULL);
>  	}
>  	if (rc) {
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"A TPM error (%zd) occurred attempting to determine the timeouts\n",
>  			rc);
>  		goto duration;
> @@ -561,7 +561,7 @@ int tpm_get_timeouts(struct tpm_chip *chip)
>  
>  	/* Report adjusted timeouts */
>  	if (chip->vendor.timeout_adjusted) {
> -		dev_info(chip->pdev,
> +		dev_info(&chip->dev,
>  			 HW_ERR "Adjusting reported timeouts: A %lu->%luus B %lu->%luus C %lu->%luus D %lu->%luus\n",
>  			 old_timeout[0], new_timeout[0],
>  			 old_timeout[1], new_timeout[1],
> @@ -608,7 +608,7 @@ duration:
>  		chip->vendor.duration[TPM_MEDIUM] *= 1000;
>  		chip->vendor.duration[TPM_LONG] *= 1000;
>  		chip->vendor.duration_adjusted = true;
> -		dev_info(chip->pdev, "Adjusting TPM timeout parameters.");
> +		dev_info(&chip->dev, "Adjusting TPM timeout parameters.");
>  	}
>  	return 0;
>  }
> @@ -798,7 +798,9 @@ int tpm_do_selftest(struct tpm_chip *chip)
>  		 * around 300ms while the self test is ongoing, keep trying
>  		 * until the self test duration expires. */
>  		if (rc == -ETIME) {
> -			dev_info(chip->pdev, HW_ERR "TPM command timed out during continue self test");
> +			dev_info(
> +			    &chip->dev, HW_ERR
> +			    "TPM command timed out during continue self test");
>  			msleep(delay_msec);
>  			continue;
>  		}
> @@ -808,7 +810,7 @@ int tpm_do_selftest(struct tpm_chip *chip)
>  
>  		rc = be32_to_cpu(cmd.header.out.return_code);
>  		if (rc == TPM_ERR_DISABLED || rc == TPM_ERR_DEACTIVATED) {
> -			dev_info(chip->pdev,
> +			dev_info(&chip->dev,
>  				 "TPM is disabled/deactivated (0x%X)\n", rc);
>  			/* TPM is disabled and/or deactivated; driver can
>  			 * proceed and TPM does handle commands for
> @@ -961,10 +963,10 @@ int tpm_pm_suspend(struct device *dev)
>  	}
>  
>  	if (rc)
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"Error (%d) sending savestate before suspend\n", rc);
>  	else if (try > 0)
> -		dev_warn(chip->pdev, "TPM savestate took %dms\n",
> +		dev_warn(&chip->dev, "TPM savestate took %dms\n",
>  			 try * TPM_TIMEOUT_RETRY);
>  
>  	return rc;
> diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char/tpm/tpm-sysfs.c
> index ee66fd4..d93736a 100644
> --- a/drivers/char/tpm/tpm-sysfs.c
> +++ b/drivers/char/tpm/tpm-sysfs.c
> @@ -284,16 +284,16 @@ static const struct attribute_group tpm_dev_group = {
>  int tpm_sysfs_add_device(struct tpm_chip *chip)
>  {
>  	int err;
> -	err = sysfs_create_group(&chip->pdev->kobj,
> +	err = sysfs_create_group(&chip->dev.parent->kobj,
>  				 &tpm_dev_group);
>  
>  	if (err)
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"failed to create sysfs attributes, %d\n", err);
>  	return err;
>  }
>  
>  void tpm_sysfs_del_device(struct tpm_chip *chip)
>  {
> -	sysfs_remove_group(&chip->pdev->kobj, &tpm_dev_group);
> +	sysfs_remove_group(&chip->dev.parent->kobj, &tpm_dev_group);
>  }
> diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> index a4257a3..1ce6547 100644
> --- a/drivers/char/tpm/tpm.h
> +++ b/drivers/char/tpm/tpm.h
> @@ -171,7 +171,6 @@ enum tpm_chip_flags {
>  };
>  
>  struct tpm_chip {
> -	struct device *pdev;	/* Device stuff */
>  	struct device dev;
>  	struct cdev cdev;
>  
> @@ -203,7 +202,7 @@ struct tpm_chip {
>  
>  static inline void tpm_chip_put(struct tpm_chip *chip)
>  {
> -	module_put(chip->pdev->driver->owner);
> +	module_put(chip->dev.parent->driver->owner);
>  }
>  
>  static inline int tpm_read_index(int base, int index)
> diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
> index c121304..68508d4 100644
> --- a/drivers/char/tpm/tpm2-cmd.c
> +++ b/drivers/char/tpm/tpm2-cmd.c
> @@ -553,7 +553,7 @@ static void tpm2_flush_context(struct tpm_chip *chip, u32 handle)
>  
>  	rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_FLUSH_CONTEXT);
>  	if (rc) {
> -		dev_warn(chip->pdev, "0x%08x was not flushed, out of memory\n",
> +		dev_warn(&chip->dev, "0x%08x was not flushed, out of memory\n",
>  			 handle);
>  		return;
>  	}
> @@ -562,7 +562,7 @@ static void tpm2_flush_context(struct tpm_chip *chip, u32 handle)
>  
>  	rc = tpm_transmit_cmd(chip, buf.data, PAGE_SIZE, "flushing context");
>  	if (rc)
> -		dev_warn(chip->pdev, "0x%08x was not flushed, rc=%d\n", handle,
> +		dev_warn(&chip->dev, "0x%08x was not flushed, rc=%d\n", handle,
>  			 rc);
>  
>  	tpm_buf_destroy(&buf);
> @@ -724,7 +724,7 @@ void tpm2_shutdown(struct tpm_chip *chip, u16 shutdown_type)
>  	 * except print the error code on a system failure.
>  	 */
>  	if (rc < 0)
> -		dev_warn(chip->pdev, "transmit returned %d while stopping the TPM",
> +		dev_warn(&chip->dev, "transmit returned %d while stopping the TPM",
>  			 rc);
>  }
>  EXPORT_SYMBOL_GPL(tpm2_shutdown);
> @@ -791,7 +791,7 @@ static int tpm2_start_selftest(struct tpm_chip *chip, bool full)
>  	 * immediately. This is a workaround for that.
>  	 */
>  	if (rc == TPM2_RC_TESTING) {
> -		dev_warn(chip->pdev, "Got RC_TESTING, ignoring\n");
> +		dev_warn(&chip->dev, "Got RC_TESTING, ignoring\n");
>  		rc = 0;
>  	}
>  
> diff --git a/drivers/char/tpm/tpm_atmel.c b/drivers/char/tpm/tpm_atmel.c
> index dfadad0..a48a878 100644
> --- a/drivers/char/tpm/tpm_atmel.c
> +++ b/drivers/char/tpm/tpm_atmel.c
> @@ -49,7 +49,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	for (i = 0; i < 6; i++) {
>  		status = ioread8(chip->vendor.iobase + 1);
>  		if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
> -			dev_err(chip->pdev, "error reading header\n");
> +			dev_err(&chip->dev, "error reading header\n");
>  			return -EIO;
>  		}
>  		*buf++ = ioread8(chip->vendor.iobase);
> @@ -60,12 +60,12 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	size = be32_to_cpu(*native_size);
>  
>  	if (count < size) {
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"Recv size(%d) less than available space\n", size);
>  		for (; i < size; i++) {	/* clear the waiting data anyway */
>  			status = ioread8(chip->vendor.iobase + 1);
>  			if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
> -				dev_err(chip->pdev, "error reading data\n");
> +				dev_err(&chip->dev, "error reading data\n");
>  				return -EIO;
>  			}
>  		}
> @@ -76,7 +76,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	for (; i < size; i++) {
>  		status = ioread8(chip->vendor.iobase + 1);
>  		if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
> -			dev_err(chip->pdev, "error reading data\n");
> +			dev_err(&chip->dev, "error reading data\n");
>  			return -EIO;
>  		}
>  		*buf++ = ioread8(chip->vendor.iobase);
> @@ -86,7 +86,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	status = ioread8(chip->vendor.iobase + 1);
>  
>  	if (status & ATML_STATUS_DATA_AVAIL) {
> -		dev_err(chip->pdev, "data available is stuck\n");
> +		dev_err(&chip->dev, "data available is stuck\n");
>  		return -EIO;
>  	}
>  
> @@ -97,9 +97,9 @@ static int tpm_atml_send(struct tpm_chip *chip, u8 *buf, size_t count)
>  {
>  	int i;
>  
> -	dev_dbg(chip->pdev, "tpm_atml_send:\n");
> +	dev_dbg(&chip->dev, "tpm_atml_send:\n");
>  	for (i = 0; i < count; i++) {
> -		dev_dbg(chip->pdev, "%d 0x%x(%d)\n",  i, buf[i], buf[i]);
> +		dev_dbg(&chip->dev, "%d 0x%x(%d)\n",  i, buf[i], buf[i]);
>   		iowrite8(buf[i], chip->vendor.iobase);
>  	}
>  
> diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c
> index 8dfb88b..dd8f0eb 100644
> --- a/drivers/char/tpm/tpm_i2c_atmel.c
> +++ b/drivers/char/tpm/tpm_i2c_atmel.c
> @@ -52,7 +52,7 @@ struct priv_data {
>  static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
>  {
>  	struct priv_data *priv = chip->vendor.priv;
> -	struct i2c_client *client = to_i2c_client(chip->pdev);
> +	struct i2c_client *client = to_i2c_client(chip->dev.parent);
>  	s32 status;
>  
>  	priv->len = 0;
> @@ -62,7 +62,7 @@ static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
>  
>  	status = i2c_master_send(client, buf, len);
>  
> -	dev_dbg(chip->pdev,
> +	dev_dbg(&chip->dev,
>  		"%s(buf=%*ph len=%0zx) -> sts=%d\n", __func__,
>  		(int)min_t(size_t, 64, len), buf, len, status);
>  	return status;
> @@ -71,7 +71,7 @@ static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
>  static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  {
>  	struct priv_data *priv = chip->vendor.priv;
> -	struct i2c_client *client = to_i2c_client(chip->pdev);
> +	struct i2c_client *client = to_i2c_client(chip->dev.parent);
>  	struct tpm_output_header *hdr =
>  		(struct tpm_output_header *)priv->buffer;
>  	u32 expected_len;
> @@ -88,7 +88,7 @@ static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  		return -ENOMEM;
>  
>  	if (priv->len >= expected_len) {
> -		dev_dbg(chip->pdev,
> +		dev_dbg(&chip->dev,
>  			"%s early(buf=%*ph count=%0zx) -> ret=%d\n", __func__,
>  			(int)min_t(size_t, 64, expected_len), buf, count,
>  			expected_len);
> @@ -97,7 +97,7 @@ static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	}
>  
>  	rc = i2c_master_recv(client, buf, expected_len);
> -	dev_dbg(chip->pdev,
> +	dev_dbg(&chip->dev,
>  		"%s reread(buf=%*ph count=%0zx) -> ret=%d\n", __func__,
>  		(int)min_t(size_t, 64, expected_len), buf, count,
>  		expected_len);
> @@ -106,13 +106,13 @@ static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  
>  static void i2c_atmel_cancel(struct tpm_chip *chip)
>  {
> -	dev_err(chip->pdev, "TPM operation cancellation was requested, but is not supported");
> +	dev_err(&chip->dev, "TPM operation cancellation was requested, but is not supported");
>  }
>  
>  static u8 i2c_atmel_read_status(struct tpm_chip *chip)
>  {
>  	struct priv_data *priv = chip->vendor.priv;
> -	struct i2c_client *client = to_i2c_client(chip->pdev);
> +	struct i2c_client *client = to_i2c_client(chip->dev.parent);
>  	int rc;
>  
>  	/* The TPM fails the I2C read until it is ready, so we do the entire
> @@ -125,7 +125,7 @@ static u8 i2c_atmel_read_status(struct tpm_chip *chip)
>  	/* Once the TPM has completed the command the command remains readable
>  	 * until another command is issued. */
>  	rc = i2c_master_recv(client, priv->buffer, sizeof(priv->buffer));
> -	dev_dbg(chip->pdev,
> +	dev_dbg(&chip->dev,
>  		"%s: sts=%d", __func__, rc);
>  	if (rc <= 0)
>  		return 0;
> diff --git a/drivers/char/tpm/tpm_i2c_infineon.c b/drivers/char/tpm/tpm_i2c_infineon.c
> index 63d5d22..f2aa99e 100644
> --- a/drivers/char/tpm/tpm_i2c_infineon.c
> +++ b/drivers/char/tpm/tpm_i2c_infineon.c
> @@ -446,7 +446,7 @@ static int tpm_tis_i2c_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	/* read first 10 bytes, including tag, paramsize, and result */
>  	size = recv_data(chip, buf, TPM_HEADER_SIZE);
>  	if (size < TPM_HEADER_SIZE) {
> -		dev_err(chip->pdev, "Unable to read header\n");
> +		dev_err(&chip->dev, "Unable to read header\n");
>  		goto out;
>  	}
>  
> @@ -459,14 +459,14 @@ static int tpm_tis_i2c_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	size += recv_data(chip, &buf[TPM_HEADER_SIZE],
>  			  expected - TPM_HEADER_SIZE);
>  	if (size < expected) {
> -		dev_err(chip->pdev, "Unable to read remainder of result\n");
> +		dev_err(&chip->dev, "Unable to read remainder of result\n");
>  		size = -ETIME;
>  		goto out;
>  	}
>  
>  	wait_for_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c, &status);
>  	if (status & TPM_STS_DATA_AVAIL) {	/* retry? */
> -		dev_err(chip->pdev, "Error left over data\n");
> +		dev_err(&chip->dev, "Error left over data\n");
>  		size = -EIO;
>  		goto out;
>  	}
> diff --git a/drivers/char/tpm/tpm_i2c_nuvoton.c b/drivers/char/tpm/tpm_i2c_nuvoton.c
> index 847f159..a1e1474 100644
> --- a/drivers/char/tpm/tpm_i2c_nuvoton.c
> +++ b/drivers/char/tpm/tpm_i2c_nuvoton.c
> @@ -96,13 +96,13 @@ static s32 i2c_nuvoton_write_buf(struct i2c_client *client, u8 offset, u8 size,
>  /* read TPM_STS register */
>  static u8 i2c_nuvoton_read_status(struct tpm_chip *chip)
>  {
> -	struct i2c_client *client = to_i2c_client(chip->pdev);
> +	struct i2c_client *client = to_i2c_client(chip->dev.parent);
>  	s32 status;
>  	u8 data;
>  
>  	status = i2c_nuvoton_read_buf(client, TPM_STS, 1, &data);
>  	if (status <= 0) {
> -		dev_err(chip->pdev, "%s() error return %d\n", __func__,
> +		dev_err(&chip->dev, "%s() error return %d\n", __func__,
>  			status);
>  		data = TPM_STS_ERR_VAL;
>  	}
> @@ -127,13 +127,13 @@ static s32 i2c_nuvoton_write_status(struct i2c_client *client, u8 data)
>  /* write commandReady to TPM_STS register */
>  static void i2c_nuvoton_ready(struct tpm_chip *chip)
>  {
> -	struct i2c_client *client = to_i2c_client(chip->pdev);
> +	struct i2c_client *client = to_i2c_client(chip->dev.parent);
>  	s32 status;
>  
>  	/* this causes the current command to be aborted */
>  	status = i2c_nuvoton_write_status(client, TPM_STS_COMMAND_READY);
>  	if (status < 0)
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"%s() fail to write TPM_STS.commandReady\n", __func__);
>  }
>  
> @@ -212,7 +212,7 @@ static int i2c_nuvoton_wait_for_stat(struct tpm_chip *chip, u8 mask, u8 value,
>  				return 0;
>  		} while (time_before(jiffies, stop));
>  	}
> -	dev_err(chip->pdev, "%s(%02x, %02x) -> timeout\n", __func__, mask,
> +	dev_err(&chip->dev, "%s(%02x, %02x) -> timeout\n", __func__, mask,
>  		value);
>  	return -ETIMEDOUT;
>  }
> @@ -240,7 +240,7 @@ static int i2c_nuvoton_recv_data(struct i2c_client *client,
>  					       &chip->vendor.read_queue) == 0) {
>  		burst_count = i2c_nuvoton_get_burstcount(client, chip);
>  		if (burst_count < 0) {
> -			dev_err(chip->pdev,
> +			dev_err(&chip->dev,
>  				"%s() fail to read burstCount=%d\n", __func__,
>  				burst_count);
>  			return -EIO;
> @@ -249,12 +249,12 @@ static int i2c_nuvoton_recv_data(struct i2c_client *client,
>  		rc = i2c_nuvoton_read_buf(client, TPM_DATA_FIFO_R,
>  					  bytes2read, &buf[size]);
>  		if (rc < 0) {
> -			dev_err(chip->pdev,
> +			dev_err(&chip->dev,
>  				"%s() fail on i2c_nuvoton_read_buf()=%d\n",
>  				__func__, rc);
>  			return -EIO;
>  		}
> -		dev_dbg(chip->pdev, "%s(%d):", __func__, bytes2read);
> +		dev_dbg(&chip->dev, "%s(%d):", __func__, bytes2read);
>  		size += bytes2read;
>  	}
>  
> @@ -264,7 +264,7 @@ static int i2c_nuvoton_recv_data(struct i2c_client *client,
>  /* Read TPM command results */
>  static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  {
> -	struct device *dev = chip->pdev;
> +	struct device *dev = chip->dev.parent;
>  	struct i2c_client *client = to_i2c_client(dev);
>  	s32 rc;
>  	int expected, status, burst_count, retries, size = 0;
> @@ -334,7 +334,7 @@ static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  		break;
>  	}
>  	i2c_nuvoton_ready(chip);
> -	dev_dbg(chip->pdev, "%s() -> %d\n", __func__, size);
> +	dev_dbg(&chip->dev, "%s() -> %d\n", __func__, size);
>  	return size;
>  }
>  
> @@ -347,7 +347,7 @@ static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>   */
>  static int i2c_nuvoton_send(struct tpm_chip *chip, u8 *buf, size_t len)
>  {
> -	struct device *dev = chip->pdev;
> +	struct device *dev = chip->dev.parent;
>  	struct i2c_client *client = to_i2c_client(dev);
>  	u32 ordinal;
>  	size_t count = 0;
> diff --git a/drivers/char/tpm/tpm_infineon.c b/drivers/char/tpm/tpm_infineon.c
> index 6c488e6..e3cf9f3 100644
> --- a/drivers/char/tpm/tpm_infineon.c
> +++ b/drivers/char/tpm/tpm_infineon.c
> @@ -195,9 +195,9 @@ static int wait(struct tpm_chip *chip, int wait_for_bit)
>  	}
>  	if (i == TPM_MAX_TRIES) {	/* timeout occurs */
>  		if (wait_for_bit == STAT_XFE)
> -			dev_err(chip->pdev, "Timeout in wait(STAT_XFE)\n");
> +			dev_err(&chip->dev, "Timeout in wait(STAT_XFE)\n");
>  		if (wait_for_bit == STAT_RDA)
> -			dev_err(chip->pdev, "Timeout in wait(STAT_RDA)\n");
> +			dev_err(&chip->dev, "Timeout in wait(STAT_RDA)\n");
>  		return -EIO;
>  	}
>  	return 0;
> @@ -220,7 +220,7 @@ static void wait_and_send(struct tpm_chip *chip, u8 sendbyte)
>  static void tpm_wtx(struct tpm_chip *chip)
>  {
>  	number_of_wtx++;
> -	dev_info(chip->pdev, "Granting WTX (%02d / %02d)\n",
> +	dev_info(&chip->dev, "Granting WTX (%02d / %02d)\n",
>  		 number_of_wtx, TPM_MAX_WTX_PACKAGES);
>  	wait_and_send(chip, TPM_VL_VER);
>  	wait_and_send(chip, TPM_CTRL_WTX);
> @@ -231,7 +231,7 @@ static void tpm_wtx(struct tpm_chip *chip)
>  
>  static void tpm_wtx_abort(struct tpm_chip *chip)
>  {
> -	dev_info(chip->pdev, "Aborting WTX\n");
> +	dev_info(&chip->dev, "Aborting WTX\n");
>  	wait_and_send(chip, TPM_VL_VER);
>  	wait_and_send(chip, TPM_CTRL_WTX_ABORT);
>  	wait_and_send(chip, 0x00);
> @@ -257,7 +257,7 @@ recv_begin:
>  	}
>  
>  	if (buf[0] != TPM_VL_VER) {
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"Wrong transport protocol implementation!\n");
>  		return -EIO;
>  	}
> @@ -272,7 +272,7 @@ recv_begin:
>  		}
>  
>  		if ((size == 0x6D00) && (buf[1] == 0x80)) {
> -			dev_err(chip->pdev, "Error handling on vendor layer!\n");
> +			dev_err(&chip->dev, "Error handling on vendor layer!\n");
>  			return -EIO;
>  		}
>  
> @@ -284,7 +284,7 @@ recv_begin:
>  	}
>  
>  	if (buf[1] == TPM_CTRL_WTX) {
> -		dev_info(chip->pdev, "WTX-package received\n");
> +		dev_info(&chip->dev, "WTX-package received\n");
>  		if (number_of_wtx < TPM_MAX_WTX_PACKAGES) {
>  			tpm_wtx(chip);
>  			goto recv_begin;
> @@ -295,14 +295,14 @@ recv_begin:
>  	}
>  
>  	if (buf[1] == TPM_CTRL_WTX_ABORT_ACK) {
> -		dev_info(chip->pdev, "WTX-abort acknowledged\n");
> +		dev_info(&chip->dev, "WTX-abort acknowledged\n");
>  		return size;
>  	}
>  
>  	if (buf[1] == TPM_CTRL_ERROR) {
> -		dev_err(chip->pdev, "ERROR-package received:\n");
> +		dev_err(&chip->dev, "ERROR-package received:\n");
>  		if (buf[4] == TPM_INF_NAK)
> -			dev_err(chip->pdev,
> +			dev_err(&chip->dev,
>  				"-> Negative acknowledgement"
>  				" - retransmit command!\n");
>  		return -EIO;
> @@ -321,7 +321,7 @@ static int tpm_inf_send(struct tpm_chip *chip, u8 * buf, size_t count)
>  
>  	ret = empty_fifo(chip, 1);
>  	if (ret) {
> -		dev_err(chip->pdev, "Timeout while clearing FIFO\n");
> +		dev_err(&chip->dev, "Timeout while clearing FIFO\n");
>  		return -EIO;
>  	}
>  
> diff --git a/drivers/char/tpm/tpm_nsc.c b/drivers/char/tpm/tpm_nsc.c
> index 289389e..766370b 100644
> --- a/drivers/char/tpm/tpm_nsc.c
> +++ b/drivers/char/tpm/tpm_nsc.c
> @@ -113,7 +113,7 @@ static int nsc_wait_for_ready(struct tpm_chip *chip)
>  	}
>  	while (time_before(jiffies, stop));
>  
> -	dev_info(chip->pdev, "wait for ready failed\n");
> +	dev_info(&chip->dev, "wait for ready failed\n");
>  	return -EBUSY;
>  }
>  
> @@ -129,12 +129,12 @@ static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
>  		return -EIO;
>  
>  	if (wait_for_stat(chip, NSC_STATUS_F0, NSC_STATUS_F0, &data) < 0) {
> -		dev_err(chip->pdev, "F0 timeout\n");
> +		dev_err(&chip->dev, "F0 timeout\n");
>  		return -EIO;
>  	}
>  	if ((data =
>  	     inb(chip->vendor.base + NSC_DATA)) != NSC_COMMAND_NORMAL) {
> -		dev_err(chip->pdev, "not in normal mode (0x%x)\n",
> +		dev_err(&chip->dev, "not in normal mode (0x%x)\n",
>  			data);
>  		return -EIO;
>  	}
> @@ -143,7 +143,7 @@ static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
>  	for (p = buffer; p < &buffer[count]; p++) {
>  		if (wait_for_stat
>  		    (chip, NSC_STATUS_OBF, NSC_STATUS_OBF, &data) < 0) {
> -			dev_err(chip->pdev,
> +			dev_err(&chip->dev,
>  				"OBF timeout (while reading data)\n");
>  			return -EIO;
>  		}
> @@ -154,11 +154,11 @@ static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
>  
>  	if ((data & NSC_STATUS_F0) == 0 &&
>  	(wait_for_stat(chip, NSC_STATUS_F0, NSC_STATUS_F0, &data) < 0)) {
> -		dev_err(chip->pdev, "F0 not set\n");
> +		dev_err(&chip->dev, "F0 not set\n");
>  		return -EIO;
>  	}
>  	if ((data = inb(chip->vendor.base + NSC_DATA)) != NSC_COMMAND_EOC) {
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			"expected end of command(0x%x)\n", data);
>  		return -EIO;
>  	}
> @@ -189,19 +189,19 @@ static int tpm_nsc_send(struct tpm_chip *chip, u8 * buf, size_t count)
>  		return -EIO;
>  
>  	if (wait_for_stat(chip, NSC_STATUS_IBF, 0, &data) < 0) {
> -		dev_err(chip->pdev, "IBF timeout\n");
> +		dev_err(&chip->dev, "IBF timeout\n");
>  		return -EIO;
>  	}
>  
>  	outb(NSC_COMMAND_NORMAL, chip->vendor.base + NSC_COMMAND);
>  	if (wait_for_stat(chip, NSC_STATUS_IBR, NSC_STATUS_IBR, &data) < 0) {
> -		dev_err(chip->pdev, "IBR timeout\n");
> +		dev_err(&chip->dev, "IBR timeout\n");
>  		return -EIO;
>  	}
>  
>  	for (i = 0; i < count; i++) {
>  		if (wait_for_stat(chip, NSC_STATUS_IBF, 0, &data) < 0) {
> -			dev_err(chip->pdev,
> +			dev_err(&chip->dev,
>  				"IBF timeout (while writing data)\n");
>  			return -EIO;
>  		}
> @@ -209,7 +209,7 @@ static int tpm_nsc_send(struct tpm_chip *chip, u8 * buf, size_t count)
>  	}
>  
>  	if (wait_for_stat(chip, NSC_STATUS_IBF, 0, &data) < 0) {
> -		dev_err(chip->pdev, "IBF timeout\n");
> +		dev_err(&chip->dev, "IBF timeout\n");
>  		return -EIO;
>  	}
>  	outb(NSC_COMMAND_EOC, chip->vendor.base + NSC_COMMAND);
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index 65f7eec..0b5fc41 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -293,7 +293,7 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	/* read first 10 bytes, including tag, paramsize, and result */
>  	if ((size =
>  	     recv_data(chip, buf, TPM_HEADER_SIZE)) < TPM_HEADER_SIZE) {
> -		dev_err(chip->pdev, "Unable to read header\n");
> +		dev_err(&chip->dev, "Unable to read header\n");
>  		goto out;
>  	}
>  
> @@ -306,7 +306,7 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  	if ((size +=
>  	     recv_data(chip, &buf[TPM_HEADER_SIZE],
>  		       expected - TPM_HEADER_SIZE)) < expected) {
> -		dev_err(chip->pdev, "Unable to read remainder of result\n");
> +		dev_err(&chip->dev, "Unable to read remainder of result\n");
>  		size = -ETIME;
>  		goto out;
>  	}
> @@ -315,7 +315,7 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count)
>  			  &chip->vendor.int_queue, false);
>  	status = tpm_tis_status(chip);
>  	if (status & TPM_STS_DATA_AVAIL) {	/* retry? */
> -		dev_err(chip->pdev, "Error left over data\n");
> +		dev_err(&chip->dev, "Error left over data\n");
>  		size = -EIO;
>  		goto out;
>  	}
> @@ -463,7 +463,7 @@ static int tpm_tis_send(struct tpm_chip *chip, u8 *buf, size_t len)
>  		msleep(1);
>  	if (!priv->irq_tested) {
>  		disable_interrupts(chip);
> -		dev_err(chip->pdev,
> +		dev_err(&chip->dev,
>  			FW_BUG "TPM interrupt not working, polling instead\n");
>  	}
>  	priv->irq_tested = true;
> @@ -533,7 +533,7 @@ static int probe_itpm(struct tpm_chip *chip)
>  
>  	rc = tpm_tis_send_data(chip, cmd_getticks, len);
>  	if (rc == 0) {
> -		dev_info(chip->pdev, "Detected an iTPM.\n");
> +		dev_info(&chip->dev, "Detected an iTPM.\n");
>  		rc = 1;
>  	} else
>  		rc = -EFAULT;
> @@ -766,7 +766,7 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
>  			if (devm_request_irq
>  			    (dev, i, tis_int_probe, IRQF_SHARED,
>  			     chip->devname, chip) != 0) {
> -				dev_info(chip->pdev,
> +				dev_info(&chip->dev,
>  					 "Unable to request irq: %d for probe\n",
>  					 i);
>  				continue;
> @@ -818,7 +818,7 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
>  		if (devm_request_irq
>  		    (dev, chip->vendor.irq, tis_int_handler, IRQF_SHARED,
>  		     chip->devname, chip) != 0) {
> -			dev_info(chip->pdev,
> +			dev_info(&chip->dev,
>  				 "Unable to request irq: %d for use\n",
>  				 chip->vendor.irq);
>  			chip->vendor.irq = 0;
> -- 
> 2.4.3
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

Patch
diff mbox

diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index ab32437..5ed9bed 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -49,7 +49,7 @@  struct tpm_chip *tpm_chip_find_get(int chip_num)
 		if (chip_num != TPM_ANY_NUM && chip_num != pos->dev_num)
 			continue;
 
-		if (try_module_get(pos->pdev->driver->owner)) {
+		if (try_module_get(pos->dev.parent->driver->owner)) {
 			chip = pos;
 			break;
 		}
@@ -113,13 +113,11 @@  struct tpm_chip *tpmm_chip_alloc(struct device *dev,
 
 	scnprintf(chip->devname, sizeof(chip->devname), "tpm%d", chip->dev_num);
 
-	chip->pdev = dev;
-
 	dev_set_drvdata(dev, chip);
 
 	chip->dev.class = tpm_class;
 	chip->dev.release = tpm_dev_release;
-	chip->dev.parent = chip->pdev;
+	chip->dev.parent = dev;
 #ifdef CONFIG_ACPI
 	chip->dev.groups = chip->groups;
 #endif
@@ -134,7 +132,7 @@  struct tpm_chip *tpmm_chip_alloc(struct device *dev,
 	device_initialize(&chip->dev);
 
 	cdev_init(&chip->cdev, &tpm_fops);
-	chip->cdev.owner = chip->pdev->driver->owner;
+	chip->cdev.owner = dev->driver->owner;
 	chip->cdev.kobj.parent = &chip->dev.kobj;
 
 	err = devm_add_action(dev, (void (*)(void *)) put_device, &chip->dev);
@@ -241,9 +239,8 @@  int tpm_chip_register(struct tpm_chip *chip)
 	chip->flags |= TPM_CHIP_FLAG_REGISTERED;
 
 	if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) {
-		rc = __compat_only_sysfs_link_entry_to_kobj(&chip->pdev->kobj,
-							    &chip->dev.kobj,
-							    "ppi");
+		rc = __compat_only_sysfs_link_entry_to_kobj(
+		    &chip->dev.parent->kobj, &chip->dev.kobj, "ppi");
 		if (rc && rc != -ENOENT) {
 			tpm_chip_unregister(chip);
 			return rc;
@@ -278,7 +275,7 @@  void tpm_chip_unregister(struct tpm_chip *chip)
 	synchronize_rcu();
 
 	if (!(chip->flags & TPM_CHIP_FLAG_TPM2))
-		sysfs_remove_link(&chip->pdev->kobj, "ppi");
+		sysfs_remove_link(&chip->dev.parent->kobj, "ppi");
 
 	tpm1_chip_unregister(chip);
 	tpm_dev_del_device(chip);
diff --git a/drivers/char/tpm/tpm-dev.c b/drivers/char/tpm/tpm-dev.c
index de0337e..4009765 100644
--- a/drivers/char/tpm/tpm-dev.c
+++ b/drivers/char/tpm/tpm-dev.c
@@ -61,7 +61,7 @@  static int tpm_open(struct inode *inode, struct file *file)
 	 * by the check of is_open variable, which is protected
 	 * by driver_lock. */
 	if (test_and_set_bit(0, &chip->is_open)) {
-		dev_dbg(chip->pdev, "Another process owns this TPM\n");
+		dev_dbg(&chip->dev, "Another process owns this TPM\n");
 		return -EBUSY;
 	}
 
@@ -79,7 +79,6 @@  static int tpm_open(struct inode *inode, struct file *file)
 	INIT_WORK(&priv->work, timeout_work);
 
 	file->private_data = priv;
-	get_device(chip->pdev);
 	return 0;
 }
 
@@ -166,7 +165,6 @@  static int tpm_release(struct inode *inode, struct file *file)
 	file->private_data = NULL;
 	atomic_set(&priv->data_pending, 0);
 	clear_bit(0, &priv->chip->is_open);
-	put_device(priv->chip->pdev);
 	kfree(priv);
 	return 0;
 }
diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
index c50637d..65dc7fd 100644
--- a/drivers/char/tpm/tpm-interface.c
+++ b/drivers/char/tpm/tpm-interface.c
@@ -343,7 +343,7 @@  ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
 	if (count == 0)
 		return -ENODATA;
 	if (count > bufsiz) {
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"invalid count value %x %zx\n", count, bufsiz);
 		return -E2BIG;
 	}
@@ -352,7 +352,7 @@  ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
 
 	rc = chip->ops->send(chip, (u8 *) buf, count);
 	if (rc < 0) {
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"tpm_transmit: tpm_send: error %zd\n", rc);
 		goto out;
 	}
@@ -371,7 +371,7 @@  ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
 			goto out_recv;
 
 		if (chip->ops->req_canceled(chip, status)) {
-			dev_err(chip->pdev, "Operation Canceled\n");
+			dev_err(&chip->dev, "Operation Canceled\n");
 			rc = -ECANCELED;
 			goto out;
 		}
@@ -381,14 +381,14 @@  ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
 	} while (time_before(jiffies, stop));
 
 	chip->ops->cancel(chip);
-	dev_err(chip->pdev, "Operation Timed out\n");
+	dev_err(&chip->dev, "Operation Timed out\n");
 	rc = -ETIME;
 	goto out;
 
 out_recv:
 	rc = chip->ops->recv(chip, (u8 *) buf, bufsiz);
 	if (rc < 0)
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"tpm_transmit: tpm_recv: error %zd\n", rc);
 out:
 	mutex_unlock(&chip->tpm_mutex);
@@ -414,7 +414,7 @@  ssize_t tpm_transmit_cmd(struct tpm_chip *chip, void *cmd,
 
 	err = be32_to_cpu(header->return_code);
 	if (err != 0 && desc)
-		dev_err(chip->pdev, "A TPM error (%d) occurred %s\n", err,
+		dev_err(&chip->dev, "A TPM error (%d) occurred %s\n", err,
 			desc);
 
 	return err;
@@ -510,7 +510,7 @@  int tpm_get_timeouts(struct tpm_chip *chip)
 	if (rc == TPM_ERR_INVALID_POSTINIT) {
 		/* The TPM is not started, we are the first to talk to it.
 		   Execute a startup command. */
-		dev_info(chip->pdev, "Issuing TPM_STARTUP");
+		dev_info(&chip->dev, "Issuing TPM_STARTUP");
 		if (tpm_startup(chip, TPM_ST_CLEAR))
 			return rc;
 
@@ -522,7 +522,7 @@  int tpm_get_timeouts(struct tpm_chip *chip)
 				  NULL);
 	}
 	if (rc) {
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"A TPM error (%zd) occurred attempting to determine the timeouts\n",
 			rc);
 		goto duration;
@@ -561,7 +561,7 @@  int tpm_get_timeouts(struct tpm_chip *chip)
 
 	/* Report adjusted timeouts */
 	if (chip->vendor.timeout_adjusted) {
-		dev_info(chip->pdev,
+		dev_info(&chip->dev,
 			 HW_ERR "Adjusting reported timeouts: A %lu->%luus B %lu->%luus C %lu->%luus D %lu->%luus\n",
 			 old_timeout[0], new_timeout[0],
 			 old_timeout[1], new_timeout[1],
@@ -608,7 +608,7 @@  duration:
 		chip->vendor.duration[TPM_MEDIUM] *= 1000;
 		chip->vendor.duration[TPM_LONG] *= 1000;
 		chip->vendor.duration_adjusted = true;
-		dev_info(chip->pdev, "Adjusting TPM timeout parameters.");
+		dev_info(&chip->dev, "Adjusting TPM timeout parameters.");
 	}
 	return 0;
 }
@@ -798,7 +798,9 @@  int tpm_do_selftest(struct tpm_chip *chip)
 		 * around 300ms while the self test is ongoing, keep trying
 		 * until the self test duration expires. */
 		if (rc == -ETIME) {
-			dev_info(chip->pdev, HW_ERR "TPM command timed out during continue self test");
+			dev_info(
+			    &chip->dev, HW_ERR
+			    "TPM command timed out during continue self test");
 			msleep(delay_msec);
 			continue;
 		}
@@ -808,7 +810,7 @@  int tpm_do_selftest(struct tpm_chip *chip)
 
 		rc = be32_to_cpu(cmd.header.out.return_code);
 		if (rc == TPM_ERR_DISABLED || rc == TPM_ERR_DEACTIVATED) {
-			dev_info(chip->pdev,
+			dev_info(&chip->dev,
 				 "TPM is disabled/deactivated (0x%X)\n", rc);
 			/* TPM is disabled and/or deactivated; driver can
 			 * proceed and TPM does handle commands for
@@ -961,10 +963,10 @@  int tpm_pm_suspend(struct device *dev)
 	}
 
 	if (rc)
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"Error (%d) sending savestate before suspend\n", rc);
 	else if (try > 0)
-		dev_warn(chip->pdev, "TPM savestate took %dms\n",
+		dev_warn(&chip->dev, "TPM savestate took %dms\n",
 			 try * TPM_TIMEOUT_RETRY);
 
 	return rc;
diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char/tpm/tpm-sysfs.c
index ee66fd4..d93736a 100644
--- a/drivers/char/tpm/tpm-sysfs.c
+++ b/drivers/char/tpm/tpm-sysfs.c
@@ -284,16 +284,16 @@  static const struct attribute_group tpm_dev_group = {
 int tpm_sysfs_add_device(struct tpm_chip *chip)
 {
 	int err;
-	err = sysfs_create_group(&chip->pdev->kobj,
+	err = sysfs_create_group(&chip->dev.parent->kobj,
 				 &tpm_dev_group);
 
 	if (err)
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"failed to create sysfs attributes, %d\n", err);
 	return err;
 }
 
 void tpm_sysfs_del_device(struct tpm_chip *chip)
 {
-	sysfs_remove_group(&chip->pdev->kobj, &tpm_dev_group);
+	sysfs_remove_group(&chip->dev.parent->kobj, &tpm_dev_group);
 }
diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
index a4257a3..1ce6547 100644
--- a/drivers/char/tpm/tpm.h
+++ b/drivers/char/tpm/tpm.h
@@ -171,7 +171,6 @@  enum tpm_chip_flags {
 };
 
 struct tpm_chip {
-	struct device *pdev;	/* Device stuff */
 	struct device dev;
 	struct cdev cdev;
 
@@ -203,7 +202,7 @@  struct tpm_chip {
 
 static inline void tpm_chip_put(struct tpm_chip *chip)
 {
-	module_put(chip->pdev->driver->owner);
+	module_put(chip->dev.parent->driver->owner);
 }
 
 static inline int tpm_read_index(int base, int index)
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index c121304..68508d4 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -553,7 +553,7 @@  static void tpm2_flush_context(struct tpm_chip *chip, u32 handle)
 
 	rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_FLUSH_CONTEXT);
 	if (rc) {
-		dev_warn(chip->pdev, "0x%08x was not flushed, out of memory\n",
+		dev_warn(&chip->dev, "0x%08x was not flushed, out of memory\n",
 			 handle);
 		return;
 	}
@@ -562,7 +562,7 @@  static void tpm2_flush_context(struct tpm_chip *chip, u32 handle)
 
 	rc = tpm_transmit_cmd(chip, buf.data, PAGE_SIZE, "flushing context");
 	if (rc)
-		dev_warn(chip->pdev, "0x%08x was not flushed, rc=%d\n", handle,
+		dev_warn(&chip->dev, "0x%08x was not flushed, rc=%d\n", handle,
 			 rc);
 
 	tpm_buf_destroy(&buf);
@@ -724,7 +724,7 @@  void tpm2_shutdown(struct tpm_chip *chip, u16 shutdown_type)
 	 * except print the error code on a system failure.
 	 */
 	if (rc < 0)
-		dev_warn(chip->pdev, "transmit returned %d while stopping the TPM",
+		dev_warn(&chip->dev, "transmit returned %d while stopping the TPM",
 			 rc);
 }
 EXPORT_SYMBOL_GPL(tpm2_shutdown);
@@ -791,7 +791,7 @@  static int tpm2_start_selftest(struct tpm_chip *chip, bool full)
 	 * immediately. This is a workaround for that.
 	 */
 	if (rc == TPM2_RC_TESTING) {
-		dev_warn(chip->pdev, "Got RC_TESTING, ignoring\n");
+		dev_warn(&chip->dev, "Got RC_TESTING, ignoring\n");
 		rc = 0;
 	}
 
diff --git a/drivers/char/tpm/tpm_atmel.c b/drivers/char/tpm/tpm_atmel.c
index dfadad0..a48a878 100644
--- a/drivers/char/tpm/tpm_atmel.c
+++ b/drivers/char/tpm/tpm_atmel.c
@@ -49,7 +49,7 @@  static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	for (i = 0; i < 6; i++) {
 		status = ioread8(chip->vendor.iobase + 1);
 		if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
-			dev_err(chip->pdev, "error reading header\n");
+			dev_err(&chip->dev, "error reading header\n");
 			return -EIO;
 		}
 		*buf++ = ioread8(chip->vendor.iobase);
@@ -60,12 +60,12 @@  static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	size = be32_to_cpu(*native_size);
 
 	if (count < size) {
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"Recv size(%d) less than available space\n", size);
 		for (; i < size; i++) {	/* clear the waiting data anyway */
 			status = ioread8(chip->vendor.iobase + 1);
 			if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
-				dev_err(chip->pdev, "error reading data\n");
+				dev_err(&chip->dev, "error reading data\n");
 				return -EIO;
 			}
 		}
@@ -76,7 +76,7 @@  static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	for (; i < size; i++) {
 		status = ioread8(chip->vendor.iobase + 1);
 		if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
-			dev_err(chip->pdev, "error reading data\n");
+			dev_err(&chip->dev, "error reading data\n");
 			return -EIO;
 		}
 		*buf++ = ioread8(chip->vendor.iobase);
@@ -86,7 +86,7 @@  static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	status = ioread8(chip->vendor.iobase + 1);
 
 	if (status & ATML_STATUS_DATA_AVAIL) {
-		dev_err(chip->pdev, "data available is stuck\n");
+		dev_err(&chip->dev, "data available is stuck\n");
 		return -EIO;
 	}
 
@@ -97,9 +97,9 @@  static int tpm_atml_send(struct tpm_chip *chip, u8 *buf, size_t count)
 {
 	int i;
 
-	dev_dbg(chip->pdev, "tpm_atml_send:\n");
+	dev_dbg(&chip->dev, "tpm_atml_send:\n");
 	for (i = 0; i < count; i++) {
-		dev_dbg(chip->pdev, "%d 0x%x(%d)\n",  i, buf[i], buf[i]);
+		dev_dbg(&chip->dev, "%d 0x%x(%d)\n",  i, buf[i], buf[i]);
  		iowrite8(buf[i], chip->vendor.iobase);
 	}
 
diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c
index 8dfb88b..dd8f0eb 100644
--- a/drivers/char/tpm/tpm_i2c_atmel.c
+++ b/drivers/char/tpm/tpm_i2c_atmel.c
@@ -52,7 +52,7 @@  struct priv_data {
 static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
 {
 	struct priv_data *priv = chip->vendor.priv;
-	struct i2c_client *client = to_i2c_client(chip->pdev);
+	struct i2c_client *client = to_i2c_client(chip->dev.parent);
 	s32 status;
 
 	priv->len = 0;
@@ -62,7 +62,7 @@  static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
 
 	status = i2c_master_send(client, buf, len);
 
-	dev_dbg(chip->pdev,
+	dev_dbg(&chip->dev,
 		"%s(buf=%*ph len=%0zx) -> sts=%d\n", __func__,
 		(int)min_t(size_t, 64, len), buf, len, status);
 	return status;
@@ -71,7 +71,7 @@  static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
 static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 {
 	struct priv_data *priv = chip->vendor.priv;
-	struct i2c_client *client = to_i2c_client(chip->pdev);
+	struct i2c_client *client = to_i2c_client(chip->dev.parent);
 	struct tpm_output_header *hdr =
 		(struct tpm_output_header *)priv->buffer;
 	u32 expected_len;
@@ -88,7 +88,7 @@  static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 		return -ENOMEM;
 
 	if (priv->len >= expected_len) {
-		dev_dbg(chip->pdev,
+		dev_dbg(&chip->dev,
 			"%s early(buf=%*ph count=%0zx) -> ret=%d\n", __func__,
 			(int)min_t(size_t, 64, expected_len), buf, count,
 			expected_len);
@@ -97,7 +97,7 @@  static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	}
 
 	rc = i2c_master_recv(client, buf, expected_len);
-	dev_dbg(chip->pdev,
+	dev_dbg(&chip->dev,
 		"%s reread(buf=%*ph count=%0zx) -> ret=%d\n", __func__,
 		(int)min_t(size_t, 64, expected_len), buf, count,
 		expected_len);
@@ -106,13 +106,13 @@  static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 
 static void i2c_atmel_cancel(struct tpm_chip *chip)
 {
-	dev_err(chip->pdev, "TPM operation cancellation was requested, but is not supported");
+	dev_err(&chip->dev, "TPM operation cancellation was requested, but is not supported");
 }
 
 static u8 i2c_atmel_read_status(struct tpm_chip *chip)
 {
 	struct priv_data *priv = chip->vendor.priv;
-	struct i2c_client *client = to_i2c_client(chip->pdev);
+	struct i2c_client *client = to_i2c_client(chip->dev.parent);
 	int rc;
 
 	/* The TPM fails the I2C read until it is ready, so we do the entire
@@ -125,7 +125,7 @@  static u8 i2c_atmel_read_status(struct tpm_chip *chip)
 	/* Once the TPM has completed the command the command remains readable
 	 * until another command is issued. */
 	rc = i2c_master_recv(client, priv->buffer, sizeof(priv->buffer));
-	dev_dbg(chip->pdev,
+	dev_dbg(&chip->dev,
 		"%s: sts=%d", __func__, rc);
 	if (rc <= 0)
 		return 0;
diff --git a/drivers/char/tpm/tpm_i2c_infineon.c b/drivers/char/tpm/tpm_i2c_infineon.c
index 63d5d22..f2aa99e 100644
--- a/drivers/char/tpm/tpm_i2c_infineon.c
+++ b/drivers/char/tpm/tpm_i2c_infineon.c
@@ -446,7 +446,7 @@  static int tpm_tis_i2c_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	/* read first 10 bytes, including tag, paramsize, and result */
 	size = recv_data(chip, buf, TPM_HEADER_SIZE);
 	if (size < TPM_HEADER_SIZE) {
-		dev_err(chip->pdev, "Unable to read header\n");
+		dev_err(&chip->dev, "Unable to read header\n");
 		goto out;
 	}
 
@@ -459,14 +459,14 @@  static int tpm_tis_i2c_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	size += recv_data(chip, &buf[TPM_HEADER_SIZE],
 			  expected - TPM_HEADER_SIZE);
 	if (size < expected) {
-		dev_err(chip->pdev, "Unable to read remainder of result\n");
+		dev_err(&chip->dev, "Unable to read remainder of result\n");
 		size = -ETIME;
 		goto out;
 	}
 
 	wait_for_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c, &status);
 	if (status & TPM_STS_DATA_AVAIL) {	/* retry? */
-		dev_err(chip->pdev, "Error left over data\n");
+		dev_err(&chip->dev, "Error left over data\n");
 		size = -EIO;
 		goto out;
 	}
diff --git a/drivers/char/tpm/tpm_i2c_nuvoton.c b/drivers/char/tpm/tpm_i2c_nuvoton.c
index 847f159..a1e1474 100644
--- a/drivers/char/tpm/tpm_i2c_nuvoton.c
+++ b/drivers/char/tpm/tpm_i2c_nuvoton.c
@@ -96,13 +96,13 @@  static s32 i2c_nuvoton_write_buf(struct i2c_client *client, u8 offset, u8 size,
 /* read TPM_STS register */
 static u8 i2c_nuvoton_read_status(struct tpm_chip *chip)
 {
-	struct i2c_client *client = to_i2c_client(chip->pdev);
+	struct i2c_client *client = to_i2c_client(chip->dev.parent);
 	s32 status;
 	u8 data;
 
 	status = i2c_nuvoton_read_buf(client, TPM_STS, 1, &data);
 	if (status <= 0) {
-		dev_err(chip->pdev, "%s() error return %d\n", __func__,
+		dev_err(&chip->dev, "%s() error return %d\n", __func__,
 			status);
 		data = TPM_STS_ERR_VAL;
 	}
@@ -127,13 +127,13 @@  static s32 i2c_nuvoton_write_status(struct i2c_client *client, u8 data)
 /* write commandReady to TPM_STS register */
 static void i2c_nuvoton_ready(struct tpm_chip *chip)
 {
-	struct i2c_client *client = to_i2c_client(chip->pdev);
+	struct i2c_client *client = to_i2c_client(chip->dev.parent);
 	s32 status;
 
 	/* this causes the current command to be aborted */
 	status = i2c_nuvoton_write_status(client, TPM_STS_COMMAND_READY);
 	if (status < 0)
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"%s() fail to write TPM_STS.commandReady\n", __func__);
 }
 
@@ -212,7 +212,7 @@  static int i2c_nuvoton_wait_for_stat(struct tpm_chip *chip, u8 mask, u8 value,
 				return 0;
 		} while (time_before(jiffies, stop));
 	}
-	dev_err(chip->pdev, "%s(%02x, %02x) -> timeout\n", __func__, mask,
+	dev_err(&chip->dev, "%s(%02x, %02x) -> timeout\n", __func__, mask,
 		value);
 	return -ETIMEDOUT;
 }
@@ -240,7 +240,7 @@  static int i2c_nuvoton_recv_data(struct i2c_client *client,
 					       &chip->vendor.read_queue) == 0) {
 		burst_count = i2c_nuvoton_get_burstcount(client, chip);
 		if (burst_count < 0) {
-			dev_err(chip->pdev,
+			dev_err(&chip->dev,
 				"%s() fail to read burstCount=%d\n", __func__,
 				burst_count);
 			return -EIO;
@@ -249,12 +249,12 @@  static int i2c_nuvoton_recv_data(struct i2c_client *client,
 		rc = i2c_nuvoton_read_buf(client, TPM_DATA_FIFO_R,
 					  bytes2read, &buf[size]);
 		if (rc < 0) {
-			dev_err(chip->pdev,
+			dev_err(&chip->dev,
 				"%s() fail on i2c_nuvoton_read_buf()=%d\n",
 				__func__, rc);
 			return -EIO;
 		}
-		dev_dbg(chip->pdev, "%s(%d):", __func__, bytes2read);
+		dev_dbg(&chip->dev, "%s(%d):", __func__, bytes2read);
 		size += bytes2read;
 	}
 
@@ -264,7 +264,7 @@  static int i2c_nuvoton_recv_data(struct i2c_client *client,
 /* Read TPM command results */
 static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 {
-	struct device *dev = chip->pdev;
+	struct device *dev = chip->dev.parent;
 	struct i2c_client *client = to_i2c_client(dev);
 	s32 rc;
 	int expected, status, burst_count, retries, size = 0;
@@ -334,7 +334,7 @@  static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 		break;
 	}
 	i2c_nuvoton_ready(chip);
-	dev_dbg(chip->pdev, "%s() -> %d\n", __func__, size);
+	dev_dbg(&chip->dev, "%s() -> %d\n", __func__, size);
 	return size;
 }
 
@@ -347,7 +347,7 @@  static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count)
  */
 static int i2c_nuvoton_send(struct tpm_chip *chip, u8 *buf, size_t len)
 {
-	struct device *dev = chip->pdev;
+	struct device *dev = chip->dev.parent;
 	struct i2c_client *client = to_i2c_client(dev);
 	u32 ordinal;
 	size_t count = 0;
diff --git a/drivers/char/tpm/tpm_infineon.c b/drivers/char/tpm/tpm_infineon.c
index 6c488e6..e3cf9f3 100644
--- a/drivers/char/tpm/tpm_infineon.c
+++ b/drivers/char/tpm/tpm_infineon.c
@@ -195,9 +195,9 @@  static int wait(struct tpm_chip *chip, int wait_for_bit)
 	}
 	if (i == TPM_MAX_TRIES) {	/* timeout occurs */
 		if (wait_for_bit == STAT_XFE)
-			dev_err(chip->pdev, "Timeout in wait(STAT_XFE)\n");
+			dev_err(&chip->dev, "Timeout in wait(STAT_XFE)\n");
 		if (wait_for_bit == STAT_RDA)
-			dev_err(chip->pdev, "Timeout in wait(STAT_RDA)\n");
+			dev_err(&chip->dev, "Timeout in wait(STAT_RDA)\n");
 		return -EIO;
 	}
 	return 0;
@@ -220,7 +220,7 @@  static void wait_and_send(struct tpm_chip *chip, u8 sendbyte)
 static void tpm_wtx(struct tpm_chip *chip)
 {
 	number_of_wtx++;
-	dev_info(chip->pdev, "Granting WTX (%02d / %02d)\n",
+	dev_info(&chip->dev, "Granting WTX (%02d / %02d)\n",
 		 number_of_wtx, TPM_MAX_WTX_PACKAGES);
 	wait_and_send(chip, TPM_VL_VER);
 	wait_and_send(chip, TPM_CTRL_WTX);
@@ -231,7 +231,7 @@  static void tpm_wtx(struct tpm_chip *chip)
 
 static void tpm_wtx_abort(struct tpm_chip *chip)
 {
-	dev_info(chip->pdev, "Aborting WTX\n");
+	dev_info(&chip->dev, "Aborting WTX\n");
 	wait_and_send(chip, TPM_VL_VER);
 	wait_and_send(chip, TPM_CTRL_WTX_ABORT);
 	wait_and_send(chip, 0x00);
@@ -257,7 +257,7 @@  recv_begin:
 	}
 
 	if (buf[0] != TPM_VL_VER) {
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"Wrong transport protocol implementation!\n");
 		return -EIO;
 	}
@@ -272,7 +272,7 @@  recv_begin:
 		}
 
 		if ((size == 0x6D00) && (buf[1] == 0x80)) {
-			dev_err(chip->pdev, "Error handling on vendor layer!\n");
+			dev_err(&chip->dev, "Error handling on vendor layer!\n");
 			return -EIO;
 		}
 
@@ -284,7 +284,7 @@  recv_begin:
 	}
 
 	if (buf[1] == TPM_CTRL_WTX) {
-		dev_info(chip->pdev, "WTX-package received\n");
+		dev_info(&chip->dev, "WTX-package received\n");
 		if (number_of_wtx < TPM_MAX_WTX_PACKAGES) {
 			tpm_wtx(chip);
 			goto recv_begin;
@@ -295,14 +295,14 @@  recv_begin:
 	}
 
 	if (buf[1] == TPM_CTRL_WTX_ABORT_ACK) {
-		dev_info(chip->pdev, "WTX-abort acknowledged\n");
+		dev_info(&chip->dev, "WTX-abort acknowledged\n");
 		return size;
 	}
 
 	if (buf[1] == TPM_CTRL_ERROR) {
-		dev_err(chip->pdev, "ERROR-package received:\n");
+		dev_err(&chip->dev, "ERROR-package received:\n");
 		if (buf[4] == TPM_INF_NAK)
-			dev_err(chip->pdev,
+			dev_err(&chip->dev,
 				"-> Negative acknowledgement"
 				" - retransmit command!\n");
 		return -EIO;
@@ -321,7 +321,7 @@  static int tpm_inf_send(struct tpm_chip *chip, u8 * buf, size_t count)
 
 	ret = empty_fifo(chip, 1);
 	if (ret) {
-		dev_err(chip->pdev, "Timeout while clearing FIFO\n");
+		dev_err(&chip->dev, "Timeout while clearing FIFO\n");
 		return -EIO;
 	}
 
diff --git a/drivers/char/tpm/tpm_nsc.c b/drivers/char/tpm/tpm_nsc.c
index 289389e..766370b 100644
--- a/drivers/char/tpm/tpm_nsc.c
+++ b/drivers/char/tpm/tpm_nsc.c
@@ -113,7 +113,7 @@  static int nsc_wait_for_ready(struct tpm_chip *chip)
 	}
 	while (time_before(jiffies, stop));
 
-	dev_info(chip->pdev, "wait for ready failed\n");
+	dev_info(&chip->dev, "wait for ready failed\n");
 	return -EBUSY;
 }
 
@@ -129,12 +129,12 @@  static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
 		return -EIO;
 
 	if (wait_for_stat(chip, NSC_STATUS_F0, NSC_STATUS_F0, &data) < 0) {
-		dev_err(chip->pdev, "F0 timeout\n");
+		dev_err(&chip->dev, "F0 timeout\n");
 		return -EIO;
 	}
 	if ((data =
 	     inb(chip->vendor.base + NSC_DATA)) != NSC_COMMAND_NORMAL) {
-		dev_err(chip->pdev, "not in normal mode (0x%x)\n",
+		dev_err(&chip->dev, "not in normal mode (0x%x)\n",
 			data);
 		return -EIO;
 	}
@@ -143,7 +143,7 @@  static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
 	for (p = buffer; p < &buffer[count]; p++) {
 		if (wait_for_stat
 		    (chip, NSC_STATUS_OBF, NSC_STATUS_OBF, &data) < 0) {
-			dev_err(chip->pdev,
+			dev_err(&chip->dev,
 				"OBF timeout (while reading data)\n");
 			return -EIO;
 		}
@@ -154,11 +154,11 @@  static int tpm_nsc_recv(struct tpm_chip *chip, u8 * buf, size_t count)
 
 	if ((data & NSC_STATUS_F0) == 0 &&
 	(wait_for_stat(chip, NSC_STATUS_F0, NSC_STATUS_F0, &data) < 0)) {
-		dev_err(chip->pdev, "F0 not set\n");
+		dev_err(&chip->dev, "F0 not set\n");
 		return -EIO;
 	}
 	if ((data = inb(chip->vendor.base + NSC_DATA)) != NSC_COMMAND_EOC) {
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			"expected end of command(0x%x)\n", data);
 		return -EIO;
 	}
@@ -189,19 +189,19 @@  static int tpm_nsc_send(struct tpm_chip *chip, u8 * buf, size_t count)
 		return -EIO;
 
 	if (wait_for_stat(chip, NSC_STATUS_IBF, 0, &data) < 0) {
-		dev_err(chip->pdev, "IBF timeout\n");
+		dev_err(&chip->dev, "IBF timeout\n");
 		return -EIO;
 	}
 
 	outb(NSC_COMMAND_NORMAL, chip->vendor.base + NSC_COMMAND);
 	if (wait_for_stat(chip, NSC_STATUS_IBR, NSC_STATUS_IBR, &data) < 0) {
-		dev_err(chip->pdev, "IBR timeout\n");
+		dev_err(&chip->dev, "IBR timeout\n");
 		return -EIO;
 	}
 
 	for (i = 0; i < count; i++) {
 		if (wait_for_stat(chip, NSC_STATUS_IBF, 0, &data) < 0) {
-			dev_err(chip->pdev,
+			dev_err(&chip->dev,
 				"IBF timeout (while writing data)\n");
 			return -EIO;
 		}
@@ -209,7 +209,7 @@  static int tpm_nsc_send(struct tpm_chip *chip, u8 * buf, size_t count)
 	}
 
 	if (wait_for_stat(chip, NSC_STATUS_IBF, 0, &data) < 0) {
-		dev_err(chip->pdev, "IBF timeout\n");
+		dev_err(&chip->dev, "IBF timeout\n");
 		return -EIO;
 	}
 	outb(NSC_COMMAND_EOC, chip->vendor.base + NSC_COMMAND);
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index 65f7eec..0b5fc41 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -293,7 +293,7 @@  static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	/* read first 10 bytes, including tag, paramsize, and result */
 	if ((size =
 	     recv_data(chip, buf, TPM_HEADER_SIZE)) < TPM_HEADER_SIZE) {
-		dev_err(chip->pdev, "Unable to read header\n");
+		dev_err(&chip->dev, "Unable to read header\n");
 		goto out;
 	}
 
@@ -306,7 +306,7 @@  static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 	if ((size +=
 	     recv_data(chip, &buf[TPM_HEADER_SIZE],
 		       expected - TPM_HEADER_SIZE)) < expected) {
-		dev_err(chip->pdev, "Unable to read remainder of result\n");
+		dev_err(&chip->dev, "Unable to read remainder of result\n");
 		size = -ETIME;
 		goto out;
 	}
@@ -315,7 +315,7 @@  static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count)
 			  &chip->vendor.int_queue, false);
 	status = tpm_tis_status(chip);
 	if (status & TPM_STS_DATA_AVAIL) {	/* retry? */
-		dev_err(chip->pdev, "Error left over data\n");
+		dev_err(&chip->dev, "Error left over data\n");
 		size = -EIO;
 		goto out;
 	}
@@ -463,7 +463,7 @@  static int tpm_tis_send(struct tpm_chip *chip, u8 *buf, size_t len)
 		msleep(1);
 	if (!priv->irq_tested) {
 		disable_interrupts(chip);
-		dev_err(chip->pdev,
+		dev_err(&chip->dev,
 			FW_BUG "TPM interrupt not working, polling instead\n");
 	}
 	priv->irq_tested = true;
@@ -533,7 +533,7 @@  static int probe_itpm(struct tpm_chip *chip)
 
 	rc = tpm_tis_send_data(chip, cmd_getticks, len);
 	if (rc == 0) {
-		dev_info(chip->pdev, "Detected an iTPM.\n");
+		dev_info(&chip->dev, "Detected an iTPM.\n");
 		rc = 1;
 	} else
 		rc = -EFAULT;
@@ -766,7 +766,7 @@  static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
 			if (devm_request_irq
 			    (dev, i, tis_int_probe, IRQF_SHARED,
 			     chip->devname, chip) != 0) {
-				dev_info(chip->pdev,
+				dev_info(&chip->dev,
 					 "Unable to request irq: %d for probe\n",
 					 i);
 				continue;
@@ -818,7 +818,7 @@  static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
 		if (devm_request_irq
 		    (dev, chip->vendor.irq, tis_int_handler, IRQF_SHARED,
 		     chip->devname, chip) != 0) {
-			dev_info(chip->pdev,
+			dev_info(&chip->dev,
 				 "Unable to request irq: %d for use\n",
 				 chip->vendor.irq);
 			chip->vendor.irq = 0;