• Thierry Reding's avatar
    firmware: tegra: Make BPMP a regular driver · d70f5e54
    Thierry Reding authored
    The Tegra BPMP driver typically ends up deferring probe because it wants
    to attach to the SMMU, so there's little sense in registering it at the
    core init-level.
    
    One side-effect of this is that the driver will be probed later even if
    it doesn't want to attach to an SMMU, which means that consumers will
    end up deferring probe, which in turn takes care of ordering the suspend
    and resume queue in the correct way. Currently since suspend/resume
    order depends on instantiation order, and because BPMP is listed at the
    very end of the device tree (after most of its consumers), the suspend
    and resume queue is ordered wrongly, which can cause issues for drivers
    (like I2C) which suspend after and resume before BPMP. In the case of
    I2C this typically leads to the clock failing to enable.
    
    Besides fixing this suspend/resume ordering issue, this also has the
    added benefit of allowing the driver to be built as a loadable module,
    which can help decrease the size of multiplatform kernel.
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    d70f5e54
bpmp.c 19.1 KB