Re: [RFC PATCH v3] tpm_tis: verify interrupt during init

From: Scot Doyle
Date: Wed Aug 27 2014 - 20:38:43 EST



On Wed, 27 Aug 2014, Jason Gunthorpe wrote:

> On Wed, Aug 27, 2014 at 09:32:10PM +0000, Scot Doyle wrote:
>>>> - if (tpm_do_selftest(chip)) {
>>>> - dev_err(dev, "TPM self test failed\n");
>>>> - rc = -ENODEV;
>>>> - goto out_err;
>>>> - }
>>>
>>> Move gettimeout too
>>
>> Can it be moved? It sends startup(clear) if the TPM isn't yet operational.
>
> To move it means we have to understand why you are getting timeouts:
>
> [ 33.247720] tpm_tis 00:08: tpm_transmit: tpm_send: error -62
> [ 33.247731] tpm_tis 00:08: [Hardware Error]: TPM command timed out during continue self test
>
> I had thought based on your other patch that these should not happen
> since the raw register is polled after the timer expires?

It is polled after the timer expires in tpm_tis_send_data, but not in
tpm_tis_send, and the return value is used in tpm_tis_send...

> What is going on here? Do you still have that other patch applied?

...so with the other patch applied too, the output is:
[ 1.464217] tpm_tis 00:08: 1.2 TPM (device-id 0xB, rev-id 16)
[ 3.570836] tpm_tis 00:08: tpm_transmit: tpm_send: error -62
[ 3.660885] tpm_tis 00:08: [Firmware Bug]: TPM interrupt not working, polling instead

Much better! Any thoughts before I proceed?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/