linux-stable/drivers
Matthew Garrett 4d27328827 tpm_crb: Add support for CRB devices based on Pluton
Pluton is an integrated security processor present in some recent Ryzen
parts. If it's enabled, it presents two devices - an MSFT0101 ACPI device
that's broadly an implementation of a Command Response Buffer TPM2, and an
MSFT0200 ACPI device whose functionality I haven't examined in detail yet.
This patch only attempts to add support for the TPM device.

There's a few things that need to be handled here. The first is that the
TPM2 ACPI table uses a previously undefined start method identifier. The
table format appears to include 16 bytes of startup data, which corresponds
to one 64-bit address for a start message and one 64-bit address for a
completion response. The second is that the ACPI tables on the Thinkpad Z13
I'm testing this on don't define any memory windows in _CRS (or, more
accurately, there are two empty memory windows). This check doesn't seem
strictly necessary, so I've skipped that.

Finally, it seems like chip needs to be explicitly asked to transition into
ready status on every command. Failing to do this means that if two
commands are sent in succession without an idle/ready transition in
between, everything will appear to work fine but the response is simply the
original command. I'm working without any docs here, so I'm not sure if
this is actually the required behaviour or if I'm missing something
somewhere else, but doing this results in the chip working reliably.

Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
2023-02-13 10:10:52 +02:00
..
accel Fix mismerge due to devnode now taking a 'const *' device 2022-12-16 13:04:15 -06:00
accessibility tty: fix possible null-ptr-defer in spk_ttyio_release 2023-01-19 16:24:04 +01:00
acpi libnvdimm fixes for 6.2 2023-02-11 10:58:36 -08:00
amba ARM updates for 6.2 2022-12-13 15:22:14 -08:00
android
ata ata: libata: Fix sata_down_spd_limit() when no link speed is reported 2023-02-02 20:26:45 +09:00
atm treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
auxdisplay
base driver core: Fix test_async_probe_init saves device in wrong array 2023-01-19 17:27:36 +01:00
bcma
block block-6.2-2023-02-03 2023-02-03 11:35:42 -08:00
bluetooth Bluetooth: hci_qca: Fix driver shutdown on closed serdev 2023-01-17 15:59:02 -08:00
bus bus: sunxi-rsb: Fix error handling in sunxi_rsb_init() 2023-01-08 21:35:01 +01:00
cdrom
char tpm_crb: Add support for CRB devices based on Pluton 2023-02-13 10:10:52 +02:00
clk clk: ingenic: jz4760: Update M/N/OD calculation algorithm 2023-01-25 16:08:27 -08:00
clocksource Updates for timers, timekeeping and drivers: 2022-12-12 12:52:02 -08:00
comedi comedi: adv_pci1760: Fix PWM instruction handling 2023-01-19 17:24:47 +01:00
connector
counter counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update 2022-11-26 16:49:28 -05:00
cpufreq This pull request fixes 2023-02-06 18:54:35 +01:00
cpuidle powerpc updates for 6.2 2022-12-19 07:13:33 -06:00
crypto MTD changes: 2023-01-12 05:56:06 -06:00
cxl cxl/region: Fix passthrough-decoder detection 2023-02-07 11:04:30 -08:00
dax dax: super.c: fix kernel-doc bad line warning 2023-01-25 12:36:16 -08:00
dca
devfreq PM / devfreq: event: use devm_platform_get_and_ioremap_resource() 2022-12-05 21:57:20 +09:00
dio
dma ptdma: pt_core_execute_cmd() should use spinlock 2023-01-19 18:59:34 +05:30
dma-buf dma-buf: actually set signaling bit for private stub fences 2023-01-27 14:16:18 +01:00
edac EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info 2023-01-20 19:47:34 +01:00
eisa
extcon Char/Misc driver changes for 6.2-rc1 2022-12-16 03:49:24 -08:00
firewire firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region 2023-01-17 18:09:21 +01:00
firmware Final EFI fix for v6.2 2023-02-12 11:13:29 -08:00
fpga fpga: m10bmc-sec: Fix probe rollback 2022-12-30 10:49:52 +08:00
fsi use less confusing names for iov_iter direction initializers 2022-11-25 13:01:55 -05:00
gnss driver core: make struct class.dev_uevent() take a const * 2022-11-24 17:12:15 +01:00
gpio gpio: ep93xx: remove unused variable 2023-01-27 14:05:38 +01:00
gpu Merge tag 'amd-drm-fixes-6.2-2023-02-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes 2023-02-10 09:49:13 +10:00
greybus
hid for-linus-2023020901 2023-02-09 09:09:13 -08:00
hsi HSI: omap_ssi_core: Fix error handling in ssi_init() 2022-11-25 01:04:21 +01:00
hte
hv HV: hv_balloon: fix memory leak with using debugfs_lookup() 2023-02-03 07:45:18 +01:00
hwmon hwmon updates for v6.2 merge window 2022-12-13 13:09:38 -08:00
hwspinlock
hwtracing coresight: etm4x: fix repeated words in comments 2022-11-28 18:29:53 +00:00
i2c i2c: rk3x: fix a bunch of kernel-doc warnings 2023-01-20 10:18:51 +01:00
i3c i3c: export SETDASA method 2022-12-11 21:25:58 +01:00
idle
iio iio: imu: fxos8700: fix MAGN sensor scale and unit 2023-01-21 18:15:19 +00:00
infiniband RDMA/rtrs: Don't call kobject_del for srv_path->kobj 2023-02-07 11:21:32 +02:00
input Input updates for v6.2-rc5 2023-01-29 11:06:47 -08:00
interconnect interconnect: qcom: rpm: Use _optional func for provider clocks 2023-01-05 17:29:57 +02:00
iommu iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe() 2023-01-13 13:46:32 +01:00
ipack
irqchip RISC-V Patches for the 6.2 Merge Window, Part 1 2022-12-14 15:23:49 -08:00
isdn treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
leds treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
macintosh
mailbox - qcom: enable sc8280xp, sm8550 and sm4250 support 2022-12-21 09:31:18 -08:00
mcb mcb: mcb-parse: fix error handing in chameleon_parse_gdd() 2022-12-02 17:48:04 +01:00
md hardening fixes for v6.2-rc6 2023-01-27 16:09:12 -08:00
media media: videobuf2: set q->streaming later 2023-01-24 16:34:06 +01:00
memory memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe() 2022-12-27 09:54:32 +01:00
memstick memstick/mspro_block: Convert to use sysfs_emit()/sysfs_emit_at() APIs 2022-12-09 10:29:58 +01:00
message
mfd - New Drivers 2022-12-21 09:19:24 -08:00
misc VMCI: Use threaded irqs instead of tasklets 2023-01-20 13:24:11 +01:00
mmc mmc: sunxi-mmc: Fix clock refcount imbalance during unbind 2023-01-02 15:57:36 +01:00
most
mtd mtd: cfi: allow building spi-intel standalone 2023-01-02 12:08:53 +01:00
mux
net net: mscc: ocelot: fix all IPv6 getting trapped to CPU when PTP timestamping is used 2023-02-09 10:52:44 +01:00
nfc nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame() 2023-01-09 07:34:13 +00:00
ntb
nubus
nvdimm nvdimm: Support sizeof(struct page) > MAX_STRUCT_PAGE_SIZE 2023-01-28 15:32:36 -08:00
nvme block-6.2-2023-02-10 2023-02-10 08:55:09 -08:00
nvmem nvmem: qcom-spmi-sdam: fix module autoloading 2023-01-28 14:39:31 +01:00
of Devicetree fixes for v6.2, part 2: 2023-02-07 14:17:12 -08:00
opp
parisc parisc: pdc_stable: use strscpy() to instead of strncpy() 2023-01-09 09:51:56 +01:00
parport
pci pci-v6.2-fixes-2 2023-02-10 14:18:48 -08:00
pcmcia treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
peci
perf Partially revert "perf/arm-cmn: Optimise DTC counter accesses" 2023-01-26 13:55:38 +00:00
phy phy: phy-can-transceiver: Skip warning if no "max-bitrate" 2023-01-18 22:58:05 +05:30
pinctrl pinctrl: intel: Restore the pins that used to be in Direct IRQ mode 2023-02-07 10:13:51 +01:00
platform platform/x86: touchscreen_dmi: Add Chuwi Vi8 (CWI501) DMI match 2023-02-02 11:34:38 +01:00
pnp PNP: Do not disable devices on suspend when they cannot be re-enabled on resume 2022-11-25 19:36:52 +01:00
power power supply and reset changes for the v6.2 series 2022-12-17 08:39:31 -06:00
powercap powercap: idle_inject: Fix warnings with make W=1 2022-12-02 20:49:49 +01:00
pps
ps3
ptp Networking changes for 6.2. 2022-12-13 15:47:48 -08:00
pwm pwm: Changes for v6.2-rc1 2022-12-21 09:41:28 -08:00
rapidio rapidio: devices: fix missing put_device in mport_cdev_open 2022-12-11 19:30:20 -08:00
ras
regulator regulator: qcom-rpmh: PM8550 ldo11 regulator is an nldo 2023-01-03 15:54:38 +00:00
remoteproc remoteproc: core: Do pm_relax when in RPROC_OFFLINE state 2022-12-07 11:20:55 -07:00
reset reset: uniphier-glue: Fix possible null-ptr-deref 2023-01-03 11:30:46 +01:00
rpmsg
rtc rtc: sunplus: fix format string for printing resource 2023-01-23 23:33:47 +01:00
s390 block-2023-01-06 2023-01-06 13:12:42 -08:00
sbus
scsi SCSI fixes on 20230131 2023-01-31 11:39:08 -08:00
sh
siox
slimbus
soc Qualcomm driver fixes for v6.2 2023-01-10 23:09:09 +01:00
soundwire soundwire updates for 6.2 2022-12-19 08:47:33 -06:00
spi spi: spidev: fix a recursive locking error 2023-01-27 16:38:05 +00:00
spmi
ssb
staging staging: vchiq_arm: fix enum vchiq_status return types 2023-01-17 19:23:36 +01:00
target scsi: target: core: Fix warning on RT kernels 2023-01-13 20:24:24 -05:00
tc
tee SoC driver updates for 6.2 2022-12-12 10:17:08 -08:00
thermal thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type() 2023-01-25 15:37:21 +01:00
thunderbolt thunderbolt: Disable XDomain lane 1 only in software connection manager 2023-01-09 10:44:43 +02:00
tty vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF 2023-01-31 15:51:52 +01:00
ufs scsi: ufs: core: Fix devfreq deadlocks 2023-01-18 19:08:37 -05:00
uio
usb usb: core: add quirk for Alcor Link AK9563 smartcard reader 2023-02-09 13:23:51 +01:00
vdpa vdpa: ifcvf: Do proper cleanup if IFCVF init fails 2023-01-27 06:18:41 -05:00
vfio vfio/type1: Respect IOMMU reserved regions in vfio_test_domain_fgsp() 2023-01-10 10:44:37 -07:00
vhost vhost-scsi: unbreak any layout for response 2023-01-27 06:18:41 -05:00
video nvidiafb: detect the hardware support before removing console. 2023-02-07 08:42:29 +10:00
virt Char/Misc driver changes for 6.2-rc1 2022-12-16 03:49:24 -08:00
virtio virtio: Implementing attribute show with sysfs_emit 2022-12-28 05:28:11 -05:00
vlynq
w1 w1: fix WARNING after calling w1_process() 2023-01-19 17:26:33 +01:00
watchdog watchdog: diag288_wdt: fix __diag288() inline assembly 2023-01-30 14:40:50 +01:00
xen xen: branch for v6.2-rc4 2023-01-12 17:02:20 -06:00
zorro
Kconfig
Makefile