* [CI 1/2] drm/i915/icl: implement DVFS for ICL
@ 2018-06-14 22:10 Paulo Zanoni
2018-06-14 22:10 ` [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field Paulo Zanoni
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Paulo Zanoni @ 2018-06-14 22:10 UTC (permalink / raw)
To: intel-gfx; +Cc: Paulo Zanoni
ICL DVFS is almost the same as CNL, except for the CDCLK/DDICLK
table. Implement it just like CNL does.
References: commit 48469eced282 ("drm/i915: Use cdclk_state->voltage
on CNL")
References: commit 53e9bf5e8159 ("drm/i915: Adjust system agent
voltage on CNL if required by DDI ports")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
drivers/gpu/drm/i915/intel_cdclk.c | 46 +++++++++++++++++++++++++++++++++++---
drivers/gpu/drm/i915/intel_ddi.c | 2 ++
2 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c
index 8ed7bd052e46..bf9433d7964d 100644
--- a/drivers/gpu/drm/i915/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/intel_cdclk.c
@@ -1871,11 +1871,35 @@ static void icl_set_cdclk(struct drm_i915_private *dev_priv,
skl_cdclk_decimal(cdclk));
mutex_lock(&dev_priv->pcu_lock);
- /* TODO: add proper DVFS support. */
- sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL, 2);
+ sandybridge_pcode_write(dev_priv, SKL_PCODE_CDCLK_CONTROL,
+ cdclk_state->voltage_level);
mutex_unlock(&dev_priv->pcu_lock);
intel_update_cdclk(dev_priv);
+
+ /*
+ * Can't read out the voltage level :(
+ * Let's just assume everything is as expected.
+ */
+ dev_priv->cdclk.hw.voltage_level = cdclk_state->voltage_level;
+}
+
+static u8 icl_calc_voltage_level(int cdclk)
+{
+ switch (cdclk) {
+ case 50000:
+ case 307200:
+ case 312000:
+ return 0;
+ case 556800:
+ case 552000:
+ return 1;
+ default:
+ MISSING_CASE(cdclk);
+ case 652800:
+ case 648000:
+ return 2;
+ }
}
static void icl_get_cdclk(struct drm_i915_private *dev_priv,
@@ -1909,7 +1933,7 @@ static void icl_get_cdclk(struct drm_i915_private *dev_priv,
*/
cdclk_state->vco = 0;
cdclk_state->cdclk = cdclk_state->bypass;
- return;
+ goto out;
}
cdclk_state->vco = (val & BXT_DE_PLL_RATIO_MASK) * cdclk_state->ref;
@@ -1918,6 +1942,14 @@ static void icl_get_cdclk(struct drm_i915_private *dev_priv,
WARN_ON((val & BXT_CDCLK_CD2X_DIV_SEL_MASK) != 0);
cdclk_state->cdclk = cdclk_state->vco / 2;
+
+out:
+ /*
+ * Can't read this out :( Let's assume it's
+ * at least what the CDCLK frequency requires.
+ */
+ cdclk_state->voltage_level =
+ icl_calc_voltage_level(cdclk_state->cdclk);
}
/**
@@ -1960,6 +1992,8 @@ void icl_init_cdclk(struct drm_i915_private *dev_priv)
sanitized_state.cdclk = icl_calc_cdclk(0, sanitized_state.ref);
sanitized_state.vco = icl_calc_cdclk_pll_vco(dev_priv,
sanitized_state.cdclk);
+ sanitized_state.voltage_level =
+ icl_calc_voltage_level(sanitized_state.cdclk);
icl_set_cdclk(dev_priv, &sanitized_state);
}
@@ -1977,6 +2011,7 @@ void icl_uninit_cdclk(struct drm_i915_private *dev_priv)
cdclk_state.cdclk = cdclk_state.bypass;
cdclk_state.vco = 0;
+ cdclk_state.voltage_level = icl_calc_voltage_level(cdclk_state.cdclk);
icl_set_cdclk(dev_priv, &cdclk_state);
}
@@ -2480,6 +2515,9 @@ static int icl_modeset_calc_cdclk(struct drm_atomic_state *state)
intel_state->cdclk.logical.vco = vco;
intel_state->cdclk.logical.cdclk = cdclk;
+ intel_state->cdclk.logical.voltage_level =
+ max(icl_calc_voltage_level(cdclk),
+ cnl_compute_min_voltage_level(intel_state));
if (!intel_state->active_crtcs) {
cdclk = icl_calc_cdclk(0, ref);
@@ -2487,6 +2525,8 @@ static int icl_modeset_calc_cdclk(struct drm_atomic_state *state)
intel_state->cdclk.actual.vco = vco;
intel_state->cdclk.actual.cdclk = cdclk;
+ intel_state->cdclk.actual.voltage_level =
+ icl_calc_voltage_level(cdclk);
} else {
intel_state->cdclk.actual = intel_state->cdclk.logical;
}
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index ce153b11c765..044fe1fb9872 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -3078,6 +3078,8 @@ void intel_ddi_compute_min_voltage_level(struct drm_i915_private *dev_priv,
{
if (IS_CANNONLAKE(dev_priv) && crtc_state->port_clock > 594000)
crtc_state->min_voltage_level = 2;
+ else if (IS_ICELAKE(dev_priv) && crtc_state->port_clock > 594000)
+ crtc_state->min_voltage_level = 1;
}
void intel_ddi_get_config(struct intel_encoder *encoder,
--
2.14.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field
2018-06-14 22:10 [CI 1/2] drm/i915/icl: implement DVFS for ICL Paulo Zanoni
@ 2018-06-14 22:10 ` Paulo Zanoni
2018-06-18 17:58 ` Jani Nikula
2018-06-14 23:16 ` ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL Patchwork
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Paulo Zanoni @ 2018-06-14 22:10 UTC (permalink / raw)
To: intel-gfx; +Cc: Paulo Zanoni
Some bits from the flags2 field are going to be used in the next
patches, so replace the whole-byte definition with the actual bits and
document their versions.
This patch is based on a patch by Animesh Manna.
Cc: Animesh Manna <animesh.manna@intel.com>
Credits-to: Animesh Manna <animesh.manna@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
drivers/gpu/drm/i915/intel_vbt_defs.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
index c132d0c3a500..c614c9f3f28b 100644
--- a/drivers/gpu/drm/i915/intel_vbt_defs.h
+++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
@@ -420,7 +420,9 @@ struct child_device_config {
u16 extended_type;
u8 dvo_function;
u8 dp_usb_type_c:1; /* 195 */
- u8 flags2_reserved:7; /* 195 */
+ u8 tbt:1; /* 209 */
+ u8 flags2_reserved:2; /* 195 */
+ u8 dp_port_trace_length:4; /* 209 */
u8 dp_gpio_index; /* 195 */
u16 dp_gpio_pin_num; /* 195 */
u8 dp_iboost_level:4; /* 196 */
--
2.14.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL
2018-06-14 22:10 [CI 1/2] drm/i915/icl: implement DVFS for ICL Paulo Zanoni
2018-06-14 22:10 ` [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field Paulo Zanoni
@ 2018-06-14 23:16 ` Patchwork
2018-06-14 23:31 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-15 8:13 ` ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-06-14 23:16 UTC (permalink / raw)
To: Paulo Zanoni; +Cc: intel-gfx
== Series Details ==
Series: series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL
URL : https://patchwork.freedesktop.org/series/44784/
State : warning
== Summary ==
$ dim sparse origin/drm-tip
Commit: drm/i915/icl: implement DVFS for ICL
+drivers/gpu/drm/i915/intel_cdclk.c:2519:17: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/intel_cdclk.c:2519:17: warning: expression using sizeof(void)
Commit: drm/i915/icl: update VBT's child_device_config flags2 field
Okay!
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL
2018-06-14 22:10 [CI 1/2] drm/i915/icl: implement DVFS for ICL Paulo Zanoni
2018-06-14 22:10 ` [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field Paulo Zanoni
2018-06-14 23:16 ` ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL Patchwork
@ 2018-06-14 23:31 ` Patchwork
2018-06-15 8:13 ` ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-06-14 23:31 UTC (permalink / raw)
To: Paulo Zanoni; +Cc: intel-gfx
== Series Details ==
Series: series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL
URL : https://patchwork.freedesktop.org/series/44784/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4322 -> Patchwork_9314 =
== Summary - WARNING ==
Minor unknown changes coming with Patchwork_9314 need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_9314, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/44784/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_9314:
=== IGT changes ===
==== Warnings ====
igt@gem_exec_gttfill@basic:
fi-pnv-d510: PASS -> SKIP
== Known issues ==
Here are the changes found in Patchwork_9314 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_module_reload@basic-reload-inject:
fi-glk-j4005: PASS -> DMESG-WARN (fdo#106248, fdo#106725)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
fi-bxt-dsi: PASS -> INCOMPLETE (fdo#103927)
igt@prime_vgem@basic-fence-flip:
fi-ilk-650: PASS -> FAIL (fdo#104008)
==== Possible fixes ====
igt@kms_flip@basic-plain-flip:
fi-glk-j4005: DMESG-WARN (fdo#106000) -> PASS
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725
== Participating hosts (43 -> 38) ==
Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
== Build changes ==
* Linux: CI_DRM_4322 -> Patchwork_9314
CI_DRM_4322: 485f975b0c64f2a3c9b0bf116a63adc3c6389b1f @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4519: 3381a56be31defb3b5c23a4fbc19ac26a000c35b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9314: d5c29a8723e6c00c6509ab2d3a37fe522a37cb20 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
d5c29a8723e6 drm/i915/icl: update VBT's child_device_config flags2 field
206c6f5d326b drm/i915/icl: implement DVFS for ICL
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9314/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.IGT: success for series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL
2018-06-14 22:10 [CI 1/2] drm/i915/icl: implement DVFS for ICL Paulo Zanoni
` (2 preceding siblings ...)
2018-06-14 23:31 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-06-15 8:13 ` Patchwork
3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-06-15 8:13 UTC (permalink / raw)
To: Paulo Zanoni; +Cc: intel-gfx
== Series Details ==
Series: series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL
URL : https://patchwork.freedesktop.org/series/44784/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4322_full -> Patchwork_9314_full =
== Summary - WARNING ==
Minor unknown changes coming with Patchwork_9314_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_9314_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
== Possible new issues ==
Here are the unknown changes that may have been introduced in Patchwork_9314_full:
=== IGT changes ===
==== Warnings ====
igt@gem_exec_schedule@deep-render:
shard-kbl: SKIP -> PASS
igt@gem_mocs_settings@mocs-rc6-vebox:
shard-kbl: PASS -> SKIP +2
== Known issues ==
Here are the changes found in Patchwork_9314_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_selftest@live_gtt:
shard-glk: PASS -> INCOMPLETE (k.org#198133, fdo#103359)
igt@drv_suspend@shrink:
shard-snb: PASS -> FAIL (fdo#106886)
shard-hsw: PASS -> INCOMPLETE (fdo#103540)
igt@gem_exec_suspend@basic-s3:
shard-kbl: PASS -> INCOMPLETE (fdo#103665)
igt@gem_ppgtt@blt-vs-render-ctx0:
shard-kbl: PASS -> INCOMPLETE (fdo#103665, fdo#106023)
igt@kms_flip@flip-vs-expired-vblank-interruptible:
shard-glk: PASS -> FAIL (fdo#105189)
igt@kms_flip@modeset-vs-vblank-race-interruptible:
shard-hsw: PASS -> FAIL (fdo#103060)
igt@kms_flip_tiling@flip-to-x-tiled:
shard-glk: PASS -> FAIL (fdo#104724)
igt@kms_flip_tiling@flip-to-y-tiled:
shard-glk: PASS -> FAIL (fdo#104724, fdo#103822)
igt@perf_pmu@other-init-2:
shard-snb: PASS -> INCOMPLETE (fdo#105411)
==== Possible fixes ====
igt@drv_selftest@live_gtt:
shard-kbl: INCOMPLETE (fdo#103665) -> PASS
igt@gem_exec_big:
shard-hsw: INCOMPLETE (fdo#103540) -> PASS
igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
shard-hsw: FAIL (fdo#100368) -> PASS
igt@kms_flip_tiling@flip-y-tiled:
shard-glk: FAIL (fdo#104724, fdo#103822) -> PASS
igt@kms_setmode@basic:
shard-apl: FAIL (fdo#99912) -> PASS
shard-hsw: FAIL (fdo#99912) -> PASS
igt@testdisplay:
shard-kbl: WARN (fdo#106354) -> PASS
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#105189 https://bugs.freedesktop.org/show_bug.cgi?id=105189
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#106354 https://bugs.freedesktop.org/show_bug.cgi?id=106354
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* Linux: CI_DRM_4322 -> Patchwork_9314
CI_DRM_4322: 485f975b0c64f2a3c9b0bf116a63adc3c6389b1f @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4519: 3381a56be31defb3b5c23a4fbc19ac26a000c35b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9314: d5c29a8723e6c00c6509ab2d3a37fe522a37cb20 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9314/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field
2018-06-14 22:10 ` [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field Paulo Zanoni
@ 2018-06-18 17:58 ` Jani Nikula
0 siblings, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2018-06-18 17:58 UTC (permalink / raw)
To: intel-gfx; +Cc: Paulo Zanoni
On Thu, 14 Jun 2018, Paulo Zanoni <paulo.r.zanoni@intel.com> wrote:
> Some bits from the flags2 field are going to be used in the next
> patches, so replace the whole-byte definition with the actual bits and
> document their versions.
>
> This patch is based on a patch by Animesh Manna.
>
> Cc: Animesh Manna <animesh.manna@intel.com>
> Credits-to: Animesh Manna <animesh.manna@intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/intel_vbt_defs.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_vbt_defs.h b/drivers/gpu/drm/i915/intel_vbt_defs.h
> index c132d0c3a500..c614c9f3f28b 100644
> --- a/drivers/gpu/drm/i915/intel_vbt_defs.h
> +++ b/drivers/gpu/drm/i915/intel_vbt_defs.h
> @@ -420,7 +420,9 @@ struct child_device_config {
> u16 extended_type;
> u8 dvo_function;
> u8 dp_usb_type_c:1; /* 195 */
> - u8 flags2_reserved:7; /* 195 */
> + u8 tbt:1; /* 209 */
> + u8 flags2_reserved:2; /* 195 */
> + u8 dp_port_trace_length:4; /* 209 */
> u8 dp_gpio_index; /* 195 */
> u16 dp_gpio_pin_num; /* 195 */
> u8 dp_iboost_level:4; /* 196 */
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-06-18 17:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-14 22:10 [CI 1/2] drm/i915/icl: implement DVFS for ICL Paulo Zanoni
2018-06-14 22:10 ` [CI 2/2] drm/i915/icl: update VBT's child_device_config flags2 field Paulo Zanoni
2018-06-18 17:58 ` Jani Nikula
2018-06-14 23:16 ` ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/2] drm/i915/icl: implement DVFS for ICL Patchwork
2018-06-14 23:31 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-15 8:13 ` ✓ Fi.CI.IGT: " Patchwork
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.