From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/cdclk: Document CDCLK components
Date: Mon, 19 Feb 2024 22:12:17 +0200 [thread overview]
Message-ID: <ZdO2IfxEHGCcD1AJ@intel.com> (raw)
In-Reply-To: <20240216164524.188750-2-gustavo.sousa@intel.com>
On Fri, Feb 16, 2024 at 01:45:25PM -0300, Gustavo Sousa wrote:
> Improve documentation by giving an overview of the components involved
> in the generation of the CDCLK.
>
> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_cdclk.c | 25 ++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index 30dae4fef6cb..ef1660f94e46 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -63,6 +63,31 @@
> * DMC will not change the active CDCLK frequency however, so that part
> * will still be performed by the driver directly.
> *
> + * There 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 and a ratio parameter.
> + * - 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 generated by 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, respectively;
> + * 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.
> + *
> * 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.
> --
> 2.43.0
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2024-02-19 20:12 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-16 16:45 [PATCH] drm/i915/cdclk: Document CDCLK components Gustavo Sousa
2024-02-16 22:58 ` ✓ Fi.CI.BAT: success for " Patchwork
2024-02-17 15:00 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-02-19 20:12 ` Ville Syrjälä [this message]
2024-02-21 13:28 ` [PATCH] " Gustavo Sousa
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=ZdO2IfxEHGCcD1AJ@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=gustavo.sousa@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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.