mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
tpm: Factor out common startup code
The TCG standard startup sequence (get timeouts, tpm startup, etc) for TPM and TPM2 chips is being open coded in many drivers, move it into the core code. tpm_tis and tpm_crb are used as the basis for the core code implementation and the easy drivers are converted. In the process several small drivers bugs relating to error handling this flow are fixed. For now the flag TPM_OPS_AUTO_STARTUP is optional to allow a staged driver roll out, but ultimately all drivers should use this flow and the flag removed. Some drivers still do not implement the startup sequence at all and will need to be tested with it enabled. Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Tested-by: Andrew Zamansky <andrew.zamansky@nuvoton.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
This commit is contained in:
parent
2b88cd96eb
commit
cae8b441fc
12 changed files with 92 additions and 63 deletions
|
@ -33,7 +33,12 @@ struct tpm_chip;
|
|||
struct trusted_key_payload;
|
||||
struct trusted_key_options;
|
||||
|
||||
enum TPM_OPS_FLAGS {
|
||||
TPM_OPS_AUTO_STARTUP = BIT(0),
|
||||
};
|
||||
|
||||
struct tpm_class_ops {
|
||||
unsigned int flags;
|
||||
const u8 req_complete_mask;
|
||||
const u8 req_complete_val;
|
||||
bool (*req_canceled)(struct tpm_chip *chip, u8 status);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue