aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/char/tpm/tpm_crb.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c
index ff0d505ecffd..f579f1ac4688 100644
--- a/drivers/char/tpm/tpm_crb.c
+++ b/drivers/char/tpm/tpm_crb.c
@@ -262,21 +262,6 @@ static const struct tpm_class_ops tpm_crb = {
262 .req_complete_val = CRB_DRV_STS_COMPLETE, 262 .req_complete_val = CRB_DRV_STS_COMPLETE,
263}; 263};
264 264
265static int crb_init(struct acpi_device *device, struct crb_priv *priv)
266{
267 struct tpm_chip *chip;
268
269 chip = tpmm_chip_alloc(&device->dev, &tpm_crb);
270 if (IS_ERR(chip))
271 return PTR_ERR(chip);
272
273 dev_set_drvdata(&chip->dev, priv);
274 chip->acpi_dev_handle = device->handle;
275 chip->flags = TPM_CHIP_FLAG_TPM2;
276
277 return tpm_chip_register(chip);
278}
279
280static int crb_check_resource(struct acpi_resource *ares, void *data) 265static int crb_check_resource(struct acpi_resource *ares, void *data)
281{ 266{
282 struct resource *io_res = data; 267 struct resource *io_res = data;
@@ -398,6 +383,7 @@ static int crb_acpi_add(struct acpi_device *device)
398{ 383{
399 struct acpi_table_tpm2 *buf; 384 struct acpi_table_tpm2 *buf;
400 struct crb_priv *priv; 385 struct crb_priv *priv;
386 struct tpm_chip *chip;
401 struct device *dev = &device->dev; 387 struct device *dev = &device->dev;
402 acpi_status status; 388 acpi_status status;
403 u32 sm; 389 u32 sm;
@@ -435,11 +421,19 @@ static int crb_acpi_add(struct acpi_device *device)
435 if (rc) 421 if (rc)
436 return rc; 422 return rc;
437 423
424 chip = tpmm_chip_alloc(dev, &tpm_crb);
425 if (IS_ERR(chip))
426 return PTR_ERR(chip);
427
428 dev_set_drvdata(&chip->dev, priv);
429 chip->acpi_dev_handle = device->handle;
430 chip->flags = TPM_CHIP_FLAG_TPM2;
431
438 rc = crb_cmd_ready(dev, priv); 432 rc = crb_cmd_ready(dev, priv);
439 if (rc) 433 if (rc)
440 return rc; 434 return rc;
441 435
442 rc = crb_init(device, priv); 436 rc = tpm_chip_register(chip);
443 if (rc) 437 if (rc)
444 crb_go_idle(dev, priv); 438 crb_go_idle(dev, priv);
445 439