Message ID | 1439876279-1546-5-git-send-email-sivakumar.thulasimani@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 18 Aug 2015, Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> wrote: > From: "Thulasimani,Sivakumar" <sivakumar.thulasimani@intel.com> > > This patch fixes the bug that SKL SKUs before B0 might return > HBR2 as supported even though it is not supposed to be enabled > on such platforms. > > v2: optimize if else condition (Jani) > > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> Pushed to drm-intel-next-fixes, thanks for the patch and review. BR, Jani. > --- > drivers/gpu/drm/i915/intel_dp.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 8bc6361..32bf961 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -1224,21 +1224,24 @@ static bool intel_dp_source_supports_hbr2(struct drm_device *dev) > static int > intel_dp_source_rates(struct drm_device *dev, const int **source_rates) > { > + int size; > + > if (IS_BROXTON(dev)) { > *source_rates = bxt_rates; > - return ARRAY_SIZE(bxt_rates); > + size = ARRAY_SIZE(bxt_rates); > } else if (IS_SKYLAKE(dev)) { > *source_rates = skl_rates; > - return ARRAY_SIZE(skl_rates); > + size = ARRAY_SIZE(skl_rates); > + } else { > + *source_rates = default_rates; > + size = ARRAY_SIZE(default_rates); > } > > - *source_rates = default_rates; > - > /* This depends on the fact that 5.4 is last value in the array */ > - if (intel_dp_source_supports_hbr2(dev)) > - return (DP_LINK_BW_5_4 >> 3) + 1; > - else > - return (DP_LINK_BW_2_7 >> 3) + 1; > + if (!intel_dp_source_supports_hbr2(dev)) > + size--; > + > + return size; > } > > static void > -- > 1.7.9.5 >
Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 7225
-------------------------------------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 Test drm-intel-nightly Series Applied
*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 '*'
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 8bc6361..32bf961 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1224,21 +1224,24 @@ static bool intel_dp_source_supports_hbr2(struct drm_device *dev) static int intel_dp_source_rates(struct drm_device *dev, const int **source_rates) { + int size; + if (IS_BROXTON(dev)) { *source_rates = bxt_rates; - return ARRAY_SIZE(bxt_rates); + size = ARRAY_SIZE(bxt_rates); } else if (IS_SKYLAKE(dev)) { *source_rates = skl_rates; - return ARRAY_SIZE(skl_rates); + size = ARRAY_SIZE(skl_rates); + } else { + *source_rates = default_rates; + size = ARRAY_SIZE(default_rates); } - *source_rates = default_rates; - /* This depends on the fact that 5.4 is last value in the array */ - if (intel_dp_source_supports_hbr2(dev)) - return (DP_LINK_BW_5_4 >> 3) + 1; - else - return (DP_LINK_BW_2_7 >> 3) + 1; + if (!intel_dp_source_supports_hbr2(dev)) + size--; + + return size; } static void