public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: "M, Satheeshakrishna" <satheeshakrishna.m@intel.com>
To: Paulo Zanoni <przanoni@gmail.com>,
	Damien Lespiau <damien.lespiau@intel.com>
Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 66/89] drm/i915/skl: Implementation of SKL DPLL programming
Date: Wed, 01 Oct 2014 16:22:21 +0530	[thread overview]
Message-ID: <542BDCE5.6070702@intel.com> (raw)
In-Reply-To: <CA+gsUGSpXpjJ0dbHSYaMcg_Dq6VLxuBK=tsMytymkk3N_caKvQ@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 12740 bytes --]

On 9/23/2014 11:35 PM, Paulo Zanoni wrote:
> 2014-09-04 8:27 GMT-03:00 Damien Lespiau<damien.lespiau@intel.com>:
>> From: Satheeshakrishna M<satheeshakrishna.m@intel.com>
>>
>> This patch implements SKL DPLL programming that includes:
>>          - DPLL allocation
>>          - wide range PLL calculation and programming
>>          - DP link rate programming
>>          - DDI to DPLL mapping
>>
>> v2: Incorporated following changes
>>          - Added vfunc for function required outside
>>          - Fixed multiple comments in WRPLL calculation
>>
>> v3: - Fix the DCO computation
>>      - Move the initialization up to not clobber the computed values
>>      - Use the correct macro for DP link rate programming.
>>      - Use wait_for() to wait for the PLL locked bit
>>
>> v4: Rebase on top of nigthly (Damien)
>>
>> v5: A few code cleanups in the WRPLL computation (Damien)
>>      - Use uint32_t when possible
>>      - Use abs_diff() in the WRPLL computation
>>      - Make the 64bits divisions use div64_u64()
>>      - Fix typo in dco_central_feq_deviation (freq)
>>      - Replace the chain of breaks with a goto
>>
>> v6: Port of the patch to work on top of the shared DPLLs (Damien)
>> v7: Don't try to handle eDP in ddi_pll_select() (Damien)
>>
>> Signed-off-by: Satheeshakrishna M<satheeshakrishna.m@intel.com>  (v3)
>> Signed-off-by: Damien Lespiau<damien.lespiau@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_ddi.c | 225 ++++++++++++++++++++++++++++++++++++++-
>>   1 file changed, 224 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
>> index 439cd50..f68e04c 100644
>> --- a/drivers/gpu/drm/i915/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/intel_ddi.c
>> @@ -915,6 +915,225 @@ hsw_ddi_pll_select(struct intel_crtc *intel_crtc,
>>          return true;
>>   }
>>
>> +struct skl_wrpll_params {
>> +       uint32_t        dco_fraction;
>> +       uint32_t        dco_integer;
>> +       uint32_t        qdiv_ratio;
>> +       uint32_t        qdiv_mode;
>> +       uint32_t        kdiv;
>> +       uint32_t        pdiv;
>> +       uint32_t        central_freq;
>> +};
>> +
>> +static void
>> +skl_ddi_calculate_wrpll(int clock /* in Hz */,
>> +                       struct skl_wrpll_params *wrpll_params)
>> +{
>> +       uint64_t afe_clock = clock * 5; /* AFE Clock is 5x Pixel clock */
>> +       uint64_t dco_central_freq[3] = {8400000000, 9000000000, 9600000000};
>> +       uint32_t min_dco_deviation = 400;
>> +       uint32_t min_dco_index = 3;
>> +       uint32_t P0[4] = {1, 2, 3, 7};
>> +       uint32_t P2[4] = {1, 2, 3, 5};
>> +       bool found = false;
>> +       uint32_t candidate_p = 0;
>> +       uint32_t candidate_p0[3] = {0}, candidate_p1[3] = {0};
>> +       uint32_t candidate_p2[3] = {0};
>> +       uint32_t dco_central_freq_deviation[3];
>> +       uint32_t i, P1, k, dco_count;
>> +       bool retry_with_odd = false;
>> +       uint64_t dco_freq;
>> +
>> +       /* Determine P0, P1 or P2 */
>> +       for (dco_count = 0; dco_count < 3; dco_count++) {
>> +               found = false;
>> +               candidate_p =
>> +                       div64_u64(dco_central_freq[dco_count], afe_clock);
>> +               if (retry_with_odd == false)
>> +                       candidate_p = (candidate_p % 2 == 0 ?
>> +                               candidate_p : candidate_p + 1);
>> +
>> +               for (P1 = 1; P1 < candidate_p; P1++) {
>> +                       for (i = 0; i < 4; i++) {
>> +                               if (!(P0[i] != 1 || P1 == 1))
> I'd invert the logic of  the statement above to match the spec.
That's how it was. I had to change it to avoid multiple indentation and 
hence to meet max line length
>
>> +                                       continue;
>> +
>> +                               for (k = 0; k < 4; k++) {
>> +                                       if (!((P2[k] != 2 && P1 == 1) ||
>> +                                               (P2[k] == 2)))
> This doesn't seem to match the docs. Why is the "P2[k] == 2" there?
ok, this can be simplified.
>  From the bikeshedding department, there's also a minor coding style
> problem (missing "*" char in second line of comment) below, and the
> usual "is_skl" check leaving gen10+ on the same case as hsw/bdw.
>
> Everything else looks like to be according to the specs.
>
> With or without changes: Reviewed-by: Paulo Zanoni<paulo.r.zanoni@intel.com>
>
>> +                                               continue;
>> +
>> +                                       if (candidate_p == P0[i] * P1 * P2[k]) {
>> +                                               /* Found possible P0, P1, P2 */
>> +                                               found = true;
>> +                                               candidate_p0[dco_count] = P0[i];
>> +                                               candidate_p1[dco_count] = P1;
>> +                                               candidate_p2[dco_count] = P2[k];
>> +                                               goto found;
>> +                                       }
>> +
>> +                               }
>> +                       }
>> +               }
>> +
>> +found:
>> +               if (found) {
>> +                       dco_central_freq_deviation[dco_count] =
>> +                               div64_u64(10000 *
>> +                                         abs_diff((candidate_p * afe_clock),
>> +                                                  dco_central_freq[dco_count]),
>> +                                         dco_central_freq[dco_count]);
>> +
>> +                       if (dco_central_freq_deviation[dco_count] <
>> +                               min_dco_deviation) {
>> +                               min_dco_deviation =
>> +                                       dco_central_freq_deviation[dco_count];
>> +                               min_dco_index = dco_count;
>> +                       }
>> +               }
>> +
>> +               if (min_dco_index > 2 && dco_count == 2) {
>> +                       retry_with_odd = true;
>> +                       dco_count = 0;
>> +               }
>> +       }
>> +
>> +       if (min_dco_index > 2) {
>> +               WARN(1, "No valid values found for the given pixel clock\n");
>> +       } else {
>> +                wrpll_params->central_freq = dco_central_freq[min_dco_index];
>> +
>> +                switch (dco_central_freq[min_dco_index]) {
>> +                case 9600000000:
>> +                       wrpll_params->central_freq = 0;
>> +                       break;
>> +                case 9000000000:
>> +                       wrpll_params->central_freq = 1;
>> +                       break;
>> +                case 8400000000:
>> +                       wrpll_params->central_freq = 3;
>> +                }
>> +
>> +                switch (candidate_p0[min_dco_index]) {
>> +                case 1:
>> +                       wrpll_params->pdiv = 0;
>> +                       break;
>> +                case 2:
>> +                       wrpll_params->pdiv = 1;
>> +                       break;
>> +                case 3:
>> +                       wrpll_params->pdiv = 2;
>> +                       break;
>> +                case 7:
>> +                       wrpll_params->pdiv = 4;
>> +                       break;
>> +                default:
>> +                       WARN(1, "Incorrect PDiv\n");
>> +                }
>> +
>> +                switch (candidate_p2[min_dco_index]) {
>> +                case 5:
>> +                       wrpll_params->kdiv = 0;
>> +                       break;
>> +                case 2:
>> +                       wrpll_params->kdiv = 1;
>> +                       break;
>> +                case 3:
>> +                       wrpll_params->kdiv = 2;
>> +                       break;
>> +                case 1:
>> +                       wrpll_params->kdiv = 3;
>> +                       break;
>> +                default:
>> +                       WARN(1, "Incorrect KDiv\n");
>> +                }
>> +
>> +                wrpll_params->qdiv_ratio = candidate_p1[min_dco_index];
>> +                wrpll_params->qdiv_mode =
>> +                       (wrpll_params->qdiv_ratio == 1) ? 0 : 1;
>> +
>> +                dco_freq = candidate_p0[min_dco_index] *
>> +                        candidate_p1[min_dco_index] *
>> +                        candidate_p2[min_dco_index] * afe_clock;
>> +
>> +                /* Intermediate values are in Hz.
>> +                   Divide by MHz to match bsepc */
>> +                wrpll_params->dco_integer = div_u64(dco_freq, (24 * MHz(1)));
>> +                wrpll_params->dco_fraction =
>> +                        div_u64(((div_u64(dco_freq, 24) -
>> +                                  wrpll_params->dco_integer * MHz(1)) * 0x8000), MHz(1));
>> +
>> +       }
>> +}
>> +
>> +
>> +static bool
>> +skl_ddi_pll_select(struct intel_crtc *intel_crtc,
>> +                  struct intel_encoder *intel_encoder,
>> +                  int clock)
>> +{
>> +       struct intel_shared_dpll *pll;
>> +       uint32_t ctrl1, cfgcr1, cfgcr2;
>> +
>> +       /*
>> +        * See comment in intel_dpll_hw_state to understand why we always use 0
>> +        * as the DPLL id in this function.
>> +        */
>> +
>> +       ctrl1 = DPLL_CTRL1_OVERRIDE(0);
>> +
>> +       if (intel_encoder->type == INTEL_OUTPUT_HDMI) {
>> +               struct skl_wrpll_params wrpll_params = { 0, };
>> +
>> +               ctrl1 |= DPLL_CTRL1_HDMI_MODE(0);
>> +
>> +               skl_ddi_calculate_wrpll(clock * 1000, &wrpll_params);
>> +
>> +               cfgcr1 = DPLL_CFGCR1_FREQ_ENABLE |
>> +                        DPLL_CFGCR1_DCO_FRACTION(wrpll_params.dco_fraction) |
>> +                        wrpll_params.dco_integer;
>> +
>> +               cfgcr2 = DPLL_CFGCR2_QDIV_RATIO(wrpll_params.qdiv_ratio) |
>> +                        DPLL_CFGCR2_QDIV_MODE(wrpll_params.qdiv_mode) |
>> +                        DPLL_CFGCR2_KDIV(wrpll_params.kdiv) |
>> +                        DPLL_CFGCR2_PDIV(wrpll_params.pdiv) |
>> +                        wrpll_params.central_freq;
>> +       } else if (intel_encoder->type == INTEL_OUTPUT_DISPLAYPORT) {
>> +               struct drm_encoder *encoder = &intel_encoder->base;
>> +               struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>> +
>> +               switch (intel_dp->link_bw) {
>> +               case DP_LINK_BW_1_62:
>> +                       ctrl1 |= DPLL_CRTL1_LINK_RATE(DPLL_CRTL1_LINK_RATE_810, 0);
>> +                       break;
>> +               case DP_LINK_BW_2_7:
>> +                       ctrl1 |= DPLL_CRTL1_LINK_RATE(DPLL_CRTL1_LINK_RATE_1350, 0);
>> +                       break;
>> +               case DP_LINK_BW_5_4:
>> +                       ctrl1 |= DPLL_CRTL1_LINK_RATE(DPLL_CRTL1_LINK_RATE_2700, 0);
>> +                       break;
>> +               }
>> +
>> +               cfgcr1 = cfgcr2 = 0;
>> +       } else /* eDP */
>> +               return true;
>> +
>> +       intel_crtc->config.dpll_hw_state.ctrl1 = ctrl1;
>> +       intel_crtc->config.dpll_hw_state.cfgcr1 = cfgcr1;
>> +       intel_crtc->config.dpll_hw_state.cfgcr2 = cfgcr2;
>> +
>> +       pll = intel_get_shared_dpll(intel_crtc);
>> +       if (pll == NULL) {
>> +               DRM_DEBUG_DRIVER("failed to find PLL for pipe %c\n",
>> +                                pipe_name(intel_crtc->pipe));
>> +               return false;
>> +       }
>> +
>> +       /* shared DPLL id 0 is DPLL 1 */
>> +       intel_crtc->config.ddi_pll_sel = pll->id + 1;
>> +
>> +       return true;
>> +}
>>
>>   /*
>>    * Tries to find a *shared* PLL for the CRTC and store it in
>> @@ -926,12 +1145,16 @@ hsw_ddi_pll_select(struct intel_crtc *intel_crtc,
>>   bool intel_ddi_pll_select(struct intel_crtc *intel_crtc)
>>   {
>>          struct drm_crtc *crtc = &intel_crtc->base;
>> +       struct drm_device *dev = crtc->dev;
>>          struct intel_encoder *intel_encoder = intel_ddi_get_crtc_encoder(crtc);
>>          int clock = intel_crtc->config.port_clock;
>>
>>          intel_put_shared_dpll(intel_crtc);
>>
>> -       return hsw_ddi_pll_select(intel_crtc, intel_encoder, clock);
>> +       if (IS_SKYLAKE(dev))
>> +               return skl_ddi_pll_select(intel_crtc, intel_encoder, clock);
>> +       else
>> +               return hsw_ddi_pll_select(intel_crtc, intel_encoder, clock);
>>   }
>>
>>   void intel_ddi_set_pipe_settings(struct drm_crtc *crtc)
>> --
>> 1.8.3.1
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>


[-- Attachment #1.2: Type: text/html, Size: 14171 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2014-10-01 10:52 UTC|newest]

Thread overview: 286+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04 11:26 [PATCH 00/89] Basic Skylake enabling Damien Lespiau
2014-09-04 11:26 ` [PATCH 01/89] drm/i915/skl: Add the Skylake PCI ids Damien Lespiau
2014-09-04 11:26 ` [PATCH 02/89] drm/i915/skl: Add an IS_GEN9() define Damien Lespiau
2014-09-04 11:26 ` [PATCH 03/89] drm/i915/skl: Add an IS_SKYLAKE macro Damien Lespiau
2014-09-04 11:26 ` [PATCH 04/89] drm/i915/skl: SKL FBC enablement Damien Lespiau
2014-09-04 11:26 ` [PATCH 05/89] drm/i915/skl: i915_swizzle_info gen9 fix Damien Lespiau
2014-09-04 13:14   ` Daniel Vetter
2014-09-04 15:26     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 06/89] drm/i915/skl: Fence registers on SKL are the same as SNB Damien Lespiau
2014-09-04 11:26 ` [PATCH 07/89] drm/i915/skl: Provide a placeholder for init_clock_gating() Damien Lespiau
2014-09-04 11:26 ` [PATCH 08/89] drm/i915/skl: Use gen8_ring_dispatch_execbuffer() on GEN9 Damien Lespiau
2014-09-16 14:53   ` Thomas Wood
2014-09-19 11:09     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 09/89] drm/i915/skl: Skylake shares the interrupt logic with Broadwell Damien Lespiau
2014-09-04 11:26 ` [PATCH 10/89] drm/i915/skl: don't set the AsyncFlip performance mode for Gen9+ Damien Lespiau
2014-09-04 11:26 ` [PATCH 11/89] drm/i915/skl: Framebuffers need to be aligned to 256Kb on Skylake Damien Lespiau
2014-09-16 14:54   ` Thomas Wood
2014-09-19 11:26     ` [PATCH 11/89 v2] drm/i915/skl: Framebuffers need to be aligned to 256KB " Damien Lespiau
2014-09-19 13:46       ` Thomas Wood
2014-09-04 11:26 ` [PATCH 12/89] drm/i915/skl: Implement thew new update_plane() for primary planes Damien Lespiau
2014-09-17  0:49   ` Rodrigo Vivi
2014-09-22 11:18     ` [PATCH 12/89 v8] drm/i915/skl: Implement the " Damien Lespiau
2014-09-04 11:26 ` [PATCH 13/89] drm/i915/skl: Don't create a VGA connector on Skylake Damien Lespiau
2014-09-04 11:26 ` [PATCH 14/89] drm/i915/skl: Don't try to read out the PCH transcoder state if not present Damien Lespiau
2014-09-04 11:26 ` [PATCH 15/89] drm/i915/skl: Program the DDI buffer translation tables Damien Lespiau
2014-09-04 18:58   ` [PATCH 15/89 v7] " Damien Lespiau
2014-09-04 11:26 ` [PATCH 16/89] drm/i915/skl: Add support for DP voltage swings and pre-emphasis Damien Lespiau
2014-09-04 11:26 ` [PATCH 17/89] drm/i915/skl: Skylake doesn't need the DP AUX clock divider programmed Damien Lespiau
2014-09-04 11:26 ` [PATCH 18/89] drm/i915/skl: Skylake moves AUX_CTL from PCH to CPU Damien Lespiau
2014-09-04 11:26 ` [PATCH 19/89] drm/i915/skl: Add the additional graphics stolen sizes Damien Lespiau
2014-09-04 11:26 ` [PATCH 20/89] drm/i915/skl: gen9 uses the same bind_vma() vfuncs as gen6+ Damien Lespiau
2014-09-04 11:26 ` [PATCH 21/89] drm/i915/skl: Implement the get_aux_clock_divider() DP vfunc Damien Lespiau
2014-09-17  1:12   ` Rodrigo Vivi
2014-09-22 13:21     ` Damien Lespiau
2014-09-22 19:33       ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 22/89] drm/i915/skl: Provide a get_aux_send_ctl() vfunc for skylake Damien Lespiau
2014-09-17  1:16   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 23/89] drm/i915/skl: Initialize PPGTT like gen8 Damien Lespiau
2014-09-17  1:17   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 24/89] drm/i915/skl: Allow the reg_read ioctl to return RCS_TIMESTAMP Damien Lespiau
2014-09-17  1:27   ` Rodrigo Vivi
2014-09-22 13:27     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 25/89] drm/i915/skl: report the same INSTDONE registers as gen8 Damien Lespiau
2014-09-17  1:28   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 26/89] drm/i915/skl: Report the PDP regs as in gen8 Damien Lespiau
2014-09-17  1:33   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 27/89] drm/i915/skl: SKL shares the same underrun interrupt as BDW Damien Lespiau
2014-09-17  1:39   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 28/89] drm/i915/skl: SKL pipe misc programming Damien Lespiau
2014-09-17  1:43   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 29/89] drm/i915/skl: vfuncs for skl eld and global resource Damien Lespiau
2014-09-17  1:50   ` Rodrigo Vivi
2014-09-22 13:32     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 30/89] drm/i915/skl: SKL backlight enabling Damien Lespiau
2014-09-17  1:56   ` Rodrigo Vivi
2014-09-17  9:09     ` Jani Nikula
2014-09-17 13:46       ` Rodrigo Vivi
2014-09-17 14:56         ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 31/89] drm/i915/skl: Restore pipe B/C interrupts Damien Lespiau
2014-09-04 11:26 ` [PATCH 32/89] drm/i915/skl: Adjust the display engine interrupts Damien Lespiau
2014-09-04 13:19   ` Daniel Vetter
2014-09-17 18:41     ` Rodrigo Vivi
2014-09-22 13:38       ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 33/89] drm/i915/skl: Sunrise Point PCH detection Damien Lespiau
2014-09-17 22:18   ` Rodrigo Vivi
2014-09-22 13:42     ` Damien Lespiau
2014-09-22 19:34       ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 34/89] drm/i915/skl: Implement WaDisableSDEUnitClockGating:skl Damien Lespiau
2014-09-17 18:48   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 35/89] drm/i915/skl: Implement Wa4x4STCOptimizationDisable:skl Damien Lespiau
2014-09-17 19:00   ` Rodrigo Vivi
2014-09-17 19:00     ` Rodrigo Vivi
2014-09-22 13:49       ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 36/89] drm/i915/skl: Implement WaDisableDgMirrorFixInHalfSliceChicken5:skl Damien Lespiau
2014-09-17 21:22   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 37/89] drm/i915/skl: Skylake has 2 "sprite" planes per pipe Damien Lespiau
2014-09-17 21:25   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 38/89] drm/i915/skl: Implement drm_plane vfuncs Damien Lespiau
2014-09-04 13:21   ` Daniel Vetter
2014-09-16 13:20     ` Damien Lespiau
2014-09-17 22:08   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 39/89] drm/i915/skl: Adjust assert_sprites_disabled() Damien Lespiau
2014-09-17 22:10   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 40/89] drm/i915/skl: Introduce a I915_MAX_PLANES macro Damien Lespiau
2014-09-17 22:12   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 41/89] drm/i915/skl: Introduce intel_num_planes() Damien Lespiau
2014-09-17 22:13   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 42/89] drm/i915/skl: Move gen9 pm initialization into its own branch Damien Lespiau
2014-09-17 22:16   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 43/89] drm/i915/skl: Read the Memory Latency Values for WM computation Damien Lespiau
2014-09-04 18:49   ` [PATCH 43/89 v6] " Damien Lespiau
2014-09-10 17:37     ` Ville Syrjälä
2014-09-05  8:25   ` [PATCH 43/89] " Ville Syrjälä
2014-09-05  8:29     ` Damien Lespiau
2014-09-05  8:42       ` Ville Syrjälä
2014-09-05 12:56         ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 44/89] drm/i915/skl: Register definitions and macros for SKL Watermark regs Damien Lespiau
2014-09-10 18:04   ` Ville Syrjälä
2014-09-16 14:11     ` Damien Lespiau
2014-09-17 13:40     ` [PATCH 44/89 v4] " Damien Lespiau
2014-09-23 11:17   ` [PATCH 44/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 45/89] drm/i915/skl: Definition of SKL WM param structs for pipe/plane Damien Lespiau
2014-09-10 18:39   ` Ville Syrjälä
2014-09-17 13:59     ` Damien Lespiau
2014-09-17 15:59       ` Daniel Vetter
2014-09-22 14:00         ` Damien Lespiau
2014-09-22 14:06   ` Ville Syrjälä
2014-09-22 14:21     ` Damien Lespiau
2014-09-23  8:16       ` Daniel Vetter
2014-09-23 15:10         ` [PATCH 45/89 v4] " Damien Lespiau
2014-10-28 15:11           ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 46/89] drm/i915/skl: Add DDB allocation management structures Damien Lespiau
2014-09-17 10:47   ` Ville Syrjälä
2014-09-22 14:08     ` Damien Lespiau
2014-09-22 18:26       ` Ville Syrjälä
2014-10-29 15:32   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 47/89] drm/i915/skl: SKL Watermark Computation Damien Lespiau
2014-09-17 12:07   ` Ville Syrjälä
2014-09-22 22:36     ` Damien Lespiau
2014-09-23  6:00       ` Satheeshakrishna M
2014-09-23 11:13     ` [PATCH 47/89 v11] " Damien Lespiau
2014-10-29 17:07       ` Ville Syrjälä
2014-09-23 11:14     ` [PATCH 47/89] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 48/89] drm/i915/skl: Allocate DDB portions for display planes Damien Lespiau
2014-09-19  9:58   ` Ville Syrjälä
2014-09-27 14:15     ` [PATCH 48/89 v6] " Damien Lespiau
2014-10-29 17:12       ` Ville Syrjälä
2014-09-23 11:19   ` [PATCH 48/89 v4] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 49/89] drm/i915/skl: Program the DDB allocation Damien Lespiau
2014-09-19 10:03   ` Ville Syrjälä
2014-09-27 14:17     ` Damien Lespiau
2014-10-29 18:42       ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 50/89] drm/i915/skl: Read the pipe WM HW state Damien Lespiau
2014-10-29 19:02   ` Ville Syrjälä
2014-10-30 12:03     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 51/89] drm/i915/gen9: Add 2us read latency to WM level Damien Lespiau
2014-09-19 10:04   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 52/89] drm/i915/gen9: Disable WM if corresponding latency is 0 Damien Lespiau
2014-09-19 10:05   ` Ville Syrjälä
2014-09-24 14:06     ` Damien Lespiau
2014-10-29 19:05       ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 53/89] drm/i915/skl: Gen9 Forcewake Damien Lespiau
2014-09-10 13:44   ` Mika Kuoppala
2014-09-16 13:49     ` [PATCH 53/89 v2] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 54/89] drm/i915/skl: Enable Gen9 RC6 Damien Lespiau
2014-09-22 13:15   ` Mika Kuoppala
2014-09-24 17:58     ` Bob Wang
2014-09-04 11:27 ` [PATCH 55/89] drm/i915/skl: Gen9 multi-engine forcewake Damien Lespiau
2014-09-22 15:11   ` Mika Kuoppala
2014-09-24 18:08     ` Bob Wang
2014-09-25  7:32       ` Mika Kuoppala
2014-11-03 17:09         ` [PATCH 55/59 v4] " Damien Lespiau
2014-11-19 13:25           ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 56/89] drm/i915: Gen9 shadowed registers Damien Lespiau
2014-09-24 13:36   ` Mika Kuoppala
2014-09-24 18:16     ` Bob Wang
2014-09-25  8:58       ` Mika Kuoppala
2014-11-03 17:45         ` [PATCH 56/89 v4] " Damien Lespiau
2014-11-19 13:25           ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 57/89] drm/i915: Rewrite ABS_DIFF() in a safer manner Damien Lespiau
2014-09-04 12:11   ` Jani Nikula
2014-09-04 12:32     ` Damien Lespiau
2014-09-04 13:11       ` Daniel Vetter
2014-09-04 11:27 ` [PATCH 58/89] drm/i915/skl: Register definitions for SKL Clocks Damien Lespiau
2014-09-22 18:17   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-11-04 16:11     ` [PATCH 58/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 59/89] drm/i915/skl: Structure/enum definitions for SKL clocks Damien Lespiau
2014-09-22 18:25   ` Paulo Zanoni
2014-11-04 16:12     ` Damien Lespiau
2014-11-05  9:11       ` Daniel Vetter
2014-09-04 11:27 ` [PATCH 60/89] drm/i915/skl: CD clock back calculation for SKL Damien Lespiau
2014-09-22 19:19   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-11-04 16:15     ` [PATCH 60/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 61/89] drm/i915/skl: Determine enabled PLL and its linkrate/pixel clock Damien Lespiau
2014-09-22 20:12   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-10-03 18:25       ` Paulo Zanoni
2014-11-04 16:17     ` [PATCH 61/89 v4] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 62/89] drm/i915/skl: Query DPLL attached to port on SKL Damien Lespiau
2014-09-22 20:24   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-11-04 16:19     ` [PATCH 62/89 v3] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 63/89] drm/i915/skl: Define shared DPLLs for Skylake Damien Lespiau
2014-09-23 14:28   ` Paulo Zanoni
2014-10-01 10:52     ` M, Satheeshakrishna
2014-09-04 11:27 ` [PATCH 64/89] drm/i915/skl: Adjust the port PLL selection code Damien Lespiau
2014-09-23 14:39   ` Paulo Zanoni
2014-09-04 11:27 ` [PATCH 65/89] drm/i915/skl: Always use DPLL0 for eDP Damien Lespiau
2014-09-23 15:07   ` Paulo Zanoni
2014-10-01 10:52     ` M, Satheeshakrishna
2014-09-04 11:27 ` [PATCH 66/89] drm/i915/skl: Implementation of SKL DPLL programming Damien Lespiau
2014-09-23 18:05   ` Paulo Zanoni
2014-10-01 10:52     ` M, Satheeshakrishna [this message]
2014-11-04 16:26     ` [PATCH 66/89 v9] " Damien Lespiau
2014-11-07 19:56       ` Paulo Zanoni
2015-05-13 14:54   ` [PATCH 66/89] " Tvrtko Ursulin
2015-05-13 15:31     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 67/89] drm/i915/skl: Provide skl-specific pll hw state cross-checking Damien Lespiau
2014-09-23 18:07   ` Paulo Zanoni
2014-09-04 11:27 ` [PATCH 68/89] drm/i915/skl: Apply eDP WA only for gen < 9 Damien Lespiau
2014-09-23 18:11   ` Paulo Zanoni
2014-09-04 11:27 ` [PATCH 69/89] drm/i915/skl: Adding power domains for AUX controllers Damien Lespiau
2014-09-16 12:35   ` Imre Deak
2014-09-18 13:56     ` Damien Lespiau
2014-09-18 14:23       ` Imre Deak
2014-09-18 14:29         ` Ville Syrjälä
2014-11-05 14:23     ` [PATCH 69/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 70/89] drm/i915/skl: Register definition for SKL power well Damien Lespiau
2014-09-16 12:43   ` Imre Deak
2014-09-04 11:27 ` [PATCH 71/89] drm/i915/skl: Implementation of SKL display power well support Damien Lespiau
2014-09-16 13:56   ` Imre Deak
2014-09-16 14:19     ` Imre Deak
2014-09-04 11:27 ` [PATCH 72/89] drm/i915/skl: Enable/disable power well for aux transaction Damien Lespiau
2014-09-16 13:19   ` Imre Deak
2014-09-16 16:13     ` Daniel Vetter
2014-11-07 12:08     ` Damien Lespiau
2014-11-10 19:21       ` Imre Deak
2014-11-11 12:22         ` Damien Lespiau
2014-11-11 13:11           ` Imre Deak
2014-11-11 14:43           ` Daniel Vetter
2014-11-11 14:41         ` Daniel Vetter
2014-11-07 13:11     ` Damien Lespiau
2014-11-07 13:31       ` Ville Syrjälä
2014-11-07 13:49         ` Damien Lespiau
2014-11-07 14:05           ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 73/89] drm/i915/skl: Enabling MISC IO power well Damien Lespiau
2014-09-16 14:12   ` Imre Deak
2014-09-04 11:27 ` [PATCH 74/89] drm/i915/skl: Implement queue_flip Damien Lespiau
2014-09-23 20:06   ` Paulo Zanoni
2014-09-29 16:54     ` Damien Lespiau
2014-09-29 17:13     ` [PATCH 74/89 v4] " Damien Lespiau
2014-09-30 12:08       ` Paulo Zanoni
2014-09-30 12:19         ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 75/89] drm/i915/skl: fetch, enable/disable pfit as needed Damien Lespiau
2014-09-23 20:50   ` Paulo Zanoni
2014-09-24 10:44     ` Damien Lespiau
2014-09-25 14:48     ` Jesse Barnes
2014-09-25 14:55       ` Damien Lespiau
2014-09-25 17:58   ` [PATCH] drm/i915/skl: fetch, enable/disable pfit as needed v2 Jesse Barnes
2014-09-25 18:06     ` Paulo Zanoni
2014-09-29 13:51       ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 76/89] drm/i915/skl: Store the new WM state at the very end of the update Damien Lespiau
2014-10-29 19:19   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 77/89] drm/i915: Introduce a for_each_plane() macro Damien Lespiau
2014-09-04 13:26   ` Daniel Vetter
2014-09-04 13:32   ` Chris Wilson
2014-09-04 14:00     ` Daniel Vetter
2014-09-04 14:05       ` Damien Lespiau
2014-09-04 14:16         ` Daniel Vetter
2014-09-04 14:02     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 78/89] drm/i915/skl: Flush the WM configuration Damien Lespiau
2014-09-19 10:46   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 79/89] drm/i915/skl: Read back the DDB allocation hw state Damien Lespiau
2014-09-19 10:54   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 80/89] drm/i915/skl: Augment the latency debugfs files for SKL Damien Lespiau
2014-09-19 10:53   ` Ville Syrjälä
2014-09-29 13:37     ` [PATCH 80/89 v2] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 81/89] drm/i915/skl: Expose skl_ddb_get_hw_state() Damien Lespiau
2014-10-29 19:21   ` Ville Syrjälä
2014-10-29 23:49     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 82/89] drm/i915/skl: Add a debugfs file to dump the DDB allocation Damien Lespiau
2014-10-29 19:23   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 83/89] drm/i915/skl: Check the DDB state at modeset Damien Lespiau
2014-09-04 13:27   ` Daniel Vetter
2014-10-29 19:16     ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 84/89] drm/i915/skl: add turbo support Damien Lespiau
2014-09-26 14:55   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 85/89] drm/i915/skl: Retrieve the frequency limits Damien Lespiau
2014-09-26 15:09   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 86/89] drm/i915: only reset media, blt, and render engines on GPU hangs Damien Lespiau
2014-09-04 12:03   ` Jani Nikula
2014-09-04 12:29     ` Damien Lespiau
2014-09-04 13:13       ` Daniel Vetter
2014-09-04 15:46       ` Jesse Barnes
2014-09-04 12:36   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 87/89] drm/i915/skl: AUX irqs have moved Damien Lespiau
2014-09-26 15:21   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 88/89] drm/i915/skl: Add Gen9 LRC size Damien Lespiau
2014-09-04 11:27 ` [PATCH 89/89] drm/i915/skl: Disable contexts if execlists aren't enabled Damien Lespiau
2014-09-26 15:28   ` Mika Kuoppala
2014-09-26 15:47     ` Chris Wilson
2014-09-04 14:16 ` [PATCH 00/89] Basic Skylake enabling (reviewers) Damien Lespiau
2014-09-16 14:51   ` Thomas Wood
2014-10-17 14:29   ` Damien Lespiau

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=542BDCE5.6070702@intel.com \
    --to=satheeshakrishna.m@intel.com \
    --cc=damien.lespiau@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=przanoni@gmail.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