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