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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/