Re: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang...@intel.com) Task id: 7248 -Summary- Platform Delta drm-intel-nightly Series Applied ILK -2 302/302 300/302 SNB 315/315 315/315 IVB 336/336 336/336 BYT 283/283 283/283 HSW 378/378 378/378 -Detailed- Platform Testdrm-intel-nightly Series Applied *ILK igt@kms_flip@flip-vs-dpms-interruptible PASS(1) DMESG_WARN(1) *ILK igt@kms_flip@wf_vblank-vs-modeset-interruptible PASS(1) 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
Re: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
On Tue, 25 Aug 2015, Rodrigo Vivi wrote: > SKL-Y can now use the same programming for all VccIO values after an > adjustment to I_boost. > SKL-U DP table adjustments. > 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. The > other SKL Y column removes the "0.85V VccIO" so it now applies to all > voltages. > 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to 201Bh. > 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to 201Bh. > 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. > > v2: Fix compilation warnings as pointed by Paulo. > > Reference: Graphics Spec Change r97962 > Cc: Arthur Runyan > Signed-off-by: Rodrigo Vivi > Reviewed-by: Paulo Zanoni Pushed to drm-intel-next-fixes. BR, Jani. > --- > drivers/gpu/drm/i915/intel_ddi.c | 75 > ++-- > 1 file changed, 25 insertions(+), 50 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c > b/drivers/gpu/drm/i915/intel_ddi.c > index 56d778f..3b056c4 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -128,7 +128,7 @@ static const struct ddi_buf_trans > bdw_ddi_translations_hdmi[] = { > { 0x80FF, 0x001B0002, 0x0 },/* 9: 100010000 */ > }; > > -/* Skylake H, S, and Skylake Y with 0.95V VccIO */ > +/* Skylake H and S */ > static const struct ddi_buf_trans skl_ddi_translations_dp[] = { > { 0x2016, 0x00A0, 0x0 }, > { 0x5012, 0x009B, 0x0 }, > @@ -143,23 +143,23 @@ static const struct ddi_buf_trans > skl_ddi_translations_dp[] = { > > /* Skylake U */ > static const struct ddi_buf_trans skl_u_ddi_translations_dp[] = { > - { 0x2016, 0x00A2, 0x0 }, > + { 0x201B, 0x00A2, 0x0 }, > { 0x5012, 0x0088, 0x0 }, > { 0x7011, 0x0087, 0x0 }, > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > - { 0x2016, 0x009D, 0x0 }, > + { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost level 0x1 */ > + { 0x201B, 0x009D, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > { 0x7011, 0x00C7, 0x0 }, > { 0x2016, 0x0088, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > }; > > -/* Skylake Y with 0.85V VccIO */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { > +/* Skylake Y */ > +static const struct ddi_buf_trans skl_y_ddi_translations_dp[] = { > { 0x0018, 0x00A2, 0x0 }, > { 0x5012, 0x0088, 0x0 }, > { 0x7011, 0x0087, 0x0 }, > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > + { 0x80009010, 0x00C7, 0x3 },/* Uses I_boost level 0x3 */ > { 0x0018, 0x009D, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > { 0x7011, 0x00C7, 0x0 }, > @@ -168,7 +168,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_dp[] = { > }; > > /* > - * Skylake H and S, and Skylake Y with 0.95V VccIO > + * Skylake H and S > * eDP 1.4 low vswing translation parameters > */ > static const struct ddi_buf_trans skl_ddi_translations_edp[] = { > @@ -202,10 +202,10 @@ static const struct ddi_buf_trans > skl_u_ddi_translations_edp[] = { > }; > > /* > - * Skylake Y with 0.95V VccIO > + * Skylake Y > * eDP 1.4 low vswing translation parameters > */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { > +static const struct ddi_buf_trans skl_y_ddi_translations_edp[] = { > { 0x0018, 0x00A8, 0x0 }, > { 0x4013, 0x00AB, 0x0 }, > { 0x7011, 0x00A4, 0x0 }, > @@ -218,7 +218,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_edp[] = { > { 0x0018, 0x008A, 0x0 }, > }; > > -/* Skylake H, S and U, and Skylake Y with 0.95V VccIO */ > +/* Skylake U, H and S */ > static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { > { 0x0018, 0x00AC, 0x0 }, > { 0x5012, 0x009D, 0x0 }, > @@ -233,8 +233,8 @@ static const struct ddi_buf_trans > skl_ddi_translations_hdmi[] = { > { 0x0018, 0x00C7, 0x0 }, > }; > > -/* Skylake Y with 0.85V VccIO */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_hdmi[] = { > +/* Skylake Y */ > +static const struct ddi_buf_trans skl_y_ddi_translations_hdmi[] = { > { 0x0018, 0x00A1, 0x0 }, > { 0x5012, 0x00DF, 0x0 }, > { 0x7011, 0x0084, 0x0 }, > @@ -244,7 +244,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_hdmi[] = { > { 0x6013, 0x00C7, 0x0 }, > { 0x0018, 0x008A, 0x0 }, > { 0x3015, 0x00C7, 0x0 },/* Default */ > - { 0x80003015, 0x00C7, 0x7 },/* Uses I_boost */ > + { 0x80003015, 0x00C7, 0x7 },/* Uses I_boost level 0x7 */ > { 0x0018, 0x00C7, 0x0 }, > }; > > @@ -335,19 +335,11 @@ intel_dig_port_suppo
[Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
SKL-Y can now use the same programming for all VccIO values after an adjustment to I_boost. SKL-U DP table adjustments. 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. The other SKL Y column removes the "0.85V VccIO" so it now applies to all voltages. 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to 201Bh. 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to 201Bh. 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. v2: Fix compilation warnings as pointed by Paulo. Reference: Graphics Spec Change r97962 Cc: Arthur Runyan Signed-off-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni --- drivers/gpu/drm/i915/intel_ddi.c | 75 ++-- 1 file changed, 25 insertions(+), 50 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 56d778f..3b056c4 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -128,7 +128,7 @@ static const struct ddi_buf_trans bdw_ddi_translations_hdmi[] = { { 0x80FF, 0x001B0002, 0x0 },/* 9: 100010000 */ }; -/* Skylake H, S, and Skylake Y with 0.95V VccIO */ +/* Skylake H and S */ static const struct ddi_buf_trans skl_ddi_translations_dp[] = { { 0x2016, 0x00A0, 0x0 }, { 0x5012, 0x009B, 0x0 }, @@ -143,23 +143,23 @@ static const struct ddi_buf_trans skl_ddi_translations_dp[] = { /* Skylake U */ static const struct ddi_buf_trans skl_u_ddi_translations_dp[] = { - { 0x2016, 0x00A2, 0x0 }, + { 0x201B, 0x00A2, 0x0 }, { 0x5012, 0x0088, 0x0 }, { 0x7011, 0x0087, 0x0 }, - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ - { 0x2016, 0x009D, 0x0 }, + { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost level 0x1 */ + { 0x201B, 0x009D, 0x0 }, { 0x5012, 0x00C7, 0x0 }, { 0x7011, 0x00C7, 0x0 }, { 0x2016, 0x0088, 0x0 }, { 0x5012, 0x00C7, 0x0 }, }; -/* Skylake Y with 0.85V VccIO */ -static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { +/* Skylake Y */ +static const struct ddi_buf_trans skl_y_ddi_translations_dp[] = { { 0x0018, 0x00A2, 0x0 }, { 0x5012, 0x0088, 0x0 }, { 0x7011, 0x0087, 0x0 }, - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ + { 0x80009010, 0x00C7, 0x3 },/* Uses I_boost level 0x3 */ { 0x0018, 0x009D, 0x0 }, { 0x5012, 0x00C7, 0x0 }, { 0x7011, 0x00C7, 0x0 }, @@ -168,7 +168,7 @@ static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { }; /* - * Skylake H and S, and Skylake Y with 0.95V VccIO + * Skylake H and S * eDP 1.4 low vswing translation parameters */ static const struct ddi_buf_trans skl_ddi_translations_edp[] = { @@ -202,10 +202,10 @@ static const struct ddi_buf_trans skl_u_ddi_translations_edp[] = { }; /* - * Skylake Y with 0.95V VccIO + * Skylake Y * eDP 1.4 low vswing translation parameters */ -static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { +static const struct ddi_buf_trans skl_y_ddi_translations_edp[] = { { 0x0018, 0x00A8, 0x0 }, { 0x4013, 0x00AB, 0x0 }, { 0x7011, 0x00A4, 0x0 }, @@ -218,7 +218,7 @@ static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { { 0x0018, 0x008A, 0x0 }, }; -/* Skylake H, S and U, and Skylake Y with 0.95V VccIO */ +/* Skylake U, H and S */ static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { { 0x0018, 0x00AC, 0x0 }, { 0x5012, 0x009D, 0x0 }, @@ -233,8 +233,8 @@ static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { { 0x0018, 0x00C7, 0x0 }, }; -/* Skylake Y with 0.85V VccIO */ -static const struct ddi_buf_trans skl_y_085v_ddi_translations_hdmi[] = { +/* Skylake Y */ +static const struct ddi_buf_trans skl_y_ddi_translations_hdmi[] = { { 0x0018, 0x00A1, 0x0 }, { 0x5012, 0x00DF, 0x0 }, { 0x7011, 0x0084, 0x0 }, @@ -244,7 +244,7 @@ static const struct ddi_buf_trans skl_y_085v_ddi_translations_hdmi[] = { { 0x6013, 0x00C7, 0x0 }, { 0x0018, 0x008A, 0x0 }, { 0x3015, 0x00C7, 0x0 },/* Default */ - { 0x80003015, 0x00C7, 0x7 },/* Uses I_boost */ + { 0x80003015, 0x00C7, 0x7 },/* Uses I_boost level 0x7 */ { 0x0018, 0x00C7, 0x0 }, }; @@ -335,19 +335,11 @@ intel_dig_port_supports_hdmi(const struct intel_digital_port *intel_dig_port) static const struct ddi_buf_trans *skl_get_buf_trans_dp(struct drm_device *dev, int *n_entries) { - struct drm_i915_private *dev_priv =
Re: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
Em Qua, 2015-08-05 às 14:59 -0700, Rodrigo Vivi escreveu: > SKL-Y can now use the same programming for all VccIO values after an > adjustment to I_boost. > SKL-U DP table adjustments. > 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. > The other SKL Y column removes the "0.85V VccIO" so it now applies > to all voltages. > 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to > 201Bh. > 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to > 201Bh. > 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. > > Reference: Graphics Spec Change r97962 > Cc: Arthur Runyan > Signed-off-by: Rodrigo Vivi drivers/gpu/drm/i915/intel_ddi.c: In function ‘skl_get_buf_trans_dp’: drivers/gpu/drm/i915/intel_ddi.c:338:27: warning: unused variable ‘dev_priv’ [-Wunused-variable] drivers/gpu/drm/i915/intel_ddi.c: In function ‘skl_get_buf_trans_hdmi’: drivers/gpu/drm/i915/intel_ddi.c:394:27: warning: unused variable ‘dev_priv’ [-Wunused-variable] With that fixed: Reviewed-by: Paulo Zanoni > --- > drivers/gpu/drm/i915/intel_ddi.c | 73 ++ > -- > 1 file changed, 25 insertions(+), 48 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c > b/drivers/gpu/drm/i915/intel_ddi.c > index 9a40bfb..9e5a21b 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -128,7 +128,7 @@ static const struct ddi_buf_trans > bdw_ddi_translations_hdmi[] = { > { 0x80FF, 0x001B0002, 0x0 },/* 9: 100010000 > */ > > }; > > -/* Skylake H, S, and Skylake Y with 0.95V VccIO */ > +/* Skylake H and S */ > static const struct ddi_buf_trans skl_ddi_translations_dp[] = { > { 0x2016, 0x00A0, 0x0 }, > { 0x5012, 0x009B, 0x0 }, > @@ -143,23 +143,23 @@ static const struct ddi_buf_trans > skl_ddi_translations_dp[] = { > > /* Skylake U */ > static const struct ddi_buf_trans skl_u_ddi_translations_dp[] = { > - { 0x2016, 0x00A2, 0x0 }, > + { 0x201B, 0x00A2, 0x0 }, > { 0x5012, 0x0088, 0x0 }, > { 0x7011, 0x0087, 0x0 }, > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > - { 0x2016, 0x009D, 0x0 }, > + { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost > level 0x1 */ > + { 0x201B, 0x009D, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > { 0x7011, 0x00C7, 0x0 }, > { 0x2016, 0x0088, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > }; > > -/* Skylake Y with 0.85V VccIO */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = > { > +/* Skylake Y */ > +static const struct ddi_buf_trans skl_y_ddi_translations_dp[] = { > { 0x0018, 0x00A2, 0x0 }, > { 0x5012, 0x0088, 0x0 }, > { 0x7011, 0x0087, 0x0 }, > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > + { 0x80009010, 0x00C7, 0x3 },/* Uses I_boost > level 0x3 */ > { 0x0018, 0x009D, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > { 0x7011, 0x00C7, 0x0 }, > @@ -168,7 +168,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_dp[] = { > }; > > /* > - * Skylake H and S, and Skylake Y with 0.95V VccIO > + * Skylake H and S > * eDP 1.4 low vswing translation parameters > */ > static const struct ddi_buf_trans skl_ddi_translations_edp[] = { > @@ -202,10 +202,10 @@ static const struct ddi_buf_trans > skl_u_ddi_translations_edp[] = { > }; > > /* > - * Skylake Y with 0.95V VccIO > + * Skylake Y > * eDP 1.4 low vswing translation parameters > */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] > = { > +static const struct ddi_buf_trans skl_y_ddi_translations_edp[] = { > { 0x0018, 0x00A8, 0x0 }, > { 0x4013, 0x00AB, 0x0 }, > { 0x7011, 0x00A4, 0x0 }, > @@ -218,7 +218,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_edp[] = { > { 0x0018, 0x008A, 0x0 }, > }; > > -/* Skylake H, S and U, and Skylake Y with 0.95V VccIO */ > +/* Skylake U, H and S */ > static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { > { 0x0018, 0x00AC, 0x0 }, > { 0x5012, 0x009D, 0x0 }, > @@ -233,8 +233,8 @@ static const struct ddi_buf_trans > skl_ddi_translations_hdmi[] = { > { 0x0018, 0x00C7, 0x0 }, > }; > > -/* Skylake Y with 0.85V VccIO */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_hdmi[] > = { > +/* Skylake Y */ > +static const struct ddi_buf_trans skl_y_ddi_translations_hdmi[] = { > { 0x0018, 0x00A1, 0x0 }, > { 0x5012, 0x00DF, 0x0 }, > { 0x7011, 0x0084, 0x0 }, > @@ -244,7 +244,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_hdmi[] = { > { 0x6013, 0x00C7, 0x0 }, > { 0x0018, 0x008A, 0x0 }, >
Re: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang...@intel.com) Task id: 7079 -Summary- Platform Delta drm-intel-nightly Series Applied ILK -1 302/302 301/302 SNB 315/315 315/315 IVB 336/336 336/336 BYT 283/283 283/283 HSW 378/378 378/378 -Detailed- Platform Testdrm-intel-nightly Series Applied *ILK igt@kms_flip@rcs-wf_vblank-vs-dpms-interruptible PASS(1) 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
Re: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
On Wed, Aug 5, 2015 at 6:47 PM Zhang, Xiong Y wrote: > Hi, Vivi: > Do you think this patch could resolve the following two issues ? > https://bugs.freedesktop.org/show_bug.cgi?id=91050 > https://bugs.freedesktop.org/show_bug.cgi?id=91269 I'm not sure honestly... I was just following latest spec updates. But I believe it has potential.. at least to avoid this vswig parameters on our SDPs. > > > thanks > > -Original Message- > > From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On > Behalf Of > > Rodrigo Vivi > > Sent: Thursday, August 6, 2015 5:59 AM > > To: intel-gfx@lists.freedesktop.org > > Cc: Runyan, Arthur J; Vivi, Rodrigo > > Subject: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation > > programming. > > > > SKL-Y can now use the same programming for all VccIO values after an > > adjustment to I_boost. > > SKL-U DP table adjustments. > > 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. > The > > other SKL Y column removes the "0.85V VccIO" so it now applies to all > > voltages. > > 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to > > 201Bh. > > 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to > > 201Bh. > > 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. > > > > Reference: Graphics Spec Change r97962 > > Cc: Arthur Runyan > > Signed-off-by: Rodrigo Vivi > > --- > > drivers/gpu/drm/i915/intel_ddi.c | 73 > ++-- > > 1 file changed, 25 insertions(+), 48 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c > > b/drivers/gpu/drm/i915/intel_ddi.c > > index 9a40bfb..9e5a21b 100644 > > --- a/drivers/gpu/drm/i915/intel_ddi.c > > +++ b/drivers/gpu/drm/i915/intel_ddi.c > > @@ -128,7 +128,7 @@ static const struct ddi_buf_trans > > bdw_ddi_translations_hdmi[] = { > > { 0x80FF, 0x001B0002, 0x0 },/* 9: 100010000 */ > > }; > > > > -/* Skylake H, S, and Skylake Y with 0.95V VccIO */ > > +/* Skylake H and S */ > > static const struct ddi_buf_trans skl_ddi_translations_dp[] = { > > { 0x2016, 0x00A0, 0x0 }, > > { 0x5012, 0x009B, 0x0 }, > > @@ -143,23 +143,23 @@ static const struct ddi_buf_trans > > skl_ddi_translations_dp[] = { > > > > /* Skylake U */ > > static const struct ddi_buf_trans skl_u_ddi_translations_dp[] = { > > - { 0x2016, 0x00A2, 0x0 }, > > + { 0x201B, 0x00A2, 0x0 }, > > { 0x5012, 0x0088, 0x0 }, > > { 0x7011, 0x0087, 0x0 }, > > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > > - { 0x2016, 0x009D, 0x0 }, > > + { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost level 0x1 > */ > > + { 0x201B, 0x009D, 0x0 }, > > { 0x5012, 0x00C7, 0x0 }, > > { 0x7011, 0x00C7, 0x0 }, > > { 0x2016, 0x0088, 0x0 }, > > { 0x5012, 0x00C7, 0x0 }, > > }; > > > > -/* Skylake Y with 0.85V VccIO */ > > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { > > +/* Skylake Y */ > > +static const struct ddi_buf_trans skl_y_ddi_translations_dp[] = { > > { 0x0018, 0x00A2, 0x0 }, > > { 0x5012, 0x0088, 0x0 }, > > { 0x7011, 0x0087, 0x0 }, > > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > > + { 0x80009010, 0x00C7, 0x3 },/* Uses I_boost level 0x3 > */ > > { 0x0018, 0x009D, 0x0 }, > > { 0x5012, 0x00C7, 0x0 }, > > { 0x7011, 0x00C7, 0x0 }, > > @@ -168,7 +168,7 @@ static const struct ddi_buf_trans > > skl_y_085v_ddi_translations_dp[] = { }; > > > > /* > > - * Skylake H and S, and Skylake Y with 0.95V VccIO > > + * Skylake H and S > > * eDP 1.4 low vswing translation parameters > > */ > > static const struct ddi_buf_trans skl_ddi_translations_edp[] = { @@ > -202,10 > > +202,10 @@ static const struct ddi_buf_trans > skl_u_ddi_translations_edp[] = > > { }; > > > > /* > > - * Skylake Y with 0.95V VccIO > > + * Skylake Y > > * eDP 1.4 low vswing translation parameters > > */ > > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { > > +static const struct ddi_buf_trans skl_y_ddi_translations_edp[] = { > > { 0x0018, 0x00A8, 0x0 }, > > { 0x4013,
Re: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
Hi, Vivi: Do you think this patch could resolve the following two issues ? https://bugs.freedesktop.org/show_bug.cgi?id=91050 https://bugs.freedesktop.org/show_bug.cgi?id=91269 thanks > -Original Message- > From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On Behalf Of > Rodrigo Vivi > Sent: Thursday, August 6, 2015 5:59 AM > To: intel-gfx@lists.freedesktop.org > Cc: Runyan, Arthur J; Vivi, Rodrigo > Subject: [Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation > programming. > > SKL-Y can now use the same programming for all VccIO values after an > adjustment to I_boost. > SKL-U DP table adjustments. > 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. The > other SKL Y column removes the "0.85V VccIO" so it now applies to all > voltages. > 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to > 201Bh. > 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to > 201Bh. > 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. > > Reference: Graphics Spec Change r97962 > Cc: Arthur Runyan > Signed-off-by: Rodrigo Vivi > --- > drivers/gpu/drm/i915/intel_ddi.c | 73 > ++-- > 1 file changed, 25 insertions(+), 48 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c > b/drivers/gpu/drm/i915/intel_ddi.c > index 9a40bfb..9e5a21b 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -128,7 +128,7 @@ static const struct ddi_buf_trans > bdw_ddi_translations_hdmi[] = { > { 0x80FF, 0x001B0002, 0x0 },/* 9: 100010000 */ > }; > > -/* Skylake H, S, and Skylake Y with 0.95V VccIO */ > +/* Skylake H and S */ > static const struct ddi_buf_trans skl_ddi_translations_dp[] = { > { 0x2016, 0x00A0, 0x0 }, > { 0x5012, 0x009B, 0x0 }, > @@ -143,23 +143,23 @@ static const struct ddi_buf_trans > skl_ddi_translations_dp[] = { > > /* Skylake U */ > static const struct ddi_buf_trans skl_u_ddi_translations_dp[] = { > - { 0x2016, 0x00A2, 0x0 }, > + { 0x201B, 0x00A2, 0x0 }, > { 0x5012, 0x0088, 0x0 }, > { 0x7011, 0x0087, 0x0 }, > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > - { 0x2016, 0x009D, 0x0 }, > + { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost level 0x1 */ > + { 0x201B, 0x009D, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > { 0x7011, 0x00C7, 0x0 }, > { 0x2016, 0x0088, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > }; > > -/* Skylake Y with 0.85V VccIO */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { > +/* Skylake Y */ > +static const struct ddi_buf_trans skl_y_ddi_translations_dp[] = { > { 0x0018, 0x00A2, 0x0 }, > { 0x5012, 0x0088, 0x0 }, > { 0x7011, 0x0087, 0x0 }, > - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ > + { 0x80009010, 0x00C7, 0x3 },/* Uses I_boost level 0x3 */ > { 0x0018, 0x009D, 0x0 }, > { 0x5012, 0x00C7, 0x0 }, > { 0x7011, 0x00C7, 0x0 }, > @@ -168,7 +168,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_dp[] = { }; > > /* > - * Skylake H and S, and Skylake Y with 0.95V VccIO > + * Skylake H and S > * eDP 1.4 low vswing translation parameters > */ > static const struct ddi_buf_trans skl_ddi_translations_edp[] = { @@ -202,10 > +202,10 @@ static const struct ddi_buf_trans skl_u_ddi_translations_edp[] = > { }; > > /* > - * Skylake Y with 0.95V VccIO > + * Skylake Y > * eDP 1.4 low vswing translation parameters > */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { > +static const struct ddi_buf_trans skl_y_ddi_translations_edp[] = { > { 0x0018, 0x00A8, 0x0 }, > { 0x4013, 0x00AB, 0x0 }, > { 0x7011, 0x00A4, 0x0 }, > @@ -218,7 +218,7 @@ static const struct ddi_buf_trans > skl_y_085v_ddi_translations_edp[] = { > { 0x0018, 0x008A, 0x0 }, > }; > > -/* Skylake H, S and U, and Skylake Y with 0.95V VccIO */ > +/* Skylake U, H and S */ > static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { > { 0x0018, 0x00AC, 0x0 }, > { 0x5012, 0x009D, 0x0 }, > @@ -233,8 +233,8 @@ static const struct ddi_buf_trans > skl_ddi_translations_hdmi[] = { > { 0x0018, 0x00C7, 0x0 }, > }; > > -/* Skylake Y with 0.85V VccIO */ > -static const struct ddi_buf_trans skl_y_085v_ddi_translati
[Intel-gfx] [PATCH] drm/i915/skl: Update DDI buffer translation programming.
SKL-Y can now use the same programming for all VccIO values after an adjustment to I_boost. SKL-U DP table adjustments. 1. Remove SKL Y 0.95V from "SKL H and S" columns in all tables. The other SKL Y column removes the "0.85V VccIO" so it now applies to all voltages. 2. DP table changes SKL U 400mV+0db dword 0 value from 2016h to 201Bh. 3. DP table changes SKL U 600mv+0db dword 0 value from 2016h to 201Bh. 4. DP table increases I_boost to level 3 for SKL Y 400mv+9.5db. Reference: Graphics Spec Change r97962 Cc: Arthur Runyan Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/i915/intel_ddi.c | 73 ++-- 1 file changed, 25 insertions(+), 48 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 9a40bfb..9e5a21b 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -128,7 +128,7 @@ static const struct ddi_buf_trans bdw_ddi_translations_hdmi[] = { { 0x80FF, 0x001B0002, 0x0 },/* 9: 100010000 */ }; -/* Skylake H, S, and Skylake Y with 0.95V VccIO */ +/* Skylake H and S */ static const struct ddi_buf_trans skl_ddi_translations_dp[] = { { 0x2016, 0x00A0, 0x0 }, { 0x5012, 0x009B, 0x0 }, @@ -143,23 +143,23 @@ static const struct ddi_buf_trans skl_ddi_translations_dp[] = { /* Skylake U */ static const struct ddi_buf_trans skl_u_ddi_translations_dp[] = { - { 0x2016, 0x00A2, 0x0 }, + { 0x201B, 0x00A2, 0x0 }, { 0x5012, 0x0088, 0x0 }, { 0x7011, 0x0087, 0x0 }, - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ - { 0x2016, 0x009D, 0x0 }, + { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost level 0x1 */ + { 0x201B, 0x009D, 0x0 }, { 0x5012, 0x00C7, 0x0 }, { 0x7011, 0x00C7, 0x0 }, { 0x2016, 0x0088, 0x0 }, { 0x5012, 0x00C7, 0x0 }, }; -/* Skylake Y with 0.85V VccIO */ -static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { +/* Skylake Y */ +static const struct ddi_buf_trans skl_y_ddi_translations_dp[] = { { 0x0018, 0x00A2, 0x0 }, { 0x5012, 0x0088, 0x0 }, { 0x7011, 0x0087, 0x0 }, - { 0x80009010, 0x00C7, 0x1 },/* Uses I_boost */ + { 0x80009010, 0x00C7, 0x3 },/* Uses I_boost level 0x3 */ { 0x0018, 0x009D, 0x0 }, { 0x5012, 0x00C7, 0x0 }, { 0x7011, 0x00C7, 0x0 }, @@ -168,7 +168,7 @@ static const struct ddi_buf_trans skl_y_085v_ddi_translations_dp[] = { }; /* - * Skylake H and S, and Skylake Y with 0.95V VccIO + * Skylake H and S * eDP 1.4 low vswing translation parameters */ static const struct ddi_buf_trans skl_ddi_translations_edp[] = { @@ -202,10 +202,10 @@ static const struct ddi_buf_trans skl_u_ddi_translations_edp[] = { }; /* - * Skylake Y with 0.95V VccIO + * Skylake Y * eDP 1.4 low vswing translation parameters */ -static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { +static const struct ddi_buf_trans skl_y_ddi_translations_edp[] = { { 0x0018, 0x00A8, 0x0 }, { 0x4013, 0x00AB, 0x0 }, { 0x7011, 0x00A4, 0x0 }, @@ -218,7 +218,7 @@ static const struct ddi_buf_trans skl_y_085v_ddi_translations_edp[] = { { 0x0018, 0x008A, 0x0 }, }; -/* Skylake H, S and U, and Skylake Y with 0.95V VccIO */ +/* Skylake U, H and S */ static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { { 0x0018, 0x00AC, 0x0 }, { 0x5012, 0x009D, 0x0 }, @@ -233,8 +233,8 @@ static const struct ddi_buf_trans skl_ddi_translations_hdmi[] = { { 0x0018, 0x00C7, 0x0 }, }; -/* Skylake Y with 0.85V VccIO */ -static const struct ddi_buf_trans skl_y_085v_ddi_translations_hdmi[] = { +/* Skylake Y */ +static const struct ddi_buf_trans skl_y_ddi_translations_hdmi[] = { { 0x0018, 0x00A1, 0x0 }, { 0x5012, 0x00DF, 0x0 }, { 0x7011, 0x0084, 0x0 }, @@ -244,7 +244,7 @@ static const struct ddi_buf_trans skl_y_085v_ddi_translations_hdmi[] = { { 0x6013, 0x00C7, 0x0 }, { 0x0018, 0x008A, 0x0 }, { 0x3015, 0x00C7, 0x0 },/* Default */ - { 0x80003015, 0x00C7, 0x7 },/* Uses I_boost */ + { 0x80003015, 0x00C7, 0x7 },/* Uses I_boost level 0x7 */ { 0x0018, 0x00C7, 0x0 }, }; @@ -337,17 +337,10 @@ static const struct ddi_buf_trans *skl_get_buf_trans_dp(struct drm_device *dev, { struct drm_i915_private *dev_priv = dev->dev_private; const struct ddi_buf_trans *ddi_translations; - static int is_095v = -1; - if (is_095v == -1) { - u32 spr1 = I915_READ(UAIMI_SPR1); - - is_095v = spr1 & SKL_VCC