* [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.