intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/dsi: fix bxt split screen and color issue
Date: Fri, 3 Jun 2016 18:32:29 +0300	[thread overview]
Message-ID: <20160603153229.GC4329@intel.com> (raw)
In-Reply-To: <1464965825-31035-1-git-send-email-jani.nikula@intel.com>

On Fri, Jun 03, 2016 at 05:57:05PM +0300, Jani Nikula wrote:
> Fix the failure mode where the display appears split, or shifted about
> 2/3 of the screen, and the color components are cycled. Turns out we
> were missing the crucial BXT_DEFEATURE_DPI_FIFO_CTR bit in the
> EOT_DISABLE register.
> 
> Per bspec, with the bit set, the "mipi_dpf_vblank_start" signal is
> asserted only when the complete frame is transferred in the DPHY line
> and also the DPI FIFO is flushed out at the end of each frame.
> 
> The problem was mitigated by keeping the panel fitter enabled, but that
> only limited the issue to a shift of about 0..10 pixels. With the fix
> here, the panel fitter workaround does not seem to be needed at all.
> 
> While at it, set BXT_DPHY_DEFEATURE_EN in EOT_DISABLE register which is
> also needed per the BXT DSI mode set sequence.
> 
> Issue: VIZ-7610
> Cc: Mika Kahola <mika.kahola@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Ramalingam C <ramalingam.c@intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

I also noticed that we seem to be deviating from the current sequence in
the spec pretty much all the time. I guess it's possible the spec has
been heavily updated since the code was written, but it might make sense
for someone to actually go through  the thing and try to figure out what
else we're missing and/or doing in the wrong order.

> ---
>  drivers/gpu/drm/i915/i915_reg.h  | 2 ++
>  drivers/gpu/drm/i915/intel_dsi.c | 6 ++++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 0845059b6a3b..f7b822a86915 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -8151,6 +8151,8 @@ enum skl_disp_power_wells {
>  #define _MIPIA_EOT_DISABLE		(dev_priv->mipi_mmio_base + 0xb05c)
>  #define _MIPIC_EOT_DISABLE		(dev_priv->mipi_mmio_base + 0xb85c)
>  #define MIPI_EOT_DISABLE(port)		_MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
> +#define  BXT_DEFEATURE_DPI_FIFO_CTR			(1 << 9)
> +#define  BXT_DPHY_DEFEATURE_EN				(1 << 8)
>  #define  LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE		(1 << 7)
>  #define  HS_RX_TIMEOUT_ERROR_RECOVERY_DISABLE		(1 << 6)
>  #define  LOW_CONTENTION_RECOVERY_DISABLE		(1 << 5)
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index c70132aa91d5..0f86da048a63 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1172,6 +1172,12 @@ static void intel_dsi_prepare(struct intel_encoder *intel_encoder)
>  	if (intel_dsi->clock_stop)
>  		tmp |= CLOCKSTOP;
>  
> +	if (IS_BROXTON(dev_priv)) {
> +		tmp |= BXT_DPHY_DEFEATURE_EN;
> +		if (!is_cmd_mode(intel_dsi))
> +			tmp |= BXT_DEFEATURE_DPI_FIFO_CTR;
> +	}
> +
>  	for_each_dsi_port(port, intel_dsi->ports) {
>  		I915_WRITE(MIPI_DSI_FUNC_PRG(port), val);
>  
> -- 
> 2.1.4

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-06-03 15:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-03 14:57 [PATCH] drm/i915/dsi: fix bxt split screen and color issue Jani Nikula
2016-06-03 15:32 ` Ville Syrjälä [this message]
2016-06-06  6:54   ` Jani Nikula
2016-06-03 15:51 ` ✗ Ro.CI.BAT: warning for " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160603153229.GC4329@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).