• Jon Hunter's avatar
    soc/tegra: pmc: Fix testing of powergate state · 0ecf2d33
    Jon Hunter authored
    In tegra_powergate_set() the state of the powergates is read and OR'ed
    with the bit for the powergate of interest. This unsigned 32-bit value
    is then compared with a boolean value to test if the powergate is
    already in the desired state. When turning on a powergate, apart from
    the powergate that is represented by bit 0, this test will always
    return false and so we may attempt to turn on the powergate when it is
    already on.
    
    After OR'ing the bit for the powergate, check if the result is not equal
    to zero before comparing with the boolean value. Add a helper function
    to return the current state of a powergate and use this in both
    tegra_powergate_set() and tegra_powergate_is_powered() where we check
    the powergate status.
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Reviewed-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    0ecf2d33
pmc.c 28.1 KB