clk: meson: meson8b: Fix the first parent of vid_pll_in_sel
authorMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Fri, 17 Apr 2020 18:41:24 +0000 (20:41 +0200)
committerJerome Brunet <jbrunet@baylibre.com>
Wed, 29 Apr 2020 08:26:53 +0000 (10:26 +0200)
Use hdmi_pll_lvds_out as parent of the vid_pll_in_sel clock. It's not
easy to see that the vendor kernel does the same, but it actually does.
meson_clk_pll_ops in mainline still cannot fully recalculate all rates
from the HDMI PLL registers because some register bits (at the time of
writing it's unknown which bits are used for this) double the HDMI PLL
output rate (compared to simply considering M, N and FRAC) for some (but
not all) PLL settings.

Update the vid_pll_in_sel parent so our clock calculation works for
simple clock settings like the CVBS output (where no rate doubling is
going on). The PLL ops need to be fixed later on for more complex clock
settings (all HDMI rates).

Fixes: 6cb57c678bb70 ("clk: meson: meson8b: add the read-only video clock trees")
Suggested-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20200417184127.1319871-2-martin.blumenstingl@googlemail.com
drivers/clk/meson/meson8b.c

index 7c55c69..90d284f 100644 (file)
@@ -1077,7 +1077,7 @@ static struct clk_regmap meson8b_vid_pll_in_sel = {
                 * Meson8m2: vid2_pll
                 */
                .parent_hws = (const struct clk_hw *[]) {
-                       &meson8b_hdmi_pll_dco.hw
+                       &meson8b_hdmi_pll_lvds_out.hw
                },
                .num_parents = 1,
                .flags = CLK_SET_RATE_PARENT,