• Thierry Reding's avatar
    drm/tegra: sor: Grab runtime PM reference across reset · ac097aec
    Thierry Reding authored
    The SOR resets are exclusively shared with the SOR power domain. This
    means that exclusive access can only be granted temporarily and in order
    for that to work, a rigorous sequence must be observed. To ensure that a
    single consumer gets exclusive access to a reset, each consumer must
    implement a rigorous protocol using the reset_control_acquire() and
    reset_control_release() functions.
    
    However, these functions alone don't provide any guarantees at the
    system level. Drivers need to ensure that the only a single consumer has
    access to the reset at the same time. In order for the SOR to be able to
    exclusively access its reset, it must therefore ensure that the SOR
    power domain is not powered off by holding on to a runtime PM reference
    to that power domain across the reset assert/deassert operation.
    
    This used to work fine by accident, but was revealed when recently more
    devices started to rely on the SOR power domain.
    
    Fixes: 11c632e1 ("drm/tegra: sor: Implement acquire/release for reset")
    Reported-by: default avatarJonathan Hunter <jonathanh@nvidia.com>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    ac097aec
sor.c 101 KB