• Jon Hunter's avatar
    soc/tegra: pmc: Initialise resets associated with a power partition · 05cfb988
    Jon Hunter authored
    When registering the Tegra power partitions with the generic PM domain
    framework, the current state of the each partition is checked and used
    as the default state for the partition. However, the state of each reset
    associated with the partition is not initialised and so it is possible
    that the state of the resets are not in the expected state. For example,
    if a partition is on, then the resets should be de-asserted and if the
    partition is off, the resets should be asserted.
    
    There have been cases where the bootloader has powered on a partition
    and only de-asserted some of the resets to some of the devices in the
    partition. This can cause accesses to these devices to hang the system
    when the kernel boots and attempts to probe these devices.
    
    Ideally, the driver for the device should ensure the reset has been
    de-asserted when probing, but the resets cannot be shared between the
    PMC driver (that needs to de-assert/assert the reset when turning the
    partition on or off) and another driver because we cannot ensure the
    reset is in the correct state.
    
    To ensure the resets are in the correct state, when using the generic
    PM domain framework, put each reset associated with the partition in
    the correct state (based upon the partition's current state) when
    obtaining the resets for a partition.
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    05cfb988
pmc.c 36 KB