• Brian Norris's avatar
    arm64: dts: rockchip: Assign RK3399 VDU clock rate · 2d56af33
    Brian Norris authored
    Before commit 9998943f ("media: rkvdec: Stop overclocking the
    decoder"), the rkvdec driver was forcing the VDU clock rate. After that
    commit, we rely on the default clock rate. That rate works OK on many
    boards, with the default PLL settings (CPLL is 800MHz, VDU dividers
    leave it at 400MHz); but some boards change PLL settings.
    
    Assign the expected default clock rate explicitly, so that the rate is
    consistent, regardless of PLL configuration.
    
    This was particularly broken on RK3399 Gru Scarlet systems, where the
    rk3399-gru-scarlet.dtsi assigns PLL_CPLL to 1.6 GHz, and so the VDU
    clock ends up at 800 MHz (twice the expected rate), and causes video
    artifacts and other issues.
    
    Note: I assign the clock rate in the clock controller instead of the
    vdec node, because there are multiple nodes that use this clock, and per
    the clock.yaml specification:
    
      Configuring a clock's parent and rate through the device node that
      consumes the clock can be done only for clocks that have a single
      user. Specifying conflicting parent or rate configuration in multiple
      consumer nodes for a shared clock is forbidden.
    
      Configuration of common clocks, which affect multiple consumer devices
      can be similarly specified in the clock provider node.
    
    Fixes: 9998943f
    
     ("media: rkvdec: Stop overclocking the decoder")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
    Reviewed-by: default avatarNicolas Dufresne <nicolas.dufresne@collabora.com>
    Link: https://lore.kernel.org/r/20220607141535.1.Idafe043ffc94756a69426ec68872db0645c5d6e2@changeid
    
    Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
    2d56af33
rk3399.dtsi 68.4 KB