|
@@ -367,7 +367,7 @@ static int probe_itpm(struct tpm_chip *chip)
|
|
|
0x00, 0x00, 0x00, 0xf1
|
|
|
};
|
|
|
size_t len = sizeof(cmd_getticks);
|
|
|
- int rem_itpm = itpm;
|
|
|
+ bool rem_itpm = itpm;
|
|
|
u16 vendor = ioread16(chip->vendor.iobase + TPM_DID_VID(0));
|
|
|
|
|
|
/* probe only iTPMS */
|
|
@@ -510,7 +510,7 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
|
|
|
resource_size_t len, unsigned int irq)
|
|
|
{
|
|
|
u32 vendor, intfcaps, intmask;
|
|
|
- int rc, i, irq_s, irq_e;
|
|
|
+ int rc, i, irq_s, irq_e, probe;
|
|
|
struct tpm_chip *chip;
|
|
|
|
|
|
if (!(chip = tpm_register_hardware(dev, &tpm_tis)))
|
|
@@ -540,11 +540,12 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
|
|
|
vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0)));
|
|
|
|
|
|
if (!itpm) {
|
|
|
- itpm = probe_itpm(chip);
|
|
|
- if (itpm < 0) {
|
|
|
+ probe = probe_itpm(chip);
|
|
|
+ if (probe < 0) {
|
|
|
rc = -ENODEV;
|
|
|
goto out_err;
|
|
|
}
|
|
|
+ itpm = (probe == 0) ? 0 : 1;
|
|
|
}
|
|
|
|
|
|
if (itpm)
|