All of lore.kernel.org
 help / color / mirror / Atom feed
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
>

  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.