On Fri, Sep 09, 2016 at 02:10:56PM +0300, Mika Kahola wrote:
DisplayPort branch device may define max supported bits per component. Update display info based on this value if bpc is defined.
v2: cleanup to match the drm_dp_helper.c patches introduced earlier in this series v3: Fill bpc for connector's display info in separate drm_dp_helper function (Daniel) v4: remove updating bpc for display info as it may be overridden when parsing EDID. Instead, check bpc for DP branch device during compute_config v5: Indentation fixes (Jim Bride)
Signed-off-by: Mika Kahola mika.kahola@intel.com
Reviewed-by: Jim Bride jim.bride@linux.intel.com
drivers/gpu/drm/i915/intel_dp.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 8f17c88..69cee9b 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1524,6 +1524,20 @@ void intel_dp_compute_rate(struct intel_dp *intel_dp, int port_clock, } }
+int intel_dp_compute_bpp(struct intel_dp *intel_dp,
struct intel_crtc_state *pipe_config)
+{
- int bpp, bpc;
- bpp = pipe_config->pipe_bpp;
- bpc = drm_dp_downstream_max_bpc(intel_dp->dpcd, intel_dp->downstream_ports);
- if (bpc > 0)
bpp = min(bpp, 3*bpc);
- return bpp;
+}
bool intel_dp_compute_config(struct intel_encoder *encoder, struct intel_crtc_state *pipe_config, @@ -1590,7 +1604,7 @@ intel_dp_compute_config(struct intel_encoder *encoder,
/* Walk through all bpp values. Luckily they're all nicely spaced with 2 * bpc in between. */
- bpp = pipe_config->pipe_bpp;
bpp = intel_dp_compute_bpp(intel_dp, pipe_config); if (is_edp(intel_dp)) {
/* Get bpp from vbt only for panels that dont have bpp in edid */
-- 2.7.4