* [PATCH] drm/i915/skl: Update the 800mV+2bB HDMI translation entry @ 2015-02-19 14:33 Damien Lespiau 2015-02-19 17:31 ` shuang.he 2015-03-02 16:19 ` [PATCH v2] drm/i915/skl: Only use " Damien Lespiau 0 siblings, 2 replies; 5+ messages in thread From: Damien Lespiau @ 2015-02-19 14:33 UTC (permalink / raw) To: intel-gfx This translation entry was updated after electrical validation by the hw team. The other entries may be updated as well, but we have no ETA for those. Suggested-by: Sonika Jindal <sonika.jindal@intel.com> Cc: Sonika Jindal <sonika.jindal@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> --- drivers/gpu/drm/i915/intel_ddi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index f14e8a2..75c084f 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -149,7 +149,7 @@ static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { { 0x00003015, 0x00000088 }, /* 5: 600 800 2.5 */ { 0x00005013, 0x00000080 }, /* 6: 600 1000 4.5 */ { 0x00000018, 0x00000088 }, /* 7: 800 800 0 */ - { 0x00000096, 0x00000080 }, /* 8: 800 1000 2 */ + { 0x00004014, 0x00000087 }, /* 8: 800 1000 2 */ { 0x00000018, 0x00000080 }, /* 9: 1200 1200 0 */ }; -- 1.8.3.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] drm/i915/skl: Update the 800mV+2bB HDMI translation entry 2015-02-19 14:33 [PATCH] drm/i915/skl: Update the 800mV+2bB HDMI translation entry Damien Lespiau @ 2015-02-19 17:31 ` shuang.he 2015-03-02 16:19 ` [PATCH v2] drm/i915/skl: Only use " Damien Lespiau 1 sibling, 0 replies; 5+ messages in thread From: shuang.he @ 2015-02-19 17:31 UTC (permalink / raw) To: shuang.he, ethan.gao, intel-gfx, damien.lespiau Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com) Task id: 5795 -------------------------------------Summary------------------------------------- Platform Delta drm-intel-nightly Series Applied PNV -11 277/277 266/277 ILK 313/313 313/313 SNB 309/309 309/309 IVB 382/382 382/382 BYT 296/296 296/296 HSW -1 425/425 424/425 BDW -1 318/318 317/318 -------------------------------------Detailed------------------------------------- Platform Test drm-intel-nightly Series Applied PNV igt_gem_userptr_blits_coherency-sync NO_RESULT(1)CRASH(3)PASS(5) CRASH(1)PASS(1) PNV igt_gem_userptr_blits_coherency-unsync CRASH(2)PASS(4) CRASH(1)PASS(1) *PNV igt_gem_userptr_blits_create-destroy-sync PASS(3) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_dmabuf-sync PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forbidden-operations PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forked-access PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forked-sync-interruptible PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forked-unsync-normal PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forked-unsync-swapping-interruptible PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forked-unsync-swapping-mempressure-interruptible PASS(2) NRUN(1)PASS(1) *PNV igt_gem_userptr_blits_forked-unsync-swapping-mempressure-normal PASS(2) NRUN(1)PASS(1) *HSW igt_gem_pwrite_pread_uncached-copy-performance PASS(2) DMESG_WARN(1)PASS(1) *BDW igt_gem_gtt_hog PASS(13) DMESG_WARN(1) Note: You need to pay more attention to line start with '*' _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] drm/i915/skl: Only use the 800mV+2bB HDMI translation entry 2015-02-19 14:33 [PATCH] drm/i915/skl: Update the 800mV+2bB HDMI translation entry Damien Lespiau 2015-02-19 17:31 ` shuang.he @ 2015-03-02 16:19 ` Damien Lespiau 2015-03-03 5:01 ` Jindal, Sonika 2015-03-03 17:16 ` shuang.he 1 sibling, 2 replies; 5+ messages in thread From: Damien Lespiau @ 2015-03-02 16:19 UTC (permalink / raw) To: intel-gfx This translation entry was updated after electrical validation by the hw team. The other entries are removed from existence as they aren't validated and because the sole use of a certain type of level shifter for SKL products is anticipated. v2: Remove all the other entries and force the use of the 800mv+2dB config (Sonika) Suggested-by: Sonika Jindal <sonika.jindal@intel.com> Cc: Sonika Jindal <sonika.jindal@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> --- drivers/gpu/drm/i915/intel_ddi.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 985d531..834820b 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -156,16 +156,7 @@ static const struct ddi_buf_trans skl_ddi_translations_edp[] = { static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { /* Idx NT mV T mV db */ - { 0x00000018, 0x000000a0 }, /* 0: 400 400 0 */ - { 0x00004014, 0x00000098 }, /* 1: 400 600 3.5 */ - { 0x00006012, 0x00000088 }, /* 2: 400 800 6 */ - { 0x00000018, 0x0000003c }, /* 3: 450 450 0 */ - { 0x00000018, 0x00000098 }, /* 4: 600 600 0 */ - { 0x00003015, 0x00000088 }, /* 5: 600 800 2.5 */ - { 0x00005013, 0x00000080 }, /* 6: 600 1000 4.5 */ - { 0x00000018, 0x00000088 }, /* 7: 800 800 0 */ - { 0x00000096, 0x00000080 }, /* 8: 800 1000 2 */ - { 0x00000018, 0x00000080 }, /* 9: 1200 1200 0 */ + { 0x00004014, 0x00000087 }, /* 0: 800 1000 2 */ }; enum port intel_ddi_get_encoder_port(struct intel_encoder *intel_encoder) @@ -202,7 +193,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) { struct drm_i915_private *dev_priv = dev->dev_private; u32 reg; - int i, n_hdmi_entries, n_dp_entries, n_edp_entries, hdmi_800mV_0dB, + int i, n_hdmi_entries, n_dp_entries, n_edp_entries, hdmi_default_entry, size; int hdmi_level = dev_priv->vbt.ddi_port_info[port].hdmi_level_shift; const struct ddi_buf_trans *ddi_translations_fdi; @@ -223,9 +214,16 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) n_edp_entries = ARRAY_SIZE(skl_ddi_translations_dp); } + /* + * On SKL, the recommendation from the hw team is to always use + * a certain type of level shifter (and thus the corresponding + * 800mV+2dB entry). Given that's the only validated entry, we + * override what is in the VBT, at least until further notice. + */ + hdmi_level = 0; ddi_translations_hdmi = skl_ddi_translations_hdmi; n_hdmi_entries = ARRAY_SIZE(skl_ddi_translations_hdmi); - hdmi_800mV_0dB = 7; + hdmi_default_entry = 0; } else if (IS_BROADWELL(dev)) { ddi_translations_fdi = bdw_ddi_translations_fdi; ddi_translations_dp = bdw_ddi_translations_dp; @@ -234,7 +232,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) n_edp_entries = ARRAY_SIZE(bdw_ddi_translations_edp); n_dp_entries = ARRAY_SIZE(bdw_ddi_translations_dp); n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi); - hdmi_800mV_0dB = 7; + hdmi_default_entry = 7; } else if (IS_HASWELL(dev)) { ddi_translations_fdi = hsw_ddi_translations_fdi; ddi_translations_dp = hsw_ddi_translations_dp; @@ -242,7 +240,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) ddi_translations_hdmi = hsw_ddi_translations_hdmi; n_dp_entries = n_edp_entries = ARRAY_SIZE(hsw_ddi_translations_dp); n_hdmi_entries = ARRAY_SIZE(hsw_ddi_translations_hdmi); - hdmi_800mV_0dB = 6; + hdmi_default_entry = 6; } else { WARN(1, "ddi translation table missing\n"); ddi_translations_edp = bdw_ddi_translations_dp; @@ -252,7 +250,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) n_edp_entries = ARRAY_SIZE(bdw_ddi_translations_edp); n_dp_entries = ARRAY_SIZE(bdw_ddi_translations_dp); n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi); - hdmi_800mV_0dB = 7; + hdmi_default_entry = 7; } switch (port) { @@ -295,7 +293,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) /* Choose a good default if VBT is badly populated */ if (hdmi_level == HDMI_LEVEL_SHIFT_UNKNOWN || hdmi_level >= n_hdmi_entries) - hdmi_level = hdmi_800mV_0dB; + hdmi_level = hdmi_default_entry; /* Entry 9 is for HDMI: */ I915_WRITE(reg, ddi_translations_hdmi[hdmi_level].trans1); -- 1.8.3.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] drm/i915/skl: Only use the 800mV+2bB HDMI translation entry 2015-03-02 16:19 ` [PATCH v2] drm/i915/skl: Only use " Damien Lespiau @ 2015-03-03 5:01 ` Jindal, Sonika 2015-03-03 17:16 ` shuang.he 1 sibling, 0 replies; 5+ messages in thread From: Jindal, Sonika @ 2015-03-03 5:01 UTC (permalink / raw) To: Damien Lespiau, intel-gfx On 3/2/2015 9:49 PM, Damien Lespiau wrote: > This translation entry was updated after electrical validation by the hw > team. The other entries are removed from existence as they aren't > validated and because the sole use of a certain type of level shifter > for SKL products is anticipated. > > v2: Remove all the other entries and force the use of the 800mv+2dB > config (Sonika) > > Suggested-by: Sonika Jindal <sonika.jindal@intel.com> > Cc: Sonika Jindal <sonika.jindal@intel.com> > Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> > --- > drivers/gpu/drm/i915/intel_ddi.c | 30 ++++++++++++++---------------- > 1 file changed, 14 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c > index 985d531..834820b 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -156,16 +156,7 @@ static const struct ddi_buf_trans skl_ddi_translations_edp[] = { > > static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { > /* Idx NT mV T mV db */ > - { 0x00000018, 0x000000a0 }, /* 0: 400 400 0 */ > - { 0x00004014, 0x00000098 }, /* 1: 400 600 3.5 */ > - { 0x00006012, 0x00000088 }, /* 2: 400 800 6 */ > - { 0x00000018, 0x0000003c }, /* 3: 450 450 0 */ > - { 0x00000018, 0x00000098 }, /* 4: 600 600 0 */ > - { 0x00003015, 0x00000088 }, /* 5: 600 800 2.5 */ > - { 0x00005013, 0x00000080 }, /* 6: 600 1000 4.5 */ > - { 0x00000018, 0x00000088 }, /* 7: 800 800 0 */ > - { 0x00000096, 0x00000080 }, /* 8: 800 1000 2 */ > - { 0x00000018, 0x00000080 }, /* 9: 1200 1200 0 */ > + { 0x00004014, 0x00000087 }, /* 0: 800 1000 2 */ > }; > > enum port intel_ddi_get_encoder_port(struct intel_encoder *intel_encoder) > @@ -202,7 +193,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > { > struct drm_i915_private *dev_priv = dev->dev_private; > u32 reg; > - int i, n_hdmi_entries, n_dp_entries, n_edp_entries, hdmi_800mV_0dB, > + int i, n_hdmi_entries, n_dp_entries, n_edp_entries, hdmi_default_entry, > size; > int hdmi_level = dev_priv->vbt.ddi_port_info[port].hdmi_level_shift; > const struct ddi_buf_trans *ddi_translations_fdi; > @@ -223,9 +214,16 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > n_edp_entries = ARRAY_SIZE(skl_ddi_translations_dp); > } > > + /* > + * On SKL, the recommendation from the hw team is to always use > + * a certain type of level shifter (and thus the corresponding > + * 800mV+2dB entry). Given that's the only validated entry, we > + * override what is in the VBT, at least until further notice. > + */ > + hdmi_level = 0; > ddi_translations_hdmi = skl_ddi_translations_hdmi; > n_hdmi_entries = ARRAY_SIZE(skl_ddi_translations_hdmi); > - hdmi_800mV_0dB = 7; > + hdmi_default_entry = 0; > } else if (IS_BROADWELL(dev)) { > ddi_translations_fdi = bdw_ddi_translations_fdi; > ddi_translations_dp = bdw_ddi_translations_dp; > @@ -234,7 +232,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > n_edp_entries = ARRAY_SIZE(bdw_ddi_translations_edp); > n_dp_entries = ARRAY_SIZE(bdw_ddi_translations_dp); > n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi); > - hdmi_800mV_0dB = 7; > + hdmi_default_entry = 7; > } else if (IS_HASWELL(dev)) { > ddi_translations_fdi = hsw_ddi_translations_fdi; > ddi_translations_dp = hsw_ddi_translations_dp; > @@ -242,7 +240,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > ddi_translations_hdmi = hsw_ddi_translations_hdmi; > n_dp_entries = n_edp_entries = ARRAY_SIZE(hsw_ddi_translations_dp); > n_hdmi_entries = ARRAY_SIZE(hsw_ddi_translations_hdmi); > - hdmi_800mV_0dB = 6; > + hdmi_default_entry = 6; > } else { > WARN(1, "ddi translation table missing\n"); > ddi_translations_edp = bdw_ddi_translations_dp; > @@ -252,7 +250,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > n_edp_entries = ARRAY_SIZE(bdw_ddi_translations_edp); > n_dp_entries = ARRAY_SIZE(bdw_ddi_translations_dp); > n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi); > - hdmi_800mV_0dB = 7; > + hdmi_default_entry = 7; > } > > switch (port) { > @@ -295,7 +293,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > /* Choose a good default if VBT is badly populated */ > if (hdmi_level == HDMI_LEVEL_SHIFT_UNKNOWN || > hdmi_level >= n_hdmi_entries) > - hdmi_level = hdmi_800mV_0dB; > + hdmi_level = hdmi_default_entry; > > /* Entry 9 is for HDMI: */ > I915_WRITE(reg, ddi_translations_hdmi[hdmi_level].trans1); > Reviewed-by: Sonika Jindal <sonika.jindal@intel.com> _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] drm/i915/skl: Only use the 800mV+2bB HDMI translation entry 2015-03-02 16:19 ` [PATCH v2] drm/i915/skl: Only use " Damien Lespiau 2015-03-03 5:01 ` Jindal, Sonika @ 2015-03-03 17:16 ` shuang.he 1 sibling, 0 replies; 5+ messages in thread From: shuang.he @ 2015-03-03 17:16 UTC (permalink / raw) To: shuang.he, ethan.gao, intel-gfx, damien.lespiau Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com) Task id: 5870 -------------------------------------Summary------------------------------------- Platform Delta drm-intel-nightly Series Applied PNV -5 278/278 273/278 ILK 308/308 308/308 SNB 284/284 284/284 IVB -1 380/380 379/380 BYT 294/294 294/294 HSW 387/387 387/387 BDW -1 316/316 315/316 -------------------------------------Detailed------------------------------------- Platform Test drm-intel-nightly Series Applied PNV igt_gem_userptr_blits_coherency-sync CRASH(4)PASS(7) CRASH(2) PNV igt_gem_userptr_blits_coherency-unsync NO_RESULT(1)CRASH(3)PASS(5) CRASH(2) PNV igt_gen3_render_linear_blits FAIL(3)PASS(7) FAIL(2) PNV igt_gen3_render_mixed_blits FAIL(3)PASS(9) FAIL(2) PNV igt_gem_fence_thrash_bo-write-verify-threaded-none FAIL(2)CRASH(2)PASS(3) CRASH(2) IVB igt_gem_storedw_batches_loop_normal DMESG_WARN(1)PASS(2) DMESG_WARN(1)PASS(1) *BDW igt_gem_gtt_hog PASS(13) DMESG_WARN(1)PASS(1) Note: You need to pay more attention to line start with '*' _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-03-03 17:16 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-19 14:33 [PATCH] drm/i915/skl: Update the 800mV+2bB HDMI translation entry Damien Lespiau 2015-02-19 17:31 ` shuang.he 2015-03-02 16:19 ` [PATCH v2] drm/i915/skl: Only use " Damien Lespiau 2015-03-03 5:01 ` Jindal, Sonika 2015-03-03 17:16 ` shuang.he
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox