• Thierry Reding's avatar
    drm/tegra: sor: Fix hang on Tegra124 eDP · d780537f
    Thierry Reding authored
    The SOR0 found on Tegra124 and Tegra210 only supports eDP and LVDS and
    therefore has a slightly different clock tree than the SOR1 which does
    not support eDP, but HDMI and DP instead.
    
    Commit e1335e2f ("drm/tegra: sor: Reimplement pad clock") breaks
    setups with eDP because the sor->clk_out clock is uninitialized and
    therefore setting the parent clock (either the safe clock or either of
    the display PLLs) fails, which can cause hangs later on since there is
    no clock driving the module.
    
    Fix this by falling back to the module clock for sor->clk_out on those
    setups. This guarantees that the module will always be clocked by an
    enabled clock and hence prevents those hangs.
    
    Fixes: e1335e2f ("drm/tegra: sor: Reimplement pad clock")
    Reported-by: default avatarGuillaume Tucker <guillaume.tucker@collabora.com>
    Tested-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    d780537f
sor.c 70.4 KB