From: Gustavo Sousa <gustavo.sousa@intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 4/4] drm/i915/cdclk: Document CDCLK update methods
Date: Fri, 16 Feb 2024 09:51:36 -0300 [thread overview]
Message-ID: <170808789627.10917.12293971835741985062@gjsousa-mobl2> (raw)
In-Reply-To: <20240207013334.29606-5-ville.syrjala@linux.intel.com>
Quoting Ville Syrjala (2024-02-06 22:33:34-03:00)
>From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
>Add a bit of documentation to briefly explain the methods
>by which we can change the CDCLK frequency.
>
>Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>---
> drivers/gpu/drm/i915/display/intel_cdclk.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
>index ca00586fdbc8..30dae4fef6cb 100644
>--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
>+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
>@@ -63,6 +63,15 @@
> * DMC will not change the active CDCLK frequency however, so that part
> * will still be performed by the driver directly.
> *
>+ * Several methods exist to change the CDCLK frequency, which ones are
>+ * supported depends on the platform:
>+ * - Full PLL disable + re-enable with new VCO frequency. Pipes must be inactive.
>+ * - CD2X divider update. Single pipe can be active as the divider update
>+ * can be synchronized with the pipe's start of vblank.
>+ * - Crawl the PLL smoothly to the new VCO frequency. Pipes can be active.
>+ * - Squash waveform update. Pipes can be active.
>+ * - Crawl and squash can also be done back to back. Pipes can be active.
>+ *
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
I think it would also be nice to have some explanation of the components
involved in the generation of the CDCLK. I would prepend this paragraph
with something like:
The are multiple components involved in the generation of the CDCLK
frequency:
- We have the CDCLK PLL, which generates an output clock
based on a reference clock.
- The CD2X Divider, which divides the output of the PLL based on a
divisor selected from a set of pre-defined choices.
- The CD2X Squasher, which further divides the output based on a
waveform represented as a sequence of bits where each zero
"squashes out" a clock cycle.
- And finally a fixed divider that divides the output frequency by
2.
As such, the resulting CDCLK frequency can be calculated with the
following formula:
cdclk = vco / cd2x_div / (sq_len / sq_div) / 2
, where vco is the frequency output from the PLL; cd2x_div
represents the CD2X Divider; sq_len and sq_div are the bit length
and the number of high bits for the CD2X Squasher waveform; and 2
represents the fixed divider.
Note that some older platforms do not contain the CD2X Divider
and/or CD2X Squasher, in which case we can ignore their respective
factors in the formula above.
In case you like it, we could either add it to this patch or I could send as
a separate patch. Your call.
--
Gustavo Sousa
> * RAWCLK is a fixed frequency clock, often used by various auxiliary
> * blocks such as AUX CH or backlight PWM. Hence the only thing we
> * really need to know about RAWCLK is its frequency so that various
>--
>2.43.0
>
next prev parent reply other threads:[~2024-02-16 12:51 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-07 1:33 [PATCH 0/4] drm/i915/cdclk: More hardcoded cd2x divider nukage Ville Syrjala
2024-02-07 1:33 ` [PATCH 1/4] drm/i915/cdclk: Extract cdclk_divider() Ville Syrjala
2024-02-16 12:15 ` Gustavo Sousa
2024-02-07 1:33 ` [PATCH 2/4] drm/i915/cdclk: Squash waveform is 16 bits Ville Syrjala
2024-02-16 12:15 ` Gustavo Sousa
2024-02-07 1:33 ` [PATCH 3/4] drm/i915/cdclk: Remove the hardcoded divider from cdclk_compute_crawl_and_squash_midpoint() Ville Syrjala
2024-02-16 12:16 ` Gustavo Sousa
2024-02-07 1:33 ` [PATCH 4/4] drm/i915/cdclk: Document CDCLK update methods Ville Syrjala
2024-02-16 12:51 ` Gustavo Sousa [this message]
2024-02-16 16:00 ` Ville Syrjälä
2024-02-07 2:41 ` ✗ Fi.CI.BAT: failure for drm/i915/cdclk: More hardcoded cd2x divider nukage Patchwork
2024-02-07 16:39 ` ✓ Fi.CI.BAT: success for drm/i915/cdclk: More hardcoded cd2x divider nukage (rev2) Patchwork
2024-02-07 20:08 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-02-10 1:25 ` ✓ Fi.CI.BAT: success for drm/i915/cdclk: More hardcoded cd2x divider nukage (rev3) Patchwork
2024-02-10 7:03 ` ✓ Fi.CI.IGT: " Patchwork
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=170808789627.10917.12293971835741985062@gjsousa-mobl2 \
--to=gustavo.sousa@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.