Platforms supporting direct message request v2 can support Secure Partitions (SPs) that support multiple services. If the TPM service is sharing the SP with another service, it could get an error code of BUSY if the other service is in process. We need a way for the driver to retry sending the message to the TPM service until it succeeds or we know that no forward progress can be made. This adds a parameterized variable (default 2000ms) that indicates the maximum time to keep retrying for.
This is building on top of commit a85b55ee64a5. A tpm service can be accessed by the driver using direct message request v2 interface according to chapter 3.3, TPM Service Command Response Buffer Interface Over FF-A specificationi v1.0 EAC. See: https://developer.arm.com/documentation/den0138/latest/ Changes in v3: - Comments re-written per kernel coding style. Prachotan Bathi (1): tpm_crb_ffa: handle tpm busy return code drivers/char/tpm/tpm_crb_ffa.c | 78 +++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 24 deletions(-) -- 2.43.0