linux/drivers/char
Rajiv Andrade 3507d61236 tpm_tis: TPM_STS_DATA_EXPECT workaround
Some newer Lenovo models are shipped with a TPM that doesn't seem to set the TPM_STS_DATA_EXPECT status bit
when sending it a burst of data, so the code understands it as a failure and doesn't proceed sending the chip
the intended data. In this patch we bypass this bit check in case the itpm module parameter was set.

This patch is based on Andy Isaacson's one:

http://marc.info/?l=linux-kernel&m=124650185023495&w=2

It was heavily discussed how should we deal with identifying the chip in kernel space, but the required
patch to do so was NACK'd:

http://marc.info/?l=linux-kernel&m=124650186423711&w=2

This way we let the user choose using this workaround or not based on his
observations on this code behavior when trying to use the TPM.

Fixed a checkpatch issue present on the previous patch, thanks to Daniel Walker.

Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Acked-by: Eric Paris <eparis@redhat.com>
Tested-by: Seiji Munetoh <seiji.munetoh@gmail.com>
Signed-off-by: James Morris <jmorris@namei.org>
2009-11-02 09:09:04 +11:00
..
agp const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
hw_random virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
ip2
ipmi trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c 2009-09-21 15:14:58 +02:00
mwave mwave: fix read buffer overflow 2009-09-24 07:21:03 -07:00
pcmcia pcmcia: fix read buffer overflow 2009-09-22 07:17:42 -07:00
rio drivers/char/rio/rioctrl.c: off by one error in rioctrl.c 2009-09-24 07:21:03 -07:00
tpm tpm_tis: TPM_STS_DATA_EXPECT workaround 2009-11-02 09:09:04 +11:00
xilinx_hwicap
.gitignore
amiserial.c
apm-emulation.c
applicom.c
applicom.h
bfin_jtag_comm.c
bfin-otp.c bfin-otp: add writing support 2009-09-24 07:21:03 -07:00
briq_panel.c
bsr.c
cd1865.h
ChangeLog
consolemap.c
cp437.uni
cs5535_gpio.c
cyclades.c serial: move delta_msr_wait into the tty_port 2009-09-19 13:13:31 -07:00
defkeymap.c_shipped
defkeymap.map
digi1.h
digiFep1.h
digiPCI.h
ds1302.c
ds1620.c
dsp56k.c
dtlk.c
efirtc.c
epca.c trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
epca.h
epcaconfig.h
esp.c serial: move delta_msr_wait into the tty_port 2009-09-19 13:13:31 -07:00
generic_nvram.c powerpc/nvram: Enable use Generic NVRAM driver for different size chips 2009-09-11 16:02:11 +10:00
generic_serial.c
genrtc.c
hangcheck-timer.c
hpet.c hpet: hpet driver periodic timer setup bug fixes 2009-09-24 07:21:03 -07:00
hvc_beat.c
hvc_console.c hvc_console: Provide (un)locked version for hvc_resize() 2009-09-24 15:12:47 +10:00
hvc_console.h hvc_console: Provide (un)locked version for hvc_resize() 2009-09-24 15:12:47 +10:00
hvc_irq.c
hvc_iseries.c
hvc_iucv.c hvc_console: Provide (un)locked version for hvc_resize() 2009-09-24 15:12:47 +10:00
hvc_rtas.c
hvc_udbg.c
hvc_vio.c
hvc_xen.c
hvcs.c
hvsi.c
i8k.c
isicom.c isicom: split the open method for the isicom device 2009-09-19 13:13:27 -07:00
istallion.c
Kconfig drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV 2009-09-24 07:21:03 -07:00
keyboard.c
lp.c
Makefile drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV 2009-09-24 07:21:03 -07:00
mbcs.c [IA64] mbcs: fix printk format warnings 2009-09-15 08:42:00 -07:00
mbcs.h
mem.c const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
misc.c seq_file: constify seq_operations 2009-09-23 07:39:29 -07:00
mmtimer.c
moxa.c
moxa.h
mspec.c const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
mxser.c tty: Char: mxser, use THRE for ASPP_OQUEUE ioctl 2009-09-19 13:13:38 -07:00
mxser.h
n_hdlc.c
n_r3964.c
n_tty.c n_tty: move echoctl check and clean up logic 2009-09-19 13:13:34 -07:00
nozomi.c
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
ppdev.c
ps3flash.c
pty.c pty_write: don't do a tty_wakeup() when the buffers are full 2009-09-18 07:05:58 -07:00
random.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
raw.c Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -07:00
riscom8_reg.h
riscom8.c tty: riscom8, fix tty refcnt 2009-09-19 13:13:37 -07:00
riscom8.h
rocket_int.h
rocket.c
rocket.h
rtc.c
scc.h
scx200_gpio.c
selection.c
ser_a2232.c
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c cleanup console_print() 2009-09-14 17:41:42 -07:00
snsc_event.c
snsc.c
snsc.h
sonypi.c
specialix_io8.h
specialix.c
stallion.c
sx.c
sx.h
sxboards.h
sxwindow.h
synclink_gt.c
synclink.c
synclinkmp.c
sysrq.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
tb0219.c
tlclk.c
toshiba.c
tty_audit.c
tty_buffer.c
tty_io.c tty: Fix regressions caused by commit b50989dc 2009-09-27 13:35:16 -07:00
tty_ioctl.c tty: vt: use printk_once 2009-09-19 13:13:35 -07:00
tty_ldisc.c tty-ldisc: get rid of tty_ldisc_try_get() helper function 2009-09-19 13:13:10 -07:00
tty_port.c TTY: fix typos 2009-09-19 13:13:36 -07:00
uv_mmtimer.c drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV 2009-09-24 07:21:03 -07:00
vc_screen.c
viotape.c
virtio_console.c virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
vme_scc.c
vt_ioctl.c tty: Power: fix suspend vt regression 2009-09-19 13:13:35 -07:00
vt.c tty: vt: use printk_once 2009-09-19 13:13:35 -07:00