• Jiandi An's avatar
    tpm/tpm_crb: Use start method value from ACPI table directly · f5357413
    Jiandi An authored
    This patch gets rid of dealing with intermediate flag for start method
    and use start method value from ACPI table directly.
    
    For ARM64, the locality is handled by Trust Zone in FW.  The layout
    does not have crb_regs_head.  It is hitting the following line.
    dev_warn(dev, FW_BUG "Bad ACPI memory layout");
    
    Current code excludes CRB_FL_ACPI_START for this check.  Now since
    ARM64 support for TPM CRB is added, CRB_FL_CRB_SMC_START should also be
    excluded from this check.
    
    For goIdle and cmdReady where code was excluding CRB_FL_ACPI_START only
    (do nothing for ACPI start method), CRB_FL_CRB_SMC_START was also
    excluded as ARM64 SMC start method does not have TPM_CRB_CTRL_REQ.
    
    However with special PPT workaround requiring CRB_FL_CRB_START to be
    set in addition to CRB_FL_ACPI_START and the addition flag of SMC
    start method CRB_FL_CRB_SMC_START, the code has become difficult to
    maintain and undrestand.  It is better to make code deal with start
    method value from ACPI table directly.
    Signed-off-by: default avatarJiandi An <anjiandi@codeaurora.org>
    Reviewed-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Tested-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    f5357413
tpm_crb.c 16.2 KB