@@ -171,6 +171,8 @@ struct tpm_chip *tpm_chip_alloc(struct device *dev,
chip->dev.release = tpm_dev_release;
chip->dev.parent = dev;
chip->dev.groups = chip->groups;
+ if (dev->of_node)
+ chip->dev.of_node = chip->dev.parent->of_node;
if (chip->dev_num == 0)
chip->dev.devt = MKDEV(MISC_MAJOR, TPM_MINOR);
@@ -2,6 +2,7 @@
* Copyright 2012 IBM Corporation
*
* Author: Ashley Lai <ashleydlai@gmail.com>
+ * Nayna Jain <nayna@linux.vnet.ibm.com>
*
* Maintained by: <tpmdd-devel@lists.sourceforge.net>
*
@@ -30,44 +31,43 @@ int read_log_of(struct tpm_chip *chip)
const u32 *sizep;
const u64 *basep;
- np = of_find_node_by_name(NULL, "vtpm");
+ if (chip->dev.of_node)
+ np = chip->dev.of_node;
if (!np) {
- pr_err("%s: ERROR - IBMVTPM not supported\n", __func__);
+ dev_dbg(&chip->dev, "%s: ERROR - IBMVTPM not supported\n",
+ __func__);
return -ENODEV;
}
sizep = of_get_property(np, "linux,sml-size", NULL);
if (sizep == NULL) {
- pr_err("%s: ERROR - SML size not found\n", __func__);
+ dev_dbg(&chip->dev, "%s: ERROR - SML size not found\n",
+ __func__);
goto cleanup_eio;
}
if (*sizep == 0) {
- pr_err("%s: ERROR - event log area empty\n", __func__);
+ dev_dbg(&chip->dev, "%s: ERROR - event log area empty\n",
+ __func__);
goto cleanup_eio;
}
basep = of_get_property(np, "linux,sml-base", NULL);
if (basep == NULL) {
- pr_err("%s: ERROR - SML not found\n", __func__);
+ dev_dbg(&chip->dev, "%s: ERROR - SML not found\n", __func__);
goto cleanup_eio;
}
chip->log.bios_event_log = kmalloc(*sizep, GFP_KERNEL);
if (!chip->log.bios_event_log) {
- pr_err("%s: ERROR - Not enough memory for BIOS measurements\n",
- __func__);
- of_node_put(np);
return -ENOMEM;
}
chip->log.bios_event_log_end = chip->log.bios_event_log + *sizep;
memcpy(chip->log.bios_event_log, __va(*basep), *sizep);
- of_node_put(np);
return 0;
cleanup_eio:
- of_node_put(np);
return -EIO;
}
Using device of_node property is better way to refer to device node rather than of_find_node_by_name(). Additionally, this patch replaces all currently used pr_err() with recommended dev_dbg(). Suggested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com> --- drivers/char/tpm/tpm-chip.c | 2 ++ drivers/char/tpm/tpm_of.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-)