• Douglas Anderson's avatar
    tpm_tis_spi: Prefer async probe · 7187bf7f
    Douglas Anderson authored
    On a Chromebook I'm working on I noticed a big (~1 second) delay
    during bootup where nothing was happening.  Right around this big
    delay there were messages about the TPM:
    
    [    2.311352] tpm_tis_spi spi0.0: TPM ready IRQ confirmed on attempt 2
    [    3.332790] tpm_tis_spi spi0.0: Cr50 firmware version: ...
    
    I put a few printouts in and saw that tpm_tis_spi_init() (specifically
    tpm_chip_register() in that function) was taking the lion's share of
    this time, though ~115 ms of the time was in cr50_print_fw_version().
    
    Let's make a one-line change to prefer async probe for tpm_tis_spi.
    There's no reason we need to block other drivers from probing while we
    load.
    
    NOTES:
    * It's possible that other hardware runs through the init sequence
      faster than Cr50 and this isn't such a big problem for them.
      However, even if they are faster they are still doing _some_
      transfers over a SPI bus so this should benefit everyone even if to
      a lesser extent.
    * It's possible that there are extra delays in the code that could be
      optimized out.  I didn't dig since once I enabled async probe they
      no longer impacted me.
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Reviewed-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    7187bf7f
tpm_tis_spi_main.c 7.19 KB