• Brian Norris's avatar
    platform/chrome: cros_ec_spi: Set PROBE_PREFER_ASYNCHRONOUS · 015e4b05
    Brian Norris authored
    This driver often takes on the order of 10ms to start, but in some cases
    as much as 600ms [1]. It shouldn't have many cross-device dependencies
    to race with, nor racy access to shared state with other drivers, so
    this should be a relatively low risk change.
    
    This driver was pinpointed as part of a survey of top slowest initcalls
    (i.e., are built in, and probing synchronously) on a lab of ChromeOS
    systems.
    
    [1] 600ms was especially surprising to me, so I checked a little deeper.
    This driver is used to interface with Embedded Controllers besides just
    the traditional laptop power-state controller -- it also interfaces with
    some fingerprint readers, which may start up in parallel with the
    kernel, or which may not even be present on some SKUs, despite having a
    node for it. Thus, our time is wasted just timing out talking to it. At
    least we can do that without blocking everyone else.
    Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
    Signed-off-by: default avatarTzung-Bi Shih <tzungbi@kernel.org>
    Link: https://lore.kernel.org/r/20221101152132.v2.5.Ia458a69e1d592bfa4f04cde7018bbc7486f91a23@changeid
    015e4b05
cros_ec_spi.c 21.5 KB