Message ID | 20200204132706.3220416-2-stefanb@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Enable vTPM 2.0 for the IBM vTPM driver | expand |
On 2/4/20 8:27 AM, Stefan Berger wrote: > From: Stefan Berger <stefanb@linux.ibm.com> > > A vTPM 2.0 is identified by 'IBM,vtpm20' in the 'compatible' node in > the device tree. Handle it in the same way as 'IBM,vtpm'. > > The vTPM 2.0's log is written in little endian format so that for this > aspect we can rely on existing code. > > Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> > --- > drivers/char/tpm/eventlog/of.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/char/tpm/eventlog/of.c b/drivers/char/tpm/eventlog/of.c > index af347c190819..a9ce66d09a75 100644 > --- a/drivers/char/tpm/eventlog/of.c > +++ b/drivers/char/tpm/eventlog/of.c > @@ -51,7 +51,8 @@ int tpm_read_log_of(struct tpm_chip *chip) > * endian format. For this reason, vtpm doesn't need conversion > * but physical tpm needs the conversion. > */ > - if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) { > + if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0 && > + of_property_match_string(np, "compatible", "IBM,vtpm20") < 0) { How about changing this to use of_device_compatible_match() ? Thanks & Regards, - Nayna
On 2/13/20 12:46 PM, Nayna wrote: > > On 2/4/20 8:27 AM, Stefan Berger wrote: >> From: Stefan Berger <stefanb@linux.ibm.com> >> >> A vTPM 2.0 is identified by 'IBM,vtpm20' in the 'compatible' node in >> the device tree. Handle it in the same way as 'IBM,vtpm'. >> >> The vTPM 2.0's log is written in little endian format so that for this >> aspect we can rely on existing code. >> >> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> >> --- >> drivers/char/tpm/eventlog/of.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/char/tpm/eventlog/of.c >> b/drivers/char/tpm/eventlog/of.c >> index af347c190819..a9ce66d09a75 100644 >> --- a/drivers/char/tpm/eventlog/of.c >> +++ b/drivers/char/tpm/eventlog/of.c >> @@ -51,7 +51,8 @@ int tpm_read_log_of(struct tpm_chip *chip) >> * endian format. For this reason, vtpm doesn't need conversion >> * but physical tpm needs the conversion. >> */ >> - if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) { >> + if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0 && >> + of_property_match_string(np, "compatible", "IBM,vtpm20") < 0) { > > How about changing this to use of_device_compatible_match() ? I can change it. Stefan
On 2/13/20 12:46 PM, Nayna wrote: > > On 2/4/20 8:27 AM, Stefan Berger wrote: >> From: Stefan Berger <stefanb@linux.ibm.com> >> >> A vTPM 2.0 is identified by 'IBM,vtpm20' in the 'compatible' node in >> the device tree. Handle it in the same way as 'IBM,vtpm'. >> >> The vTPM 2.0's log is written in little endian format so that for this >> aspect we can rely on existing code. >> >> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> >> --- >> drivers/char/tpm/eventlog/of.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/char/tpm/eventlog/of.c >> b/drivers/char/tpm/eventlog/of.c >> index af347c190819..a9ce66d09a75 100644 >> --- a/drivers/char/tpm/eventlog/of.c >> +++ b/drivers/char/tpm/eventlog/of.c >> @@ -51,7 +51,8 @@ int tpm_read_log_of(struct tpm_chip *chip) >> * endian format. For this reason, vtpm doesn't need conversion >> * but physical tpm needs the conversion. >> */ >> - if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) { >> + if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0 && >> + of_property_match_string(np, "compatible", "IBM,vtpm20") < 0) { > > How about changing this to use of_device_compatible_match() ? I have to roll back the change to using use_of_device_compatible_match() due to a build failure on xtensa. So we'll be using what I had in this patch here. Stefan
diff --git a/drivers/char/tpm/eventlog/of.c b/drivers/char/tpm/eventlog/of.c index af347c190819..a9ce66d09a75 100644 --- a/drivers/char/tpm/eventlog/of.c +++ b/drivers/char/tpm/eventlog/of.c @@ -51,7 +51,8 @@ int tpm_read_log_of(struct tpm_chip *chip) * endian format. For this reason, vtpm doesn't need conversion * but physical tpm needs the conversion. */ - if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) { + if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0 && + of_property_match_string(np, "compatible", "IBM,vtpm20") < 0) { size = be32_to_cpup((__force __be32 *)sizep); base = be64_to_cpup((__force __be64 *)basep); } else {