From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Imre Deak <imre.deak@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2] drm/i915: vlv: W/a for hotplug/manual VGA detection
Date: Wed, 8 Jan 2014 13:47:08 +0200 [thread overview]
Message-ID: <20140108114708.GJ4800@intel.com> (raw)
In-Reply-To: <1387313544-31536-1-git-send-email-imre.deak@intel.com>
On Tue, Dec 17, 2013 at 10:52:24PM +0200, Imre Deak wrote:
> VGA detection requires the reference clock to be on, so make sure this
> is the case.
>
> This fixes VGA hotplug/manual detection where all pipes are off and so
> we would normally disable all clocks.
>
> v2:
> - Instead of disabling PSR clock gating, force the reference clock on
> through the DPLL_A register. (Kin Chan S <kin.s.chan@intel.com>)
>
> Reported-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++++--
> drivers/gpu/drm/i915/intel_pm.c | 5 +++++
> 2 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 674fd43..f3a0a7e 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -1507,9 +1507,15 @@ static void vlv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe)
> /* Make sure the pipe isn't still relying on us */
> assert_pipe_disabled(dev_priv, pipe);
>
> - /* Leave integrated clock source enabled */
> + /*
> + * Leave integrated clock source enabled for pipe B and the reference
> + * clock for pipe A. The latter is needed for VGA hotplug / manual
> + * detection.
> + */
> if (pipe == PIPE_B)
> val = DPLL_INTEGRATED_CRI_CLK_VLV;
> + else
> + val = DPLL_REFA_CLK_ENABLE_VLV;
> I915_WRITE(DPLL(pipe), val);
> POSTING_READ(DPLL(pipe));
> }
> @@ -4984,7 +4990,11 @@ static void vlv_update_pll(struct intel_crtc *crtc)
>
> vlv_dpio_write(dev_priv, pipe, VLV_PLL_DW11(pipe), 0x87871000);
>
> - /* Enable DPIO clock input */
> + /*
> + * Enable DPIO clock input. We should never disable the reference
> + * clock for pipe A, since VGA hotplug / manual detection depends
> + * on it. Set it here for state tracking.
> + */
> dpll = DPLL_EXT_BUFFER_ENABLE_VLV | DPLL_REFA_CLK_ENABLE_VLV |
> DPLL_VGA_MODE_DIS | DPLL_INTEGRATED_CLOCK_VLV;
> /* We should never disable this, set it here for state tracking */
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index fccd7a8..1c1de83 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -4933,6 +4933,11 @@ static void valleyview_init_clock_gating(struct drm_device *dev)
>
> I915_WRITE(DSPCLK_GATE_D, VRHUNIT_CLOCK_GATE_DISABLE);
>
> + /* Force the reference clock on for VGA hotplug / manual detection */
> + val = I915_READ(DPLL(PIPE_A));
> + val |= DPLL_REFA_CLK_ENABLE_VLV;
> + I915_WRITE(DPLL(PIPE_A), val);
> +
Maybe put this part into intel_init_dpio()?
I can't really comment on the rest since I have no idea why it works.
> /* WaDisableEarlyCull:vlv */
> I915_WRITE(_3D_CHICKEN3,
> _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_DISABLE_OBJEND_CULL));
> --
> 1.8.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
prev parent reply other threads:[~2014-01-08 11:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 20:52 [PATCH v2] drm/i915: vlv: W/a for hotplug/manual VGA detection Imre Deak
2014-01-08 11:47 ` Ville Syrjälä [this message]
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=20140108114708.GJ4800@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.