]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915: add vlv_clock_get_cdclk()
authorJani Nikula <jani.nikula@intel.com>
Fri, 12 Sep 2025 14:48:46 +0000 (17:48 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 17 Sep 2025 08:29:09 +0000 (11:29 +0300)
Add vlv_clock_get_cdclk() helper to hide the details from the callers.

For now, this means running vlv_get_hpll_vco() twice in vlv_get_cdclk(),
but this will be improved later.

v2: Rebase

Reviewed-by: Michał Grzelak <michal.grzelak@intel.com>
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/fc93ccf998300048432d18ce7e8690bd54e1e18d.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_cdclk.c
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_display.h

index 45ac378922ffc22f59c08fbc81897810ea85d9c4..6ea44bec4da572d18569d8afe118458f4513c7c5 100644 (file)
@@ -609,9 +609,7 @@ static void vlv_get_cdclk(struct intel_display *display,
        u32 val;
 
        cdclk_config->vco = vlv_get_hpll_vco(display->drm);
-       cdclk_config->cdclk = vlv_get_cck_clock(display->drm, "cdclk",
-                                               CCK_DISPLAY_CLOCK_CONTROL,
-                                               cdclk_config->vco);
+       cdclk_config->cdclk = vlv_clock_get_cdclk(display->drm);
 
        vlv_punit_get(display->drm);
        val = vlv_punit_read(display->drm, PUNIT_REG_DSPSSPM);
index 9ba6f439205a182c4fbcc05da79ef0058367afbc..4a19a3ce060ccdc311749b3c27c652bcb2b0eba5 100644 (file)
@@ -207,6 +207,12 @@ int vlv_clock_get_czclk(struct drm_device *drm)
        return i915->czclk_freq;
 }
 
+int vlv_clock_get_cdclk(struct drm_device *drm)
+{
+       return vlv_get_cck_clock(drm, "cdclk", CCK_DISPLAY_CLOCK_CONTROL,
+                                vlv_get_hpll_vco(drm));
+}
+
 int vlv_clock_get_gpll(struct drm_device *drm)
 {
        return vlv_get_cck_clock(drm, "GPLL ref", CCK_GPLL_CLOCK_CONTROL,
index 5c9b57e94a65d04a041f9ab7c980c722d35cbb52..9fdbc4ad5391660816f1756c2063e7c53aa35ae5 100644 (file)
@@ -440,6 +440,7 @@ int vlv_get_cck_clock(struct drm_device *drm,
                      const char *name, u32 reg, int ref_freq);
 int vlv_clock_get_hrawclk(struct drm_device *drm);
 int vlv_clock_get_czclk(struct drm_device *drm);
+int vlv_clock_get_cdclk(struct drm_device *drm);
 int vlv_clock_get_gpll(struct drm_device *drm);
 bool intel_has_pending_fb_unpin(struct intel_display *display);
 void intel_encoder_destroy(struct drm_encoder *encoder);