diff options
-rw-r--r-- | drivers/char/tpm/tpm_crb.c | 26 |
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 | ||
265 | static 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 | |||
280 | static int crb_check_resource(struct acpi_resource *ares, void *data) | 265 | static 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 | ||