From: Jani Nikula <jani.nikula@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: jani.nikula@intel.com, ville.syrjala@linux.intel.com,
michal.grzelak@intel.com
Subject: [PATCH v2 02/15] drm/i915: do cck get/put inside vlv_get_cck_clock()
Date: Fri, 12 Sep 2025 17:48:41 +0300 [thread overview]
Message-ID: <480b654b6c736a03343dfd17eb130c39fd82c637.1757688216.git.jani.nikula@intel.com> (raw)
In-Reply-To: <cover.1757688216.git.jani.nikula@intel.com>
Move towards VLV/CHV clock interfaces that handle sideband get/put
inside them instead of at the caller.
With this, we can switch to the simpler vlv_punit_get()/vlv_punit_put()
in vlv_get_cdclk().
We'll need to move vlv_init_gpll_ref_freq() outside of the existing
get/put in vlv_rps_init() and chv_rps_init().
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_cdclk.c | 8 ++------
drivers/gpu/drm/i915/display/intel_display.c | 7 +++----
drivers/gpu/drm/i915/gt/intel_rps.c | 8 ++++----
3 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index c54c7fd93f97..bf4e975ac41c 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -609,17 +609,13 @@ static void vlv_get_cdclk(struct intel_display *display,
u32 val;
cdclk_config->vco = vlv_get_hpll_vco(display->drm);
-
- vlv_iosf_sb_get(display->drm, BIT(VLV_IOSF_SB_CCK) | BIT(VLV_IOSF_SB_PUNIT));
-
cdclk_config->cdclk = vlv_get_cck_clock(display->drm, "cdclk",
CCK_DISPLAY_CLOCK_CONTROL,
cdclk_config->vco);
+ vlv_punit_get(display->drm);
val = vlv_punit_read(display->drm, PUNIT_REG_DSPSSPM);
-
- vlv_iosf_sb_put(display->drm,
- BIT(VLV_IOSF_SB_CCK) | BIT(VLV_IOSF_SB_PUNIT));
+ vlv_punit_put(display->drm);
if (display->platform.valleyview)
cdclk_config->voltage_level = (val & DSPFREQGUAR_MASK) >>
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index f5208583235d..aef136a1be25 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -163,7 +163,10 @@ int vlv_get_cck_clock(struct drm_device *drm,
u32 val;
int divider;
+ vlv_cck_get(drm);
val = vlv_cck_read(drm, reg);
+ vlv_cck_put(drm);
+
divider = val & CCK_FREQUENCY_VALUES;
drm_WARN(drm, (val & CCK_FREQUENCY_STATUS) !=
@@ -182,12 +185,8 @@ int vlv_get_cck_clock_hpll(struct drm_device *drm,
if (dev_priv->hpll_freq == 0)
dev_priv->hpll_freq = vlv_get_hpll_vco(drm);
- vlv_cck_get(drm);
-
hpll = vlv_get_cck_clock(drm, name, reg, dev_priv->hpll_freq);
- vlv_cck_put(drm);
-
return hpll;
}
diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index 4da94098bd3e..afc934b7f5bc 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -1703,13 +1703,13 @@ static void vlv_rps_init(struct intel_rps *rps)
{
struct drm_i915_private *i915 = rps_to_i915(rps);
+ vlv_init_gpll_ref_freq(rps);
+
vlv_iosf_sb_get(&i915->drm,
BIT(VLV_IOSF_SB_PUNIT) |
BIT(VLV_IOSF_SB_NC) |
BIT(VLV_IOSF_SB_CCK));
- vlv_init_gpll_ref_freq(rps);
-
rps->max_freq = vlv_rps_max_freq(rps);
rps->rp0_freq = rps->max_freq;
drm_dbg(&i915->drm, "max GPU freq: %d MHz (%u)\n",
@@ -1737,13 +1737,13 @@ static void chv_rps_init(struct intel_rps *rps)
{
struct drm_i915_private *i915 = rps_to_i915(rps);
+ vlv_init_gpll_ref_freq(rps);
+
vlv_iosf_sb_get(&i915->drm,
BIT(VLV_IOSF_SB_PUNIT) |
BIT(VLV_IOSF_SB_NC) |
BIT(VLV_IOSF_SB_CCK));
- vlv_init_gpll_ref_freq(rps);
-
rps->max_freq = chv_rps_max_freq(rps);
rps->rp0_freq = rps->max_freq;
drm_dbg(&i915->drm, "max GPU freq: %d MHz (%u)\n",
--
2.47.3
next prev parent reply other threads:[~2025-09-12 14:49 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-12 14:48 [PATCH v2 00/15] drm/i915: vlv clock cleanups Jani Nikula
2025-09-12 14:48 ` [PATCH v2 01/15] drm/i915: do cck get/put inside vlv_get_hpll_vco() Jani Nikula
2025-09-18 10:54 ` Michał Grzelak
2025-09-12 14:48 ` Jani Nikula [this message]
2025-09-18 10:59 ` [PATCH v2 02/15] drm/i915: do cck get/put inside vlv_get_cck_clock() Michał Grzelak
2025-09-12 14:48 ` [PATCH v2 03/15] drm/i915: add vlv_clock_get_gpll() Jani Nikula
2025-09-12 14:48 ` [PATCH v2 04/15] drm/i915: add vlv_clock_get_czclk() Jani Nikula
2025-09-12 14:48 ` [PATCH v2 05/15] drm/i915: add vlv_clock_get_hrawclk() Jani Nikula
2025-09-12 14:48 ` [PATCH v2 06/15] drm/i915: make vlv_get_cck_clock_hpll() static Jani Nikula
2025-09-12 14:48 ` [PATCH v2 07/15] drm/i915: add vlv_clock_get_cdclk() Jani Nikula
2025-09-12 14:48 ` [PATCH v2 08/15] drm/i915: make vlv_get_cck_clock() static Jani Nikula
2025-09-12 14:48 ` [PATCH v2 09/15] drm/i915: rename vlv_get_hpll_vco() to vlv_clock_get_hpll_vco() Jani Nikula
2025-09-12 14:48 ` [PATCH v2 10/15] drm/i915: cache the results in vlv_clock_get_hpll_vco() and use it more Jani Nikula
2025-09-16 19:51 ` Ville Syrjälä
2025-09-17 13:57 ` Jani Nikula
2025-09-18 11:17 ` Michał Grzelak
2025-09-12 14:48 ` [PATCH v2 11/15] drm/i915: remove vlv_get_cck_clock_hpll() Jani Nikula
2025-09-18 11:24 ` Michał Grzelak
2025-09-12 14:48 ` [PATCH v2 12/15] drm/i915: remove intel_update_czclk() as unnecessary Jani Nikula
2025-09-18 11:26 ` Michał Grzelak
2025-09-12 14:48 ` [PATCH v2 13/15] drm/i915: log HPLL frequency similar to CZCLK Jani Nikula
2025-09-12 14:48 ` [PATCH v2 14/15] drm/i915: move hpll and czclk caching under display Jani Nikula
2025-09-18 11:28 ` Michał Grzelak
2025-09-12 14:48 ` [PATCH v2 15/15] drm/i915: split out vlv_clock.[ch] Jani Nikula
2025-09-18 11:32 ` Michał Grzelak
2025-09-12 14:56 ` ✗ CI.checkpatch: warning for drm/i915: vlv clock cleanups (rev3) Patchwork
2025-09-12 14:57 ` ✓ CI.KUnit: success " Patchwork
2025-09-12 15:12 ` ✗ CI.checksparse: warning " Patchwork
2025-09-12 15:35 ` ✓ Xe.CI.BAT: success " Patchwork
2025-09-12 17:25 ` ✗ Xe.CI.Full: failure " Patchwork
2025-09-18 12:01 ` [PATCH v2 00/15] drm/i915: vlv clock cleanups Michał Grzelak
2025-09-18 12:28 ` Jani Nikula
2025-09-19 22:00 ` Michał Grzelak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=480b654b6c736a03343dfd17eb130c39fd82c637.1757688216.git.jani.nikula@intel.com \
--to=jani.nikula@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=michal.grzelak@intel.com \
--cc=ville.syrjala@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox