On Wed, Dec 09, 2015 at 05:29:58PM +0530, Deepak M wrote: > Pipe is assigned based on the port, but it should be > based on current crtc. Correcting the same in this patch. > > Signed-off-by: Deepak M <m.deepak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_dsi.c | 23 ++++++++++++++--------- > 1 file changed, 14 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c > index f5df49b..0654b33 100644 > --- a/drivers/gpu/drm/i915/intel_dsi.c > +++ b/drivers/gpu/drm/i915/intel_dsi.c > @@ -898,20 +898,25 @@ static void intel_dsi_prepare(struct intel_encoder *intel_encoder) > I915_WRITE(MIPI_CTRL(port), tmp | > READ_REQUEST_PRIORITY_HIGH); > } else if (IS_BROXTON(dev)) { > - /* > - * FIXME: > - * BXT can connect any PIPE to any MIPI port. > - * Select the pipe based on the MIPI port read from > - * VBT for now. Pick PIPE A for MIPI port A and C > - * for port C. > - */ > + enum pipe pipe = intel_crtc->pipe; > + > tmp = I915_READ(MIPI_CTRL(port)); > tmp &= ~BXT_PIPE_SELECT_MASK; > > - if (port == PORT_A) > + switch (pipe) { > + case PIPE_A: > tmp |= BXT_PIPE_SELECT_A; > - else if (port == PORT_C) > + break; > + case PIPE_B: > + tmp |= BXT_PIPE_SELECT_B; > + break; > + case PIPE_C: > tmp |= BXT_PIPE_SELECT_C; Please create a BXT_PIPE_SELECT(pipe) macro like we have for all the other outputs that support more than 1 pipe selection bit. See e.g. DP_PIPE_SELECT_CHV. -Daniel > + break; > + default: > + DRM_ERROR("Unknown pipe used\n"); > + return; > + } > > I915_WRITE(MIPI_CTRL(port), tmp); > } > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx