[Intel-gfx] [BXT MIPI PATCH 2/2] drm/i915: dual link pipe selection for bxt
Daniel Vetter
daniel at ffwll.ch
Wed Dec 9 00:19:48 PST 2015
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 at intel.com>
> ---
> 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list