Message ID | 1442565666-7468-2-git-send-email-sonika.jindal@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> On 9/18/2015 2:11 PM, Sonika Jindal wrote: > Adding voltage swing table for edp to support low vswings. > > Signed-off-by: Sonika Jindal <sonika.jindal@intel.com> > --- > drivers/gpu/drm/i915/intel_ddi.c | 23 +++++++++++++++++++---- > 1 file changed, 19 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c > index 0d9b304..17281bc 100644 > --- a/drivers/gpu/drm/i915/intel_ddi.c > +++ b/drivers/gpu/drm/i915/intel_ddi.c > @@ -256,9 +256,6 @@ struct bxt_ddi_buf_trans { > bool default_index; /* true if the entry represents default value */ > }; > > -/* BSpec does not define separate vswing/pre-emphasis values for eDP. > - * Using DP values for eDP as well. > - */ > static const struct bxt_ddi_buf_trans bxt_ddi_translations_dp[] = { > /* Idx NT mV diff db */ > { 52, 0, 0, 128, true }, /* 0: 400 0 */ > @@ -273,6 +270,20 @@ static const struct bxt_ddi_buf_trans bxt_ddi_translations_dp[] = { > { 154, 0x9A, 1, 128, false }, /* 9: 1200 0 */ > }; > > +static const struct bxt_ddi_buf_trans bxt_ddi_translations_edp[] = { > + /* Idx NT mV diff db */ > + { 26, 0, 0, 128, false }, /* 0: 200 0 */ > + { 38, 0, 0, 112, false }, /* 1: 200 1.5 */ > + { 48, 0, 0, 96, false }, /* 2: 200 4 */ > + { 54, 0, 0, 69, false }, /* 3: 200 6 */ > + { 32, 0, 0, 128, false }, /* 4: 250 0 */ > + { 48, 0, 0, 104, false }, /* 5: 250 1.5 */ > + { 54, 0, 0, 85, false }, /* 6: 250 4 */ > + { 43, 0, 0, 128, false }, /* 7: 300 0 */ > + { 54, 0, 0, 101, false }, /* 8: 300 1.5 */ > + { 48, 0, 0, 128, false }, /* 9: 300 0 */ > +}; > + > /* BSpec has 2 recommended values - entries 0 and 8. > * Using the entry with higher vswing. > */ > @@ -2113,7 +2124,11 @@ static void bxt_ddi_vswing_sequence(struct drm_device *dev, u32 level, > u32 n_entries, i; > uint32_t val; > > - if (type == INTEL_OUTPUT_DISPLAYPORT || type == INTEL_OUTPUT_EDP) { > + if (type == INTEL_OUTPUT_EDP && dev_priv->edp_low_vswing) { > + n_entries = ARRAY_SIZE(bxt_ddi_translations_edp); > + ddi_translations = bxt_ddi_translations_edp; > + } else if (type == INTEL_OUTPUT_DISPLAYPORT > + || type == INTEL_OUTPUT_EDP) { > n_entries = ARRAY_SIZE(bxt_ddi_translations_dp); > ddi_translations = bxt_ddi_translations_dp; > } else if (type == INTEL_OUTPUT_HDMI) {
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 0d9b304..17281bc 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c @@ -256,9 +256,6 @@ struct bxt_ddi_buf_trans { bool default_index; /* true if the entry represents default value */ }; -/* BSpec does not define separate vswing/pre-emphasis values for eDP. - * Using DP values for eDP as well. - */ static const struct bxt_ddi_buf_trans bxt_ddi_translations_dp[] = { /* Idx NT mV diff db */ { 52, 0, 0, 128, true }, /* 0: 400 0 */ @@ -273,6 +270,20 @@ static const struct bxt_ddi_buf_trans bxt_ddi_translations_dp[] = { { 154, 0x9A, 1, 128, false }, /* 9: 1200 0 */ }; +static const struct bxt_ddi_buf_trans bxt_ddi_translations_edp[] = { + /* Idx NT mV diff db */ + { 26, 0, 0, 128, false }, /* 0: 200 0 */ + { 38, 0, 0, 112, false }, /* 1: 200 1.5 */ + { 48, 0, 0, 96, false }, /* 2: 200 4 */ + { 54, 0, 0, 69, false }, /* 3: 200 6 */ + { 32, 0, 0, 128, false }, /* 4: 250 0 */ + { 48, 0, 0, 104, false }, /* 5: 250 1.5 */ + { 54, 0, 0, 85, false }, /* 6: 250 4 */ + { 43, 0, 0, 128, false }, /* 7: 300 0 */ + { 54, 0, 0, 101, false }, /* 8: 300 1.5 */ + { 48, 0, 0, 128, false }, /* 9: 300 0 */ +}; + /* BSpec has 2 recommended values - entries 0 and 8. * Using the entry with higher vswing. */ @@ -2113,7 +2124,11 @@ static void bxt_ddi_vswing_sequence(struct drm_device *dev, u32 level, u32 n_entries, i; uint32_t val; - if (type == INTEL_OUTPUT_DISPLAYPORT || type == INTEL_OUTPUT_EDP) { + if (type == INTEL_OUTPUT_EDP && dev_priv->edp_low_vswing) { + n_entries = ARRAY_SIZE(bxt_ddi_translations_edp); + ddi_translations = bxt_ddi_translations_edp; + } else if (type == INTEL_OUTPUT_DISPLAYPORT + || type == INTEL_OUTPUT_EDP) { n_entries = ARRAY_SIZE(bxt_ddi_translations_dp); ddi_translations = bxt_ddi_translations_dp; } else if (type == INTEL_OUTPUT_HDMI) {
Adding voltage swing table for edp to support low vswings. Signed-off-by: Sonika Jindal <sonika.jindal@intel.com> --- drivers/gpu/drm/i915/intel_ddi.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-)