mbox series

[v4,0/6] TPM irq fixes

Message ID 20220509080559.4381-1-LinoSanfilippo@gmx.de (mailing list archive)
Headers show
Series TPM irq fixes | expand

Message

Lino Sanfilippo May 9, 2022, 8:05 a.m. UTC
This series fixes issues around the interrupt handling in the TPM TIS core.

Patch 1:
Request threaded interrupt handler for SPI. This is needed since SPI uses a
mutex for data transmission and since we exchange data via SPI int the irq
handler we need a sleepable context.

Patch 2:
Make locality handling simpler by only claiming it at driver startup and
releasing it at driver shutdown.

Patch 3:
Enable the irq test which is always skipped in the current code.

Patch 4:
Fix the irq test by ensuring CPU cache coherency when setting the irq test
condition on one and checking it on another CPU.

Patch 5:
Move the irq test and the check for irq test from tpm_tis_send() to
tpm_tis_probe_irq_single() so the check has not to be done for each data
transmission.

Patch 6:
Instead of blindly trying to enable all possible interrupts, use the result
from the capability query and request only the interrupts that are actually
supported.


Changes in v4:
- only request threaded irq in case of SPI as requested by Jarko.
- reimplement patch 2 to limit locality handling changes to the TIS core.
- separate fixes from cleanups as requested by Jarko.
- rephrase commit messages 

Changes in v3:
- fixed compiler error reported by kernel test robot
- rephrased commit message as suggested by Jarko Sakkinen
- added Reviewed-by tag

Changes in v2:
- rebase against 5.12
- free irq on error path


Lino Sanfilippo (6):
  tpm, tpm_tis_spi: Request threaded irq
  tpm, tpm_tis: Claim and release locality only once
  tpm, tpm_tis: enable irq test
  tpm, tpm_tis: avoid CPU cache incoherency in irq test
  tpm, tpm_tis: Move irq test from tpm_tis_send() to
    tpm_tis_probe_irq_single()
  tpm, tpm_tis: Only enable supported IRQs

 drivers/char/tpm/tpm_tis_core.c     | 202 ++++++++++++----------------
 drivers/char/tpm/tpm_tis_core.h     |   8 +-
 drivers/char/tpm/tpm_tis_spi_main.c |   5 +-
 3 files changed, 96 insertions(+), 119 deletions(-)


base-commit: fe27d189e3f42e31d3c8223d5daed7285e334c5e