linux-hardened/drivers/char
Jason Gunthorpe 7240b98320 TPM: Wait for TPM_ACCESS tpmRegValidSts to go high at startup
The TIS specification (pg 47) says the valid bit must be set, but
the TPM will not set it until it has completed its internal startup.

The driver checks that the valid bit is set during request_locality,
but it issues a TPM_ACCESS_REQUEST_USE without validating the
valid bit is set.

Some TPMs will ignore the TPM_ACCESS_REQUEST_USE, until valid is
set which causes the request_locality to timeout, which breaks the
driver attach.

Wait one timeout unit for valid to assert. If valid does not assert
then assume -ENODEV.

Seen on embedded with a:
1.2 TPM (device-id 0x3204, rev-id 64)

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Kent Yoder <key@linux.vnet.ibm.com>
2013-02-05 09:38:25 -06:00
..
agp Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-12-17 08:26:17 -08:00
hw_random ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00
ipmi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
mwave 8250: three way resolve of the 8250 diffs 2012-07-17 09:11:50 -07:00
pcmcia TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
tpm TPM: Wait for TPM_ACCESS tpmRegValidSts to go high at startup 2013-02-05 09:38:25 -06:00
xilinx_hwicap char: remove use of __devexit 2012-11-21 12:55:19 -08:00
apm-emulation.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm 2012-04-05 17:34:30 -07:00
applicom.c
applicom.h
bfin-otp.c
bsr.c powerpc/BSR: cleanup the error path of bsr_init 2012-07-17 10:27:38 -07:00
ds1302.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ds1620.c ARM: footbridge: nw_gpio_lock is raw_spin_lock 2012-10-07 10:33:12 +02:00
dsp56k.c
dtlk.c
efirtc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
generic_nvram.c
genrtc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hangcheck-timer.c
hpet.c drivers/char: for hpet, add count checking, and ~0UL instead of -1 2012-11-26 16:16:35 -08:00
i8k.c
Kconfig char/misc: remove CONFIG_EXPERIMENTAL dependencies 2012-09-18 16:14:53 +01:00
lp.c Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-03-29 18:12:23 -07:00
Makefile IPMI: Change link order 2012-10-16 18:07:12 -07:00
mbcs.c char: remove use of __devinitconst 2012-11-21 12:55:19 -08:00
mbcs.h
mem.c /dev/mem: use phys_addr_t for physical addresses 2012-10-24 15:32:50 -07:00
misc.c
mmtimer.c drivers/char/mmtimer.c: Remove useless kfree 2012-09-26 13:20:40 -07:00
msm_smd_pkt.c
mspec.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
nsc_gpio.c
nvram.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
nwbutton.c drivers/char: removes unnecessary semicolon 2012-09-26 13:20:39 -07:00
nwbutton.h
nwflash.c Merge branch 'late/fixes' into fixes 2012-10-07 07:22:32 -07:00
pc8736x_gpio.c pc8736x_gpio: use platform_device_unregister in pc8736x_gpio_cleanup() 2012-10-24 15:52:29 -07:00
ppdev.c Merge branch 'master' into for-next 2012-10-28 19:29:19 +01:00
ps3flash.c char: remove use of __devinit 2012-11-21 12:55:19 -08:00
random.c random: prime last_data value per fips requirements 2012-11-08 07:19:18 -05:00
raw.c blockdev: remove bd_block_size_semaphore again 2012-11-29 10:52:19 -08:00
rtc.c drivers/char: removes unnecessary semicolon 2012-09-26 13:20:39 -07:00
scx200_gpio.c
snsc.c
snsc.h
snsc_event.c
sonypi.c char: remove use of __devexit 2012-11-21 12:55:19 -08:00
tb0219.c char: remove use of __devexit 2012-11-21 12:55:19 -08:00
tile-srom.c tile-srom.c driver: minor code cleanup 2012-04-02 12:14:10 -04:00
tlclk.c drivers/char/tlclk.c: fix error return code 2012-08-16 10:09:15 -07:00
toshiba.c
ttyprintk.c TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
uv_mmtimer.c
virtio_console.c Some nice cleanups, and even a patch my wife did as a "live" demo for 2012-12-20 08:37:05 -08:00