tpm: rename chip->dev to chip->pdev
[cascardo/linux.git] / drivers / char / tpm / tpm_i2c_atmel.c
index 7727292..7a0ca78 100644 (file)
@@ -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->dev);
+       struct i2c_client *client = to_i2c_client(chip->pdev);
        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->dev,
+       dev_dbg(chip->pdev,
                "%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->dev);
+       struct i2c_client *client = to_i2c_client(chip->pdev);
        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->dev,
+               dev_dbg(chip->pdev,
                        "%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->dev,
+       dev_dbg(chip->pdev,
                "%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->dev, "TPM operation cancellation was requested, but is not supported");
+       dev_err(chip->pdev, "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->dev);
+       struct i2c_client *client = to_i2c_client(chip->pdev);
        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->dev,
+       dev_dbg(chip->pdev,
                "%s: sts=%d", __func__, rc);
        if (rc <= 0)
                return 0;
@@ -153,21 +153,20 @@ static const struct tpm_class_ops i2c_atmel = {
 static int i2c_atmel_probe(struct i2c_client *client,
                           const struct i2c_device_id *id)
 {
-       int rc;
        struct tpm_chip *chip;
        struct device *dev = &client->dev;
 
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
                return -ENODEV;
 
-       chip = tpm_register_hardware(dev, &i2c_atmel);
-       if (!chip) {
-               dev_err(dev, "%s() error in tpm_register_hardware\n", __func__);
-               return -ENODEV;
-       }
+       chip = tpmm_chip_alloc(dev, &i2c_atmel);
+       if (IS_ERR(chip))
+               return PTR_ERR(chip);
 
        chip->vendor.priv = devm_kzalloc(dev, sizeof(struct priv_data),
                                         GFP_KERNEL);
+       if (!chip->vendor.priv)
+               return -ENOMEM;
 
        /* Default timeouts */
        chip->vendor.timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT);
@@ -179,33 +178,20 @@ static int i2c_atmel_probe(struct i2c_client *client,
        /* There is no known way to probe for this device, and all version
         * information seems to be read via TPM commands. Thus we rely on the
         * TPM startup process in the common code to detect the device. */
-       if (tpm_get_timeouts(chip)) {
-               rc = -ENODEV;
-               goto out_err;
-       }
-
-       if (tpm_do_selftest(chip)) {
-               rc = -ENODEV;
-               goto out_err;
-       }
+       if (tpm_get_timeouts(chip))
+               return -ENODEV;
 
-       return 0;
+       if (tpm_do_selftest(chip))
+               return -ENODEV;
 
-out_err:
-       tpm_dev_vendor_release(chip);
-       tpm_remove_hardware(chip->dev);
-       return rc;
+       return tpm_chip_register(chip);
 }
 
 static int i2c_atmel_remove(struct i2c_client *client)
 {
        struct device *dev = &(client->dev);
        struct tpm_chip *chip = dev_get_drvdata(dev);
-
-       if (chip)
-               tpm_dev_vendor_release(chip);
-       tpm_remove_hardware(dev);
-       kfree(chip);
+       tpm_chip_unregister(chip);
        return 0;
 }