On Fri, 2016-04-29 at 18:28 -0700, Manasi Navare wrote: > From: Jim Bride <jim.bride@xxxxxxxxxxxxxxx> > > For DP compliance we need to be able to control the output color > type for the pipe associated with the DP port. To do this we rely > on the intel_dp_test_force_bpc debugfs file and the associated value > stored in struct intel_dp. If the debugfs file has a non-zero value > and we're on a display port connector, then we use the value from > debugfs to calculate the bpp for the pipe. For cases where we are > not on DP or there has not been an overridden value then we behave > as normal. > > Signed-off-by: Jim Bride <jim.bride@xxxxxxxxxxxxxxx> > Signed-off-by: Manasi Navare <manasi.d.navare@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 32 ++++++++++++++++++++++++++++++-- > drivers/gpu/drm/i915/intel_drv.h | 1 + > 2 files changed, 31 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index 5ffccf6..1618d36 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -12102,11 +12102,39 @@ compute_baseline_pipe_bpp(struct intel_crtc *crtc, > > /* Clamp display bpp to EDID value */ > for_each_connector_in_state(state, connector, connector_state, i) { > + int type = 0; > + > + if (connector_state->best_encoder) { > + struct intel_encoder *ienc; > + > + ienc = to_intel_encoder(connector_state- > >best_encoder); > + type = ienc->type; > + } > + > if (connector_state->crtc != &crtc->base) > continue; > > - connected_sink_compute_bpp(to_intel_connector(connector), > - pipe_config); > + /* For DP compliance we need to ensure that we can override > + * the computed bpp for the pipe. > + */ > + if (type == INTEL_OUTPUT_DISPLAYPORT) { > + struct intel_dp *intel_dp = > + enc_to_intel_dp(connector_state- > >best_encoder); > + > + if (intel_dp && > + (intel_dp->compliance_force_bpc != 0)) { > + pipe_config->pipe_bpp = > + intel_dp->compliance_force_bpc*3; > + DRM_DEBUG_KMS("JMB Setting pipe_bpp to %d\n", > + pipe_config->pipe_bpp); > + } else { > + connected_sink_compute_bpp(to_intel_connector > (connector), > + pipe_config); This kind of thing should be done in the encoder compute_config hook. > + } > + } else { > + connected_sink_compute_bpp(to_intel_connector(connect > or), > + pipe_config); > + } > } > > return bpp; > diff --git a/drivers/gpu/drm/i915/intel_drv.h > b/drivers/gpu/drm/i915/intel_drv.h > index e23eed7..10eaff8 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -865,6 +865,7 @@ struct intel_dp { > unsigned long compliance_test_type; > unsigned long compliance_test_data; > bool compliance_test_active; > + unsigned long compliance_force_bpc; /* 0 for default or bpc to use */ There's no code for setting compliance_test_active anywhere. The commit message mentions debugfs, but I didn't see anything related in the patch. Ander _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx