• Maxime Ripard's avatar
    drm/vc4: hdmi: Enable power domain before setting minimum · 0267c6c0
    Maxime Ripard authored
    On the RaspberryPi0-3, the HSM clock was provided by the clk-bcm2835
    driver, but on the Pi4 it was provided by the firmware through the
    clk-raspberrypi driver.
    
    The clk-bcm2835 driver registers the HSM clock using the
    CLK_SET_RATE_GATE flag that prevents any modification to the rate while
    the clock is active.
    
    This meant that we needed to call clk_set_min_rate() before our call to
    pm_runtime_resume_and_get() since our runtime_resume implementation
    needs to enable the HSM clock for the HDMI controller registers to be
    functional.
    
    However, the HSM clock is part of the HDMI power domain which might not
    be powered prior to the pm_runtime_resume_and_get() call, so we could
    end up changing the rate of the HSM clock while its power domain was
    disabled.
    
    We recently changed the backing driver for the RaspberryPi0-3 to
    clk-raspberrypi though, which doesn't have such restrictions. We can
    thus move the clk_set_min_rate() after our call to runtime_resume and
    avoid the access while the power domain is disabled.
    Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
    Link: https://lore.kernel.org/r/20230126-rpi-display-fw-clk-cleanup-v1-2-d646ff6fb842@cerno.techSigned-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
    0267c6c0
vc4_hdmi.c 101 KB