From: Jani Nikula <jani.nikula@linux.intel.com>
To: Imre Deak <imre.deak@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 25/49] drm/i915/bxt: Add DDI hpd handler
Date: Wed, 08 Apr 2015 13:55:36 +0300 [thread overview]
Message-ID: <871tjukhxz.fsf@intel.com> (raw)
In-Reply-To: <1426585215-8788-26-git-send-email-imre.deak@intel.com>
On Tue, 17 Mar 2015, Imre Deak <imre.deak@intel.com> wrote:
> From: Shashank Sharma <shashank.sharma@intel.com>
>
> This patch adds a hot plug interrupt handler function for BXT.
> What this function typically does is:
> 1. Check if hot plug is enabled from hot plug control register.
> 2. Call hpd_irq_handler with appropriate trigger to detect a
> plug storm and schedule a bottom half.
> 3. Clear sticky status bits in hot plug control register..
>
> Reviewed-by: Satheeshakrishna M <satheeshakrishna.m@intel.com>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> ---
> drivers/gpu/drm/i915/i915_irq.c | 45 +++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 43 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index a51c00e..4a2f85b 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2227,6 +2227,38 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
> return ret;
> }
>
> +static void bxt_hpd_handler(struct drm_device *dev, uint32_t iir_status)
> +{
> + struct drm_i915_private *dev_priv = dev->dev_private;
> + uint32_t hp_control;
> + uint32_t hp_trigger;
> +
> + /* Get the status */
> + hp_trigger = iir_status & BXT_DE_PORT_HOTPLUG_MASK;
> + hp_control = I915_READ(BXT_HOTPLUG_CTL);
> +
> + /* Hotplug not enabled ? */
> + if (unlikely(!(hp_control & BXT_HOTPLUG_CTL_MASK))) {
Drop the unlikely. Or turn this into WARN_ON_ONCE, or something.
> + DRM_ERROR("Interrupt when HPD disabled\n");
> + return;
> + }
> +
> + DRM_DEBUG_DRIVER("hotplug event received, stat 0x%08x\n",
> + hp_control & BXT_HOTPLUG_CTL_MASK);
> +
> + /* Check for HPD storm and schedule bottom half */
> + intel_hpd_irq_handler(dev, hp_trigger, hp_control, hpd_bxt);
That one needs to be updated for bxt hp_control.
> +
> + /*
> + * Todo: Save the hot plug status for bottom half before
Make it TODO, XXX, or FIXME, but not Todo.
> + * clearing the sticky status bits, else the status will be
> + * lost.
> + */
> +
> + /* Clear sticky bits in hpd status */
> + I915_WRITE(BXT_HOTPLUG_CTL, hp_control);
> +}
> +
> static irqreturn_t gen8_irq_handler(int irq, void *arg)
> {
> struct drm_device *dev = arg;
> @@ -2236,6 +2268,7 @@ static irqreturn_t gen8_irq_handler(int irq, void *arg)
> uint32_t tmp = 0;
> enum pipe pipe;
> u32 aux_mask = GEN8_AUX_CHANNEL_A;
> + bool found = false;
Move this down within the block where it's needed.
>
> if (!intel_irqs_enabled(dev_priv))
> return IRQ_NONE;
> @@ -2276,9 +2309,17 @@ static irqreturn_t gen8_irq_handler(int irq, void *arg)
> I915_WRITE(GEN8_DE_PORT_IIR, tmp);
> ret = IRQ_HANDLED;
>
> - if (tmp & aux_mask)
> + if (tmp & aux_mask) {
> dp_aux_irq_handler(dev);
> - else
> + found = true;
> + }
> +
> + if (tmp & BXT_DE_PORT_HOTPLUG_MASK) {
This needs IS_BROXTON check.
> + bxt_hpd_handler(dev, tmp);
> + found = true;
> + }
> +
> + if (!found)
> DRM_ERROR("Unexpected DE Port interrupt\n");
> }
> else
> --
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-04-08 10:57 UTC|newest]
Thread overview: 191+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-17 9:39 [PATCH 00/49] Basic Broxton enabling Imre Deak
2015-03-17 9:39 ` [PATCH 01/49] drm/i915/bxt: Add BXT PCI ids Imre Deak
2015-03-23 9:56 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 02/49] drm/i915/bxt: BXT FBC enablement Imre Deak
2015-03-17 17:49 ` Rodrigo Vivi
2015-03-25 20:46 ` Imre Deak
2015-03-26 15:35 ` [PATCH 02.1/49] drm/i915: use proper FBC base register on all new platforms Imre Deak
2015-03-30 10:05 ` Antti Koskipää
2015-03-30 10:04 ` [PATCH 02/49] drm/i915/bxt: BXT FBC enablement Antti Koskipää
2015-03-30 10:04 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 03/49] drm/i915/bxt: Add IS_BROXTON macro Imre Deak
2015-03-23 9:49 ` Sivakumar Thulasimani
2015-03-17 9:39 ` [PATCH 04/49] drm/i915/bxt: Broxton uses the same GMS values as Skylake Imre Deak
2015-03-23 10:23 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 05/49] drm/i915/bxt: Enable PTE encoding Imre Deak
2015-03-23 10:23 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 06/49] drm/i915/bxt: Broxton has 3 sprite planes on pipe A/B, 2 on pipe C Imre Deak
2015-03-23 10:29 ` Antti Koskipää
2015-03-31 11:18 ` Daniel Vetter
2015-03-17 9:39 ` [PATCH 07/49] drm/i915/bxt: Add the plane4 related interrupt definitions Imre Deak
2015-03-23 10:28 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 08/49] drm/i915/bxt: Broxton DDB is 512 blocks Imre Deak
2015-03-23 10:24 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 09/49] drm/i915/bxt: Broxton raises the maximum number of planes to 4 Imre Deak
2015-03-23 10:24 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 10/49] drm/i915/bxt: map GTT as uncached Imre Deak
2015-03-17 10:33 ` Daniel Vetter
2015-03-17 12:31 ` Imre Deak
2015-03-17 13:47 ` Daniel Vetter
2015-03-27 11:07 ` [PATCH v2] " Imre Deak
2015-03-30 10:02 ` Antti Koskipää
2015-03-17 9:39 ` [PATCH 11/49] drm/i915/gen9: fix PIPE_CONTROL flush for VS_INVALIDATE Imre Deak
2015-03-17 10:35 ` Daniel Vetter
2015-04-08 12:56 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 12/49] drm/i915/bxt: HardWare WorkAround ring initialisation for Broxton Imre Deak
2015-03-19 16:47 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 13/49] drm/i915/bxt: add bxt_init_clock_gating Imre Deak
2015-03-19 16:50 ` Nick Hoath
2015-03-20 10:17 ` Imre Deak
2015-03-27 12:00 ` [PATCH v2 " Imre Deak
2015-04-08 9:35 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 14/49] drm/i915/bxt: add GEN8_SDEUNIT_CLOCK_GATE_DISABLE workaround Imre Deak
2015-03-17 10:35 ` Daniel Vetter
2015-03-17 13:06 ` Imre Deak
2015-03-20 9:08 ` Nick Hoath
2015-03-20 10:37 ` Imre Deak
2015-03-25 14:53 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 15/49] drm/i915/bxt: add GEN8_HDCUNIT_CLOCK_GATE_DISABLE_HDCREQ workaround Imre Deak
2015-04-08 13:04 ` Nick Hoath
2015-04-08 13:10 ` Imre Deak
2015-04-08 13:38 ` Nick Hoath
2015-04-08 13:45 ` Imre Deak
2015-04-08 14:13 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 16/49] drm/i915/bxt: add WaDisableMaskBasedCammingInRCC workaround Imre Deak
2015-03-20 9:05 ` Nick Hoath
2015-03-20 10:25 ` Imre Deak
2015-03-25 14:52 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 17/49] drm/i915/skl: " Imre Deak
2015-03-20 9:07 ` Nick Hoath
2015-03-20 10:33 ` Imre Deak
2015-04-08 13:40 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 18/49] drm/i915/bxt: add workaround to avoid PTE corruption Imre Deak
2015-03-17 10:36 ` Daniel Vetter
2015-03-17 13:30 ` Imre Deak
2015-04-08 13:11 ` Nick Hoath
2015-03-17 9:39 ` [PATCH 19/49] drm/i915/bxt: don't use unsupported port detection Imre Deak
2015-03-25 16:07 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 20/49] drm/i915/bxt: Add change to support gmbus pin pair for BXT Imre Deak
2015-03-25 16:45 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 21/49] drm/i915/bxt: WARN in case BXT unused gmbus ports are accessed Imre Deak
2015-03-25 16:49 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 22/49] drm/i915/bxt: Avoid registering unused gmbus ports as i2c adapter Imre Deak
2015-03-26 17:14 ` Jani Nikula
2015-03-26 22:24 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 23/49] drm/i915/bxt: Increase DDI buf idle timeout Imre Deak
2015-03-17 10:39 ` Daniel Vetter
2015-03-27 12:19 ` [PATCH v2 " Imre Deak
2015-04-08 9:20 ` Jani Nikula
2015-04-08 12:00 ` Daniel Vetter
2015-03-17 9:39 ` [PATCH 24/49] drm/i915/bxt: DDI Hotplug interrupt setup Imre Deak
2015-03-17 10:48 ` Daniel Vetter
2015-03-17 15:39 ` Imre Deak
2015-03-27 12:54 ` [PATCH v6 " Imre Deak
2015-04-08 10:32 ` Jani Nikula
2015-04-10 12:08 ` [PATCH v7 " Imre Deak
2015-04-13 13:41 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 25/49] drm/i915/bxt: Add DDI hpd handler Imre Deak
2015-03-17 10:52 ` Daniel Vetter
2015-03-17 16:03 ` Imre Deak
2015-03-27 15:22 ` [PATCH 25.1/49] drm/i915/bxt: support for HPD long/short status decoding Imre Deak
2015-04-08 10:58 ` Jani Nikula
2015-04-08 11:18 ` Imre Deak
2015-04-08 11:22 ` Jani Nikula
2015-04-08 10:55 ` Jani Nikula [this message]
2015-04-10 12:08 ` [PATCH v2 25/49] drm/i915/bxt: Add DDI hpd handler Imre Deak
2015-04-13 13:45 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 26/49] drm/i915/bxt: Add BXT support in gen8_irq functions Imre Deak
2015-04-08 11:06 ` Jani Nikula
2015-04-10 12:08 ` [PATCH v2 " Imre Deak
2015-04-13 13:51 ` Jani Nikula
2015-04-13 13:58 ` Imre Deak
2015-04-13 14:48 ` [PATCH v3 " Imre Deak
2015-04-14 7:23 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 27/49] drm/i915/bxt: Enable GMBUS IRQ Imre Deak
2015-04-08 11:11 ` Jani Nikula
2015-04-10 12:08 ` [PATCH v4 " Imre Deak
2015-04-13 13:52 ` Jani Nikula
2015-03-17 9:39 ` [PATCH 28/49] drm/i915/bxt: Define BXT power domains Imre Deak
2015-03-19 17:08 ` Ville Syrjälä
2015-03-17 9:39 ` [PATCH 29/49] drm/i915: Rename vlv_cdclk_freq to cdclk_freq Imre Deak
2015-03-17 10:54 ` Daniel Vetter
2015-03-17 13:20 ` Ville Syrjälä
2015-04-15 19:19 ` Ville Syrjälä
2015-03-17 9:39 ` [PATCH 30/49] drm/i915/bxt: add display initialize/uninitialize sequence Imre Deak
2015-03-19 19:55 ` Ville Syrjälä
2015-03-20 14:10 ` Ville Syrjälä
2015-03-20 17:15 ` Imre Deak
2015-04-02 16:32 ` Ville Syrjälä
2015-04-07 14:07 ` Imre Deak
2015-04-15 13:42 ` [PATCH v4 30/49] drm/i915/bxt: add display initialize/uninitialize sequence (CDCLK) Imre Deak
2015-04-15 14:14 ` Ville Syrjälä
2015-04-15 13:42 ` [PATCH 30.1/49] drm/i915/bxt: add display initialize/uninitialize sequence (PHY) Imre Deak
2015-04-15 14:31 ` Ville Syrjälä
2015-03-17 9:39 ` [PATCH 31/49] drm/i915/bxt: add description about the BXT PHYs Imre Deak
2015-03-19 17:30 ` Ville Syrjälä
2015-04-15 13:42 ` [PATCH v2 " Imre Deak
2015-04-15 13:54 ` Ville Syrjälä
2015-03-17 9:39 ` [PATCH 32/49] drm/i915/bxt: Implement enable/disable for Display C9 state Imre Deak
2015-04-12 10:32 ` sagar.a.kamble
2015-04-13 10:09 ` Imre Deak
2015-04-13 10:25 ` Sagar Arun Kamble
2015-04-16 7:19 ` Daniel Vetter
2015-03-17 9:39 ` [PATCH 33/49] drm/i915/bxt: Add DC9 Trigger sequence Imre Deak
2015-03-30 12:19 ` sagar.a.kamble
2015-04-15 14:13 ` [PATCH v4 " Imre Deak
2015-03-17 9:40 ` [PATCH 34/49] drm/i915/bxt: Restrict PORT_CLK_SEL programming below gen9 Imre Deak
2015-04-15 14:15 ` [PATCH v3 " Imre Deak
2015-04-15 18:55 ` Sagar Arun Kamble
2015-03-17 9:40 ` [PATCH 35/49] drm/i915/bxt: fix panel fitter setup in crtc disable/enable Imre Deak
2015-03-17 13:51 ` Daniel Vetter
2015-03-17 14:22 ` Imre Deak
2015-03-18 8:37 ` Daniel Vetter
2015-03-18 10:31 ` Imre Deak
2015-04-12 10:14 ` sagar.a.kamble
2015-04-12 10:19 ` sagar.a.kamble
2015-04-13 9:21 ` Daniel Vetter
2015-04-12 10:22 ` [PATCH 34/49] drm/i915/bxt: Restrict PORT_CLK_SEL programming below gen9 sagar.a.kamble
2015-04-13 13:21 ` Damien Lespiau
2015-04-13 13:30 ` Imre Deak
2015-04-15 14:18 ` [PATCH v2 35/49] drm/i915/bxt: fix panel fitter setup in crtc disable/enable Imre Deak
2015-03-17 9:40 ` [PATCH 36/49] drm/i915/bxt: Define bxt DDI PLLs and implement enable/disable sequence Imre Deak
2015-03-19 20:27 ` Jesse Barnes
2015-03-19 20:33 ` Imre Deak
2015-03-17 9:40 ` [PATCH 37/49] drm/i915: factor out vlv_PLL_is_optimal Imre Deak
2015-03-19 20:31 ` Jesse Barnes
2015-03-17 9:40 ` [PATCH 38/49] drm/i915: check for div-by-zero in vlv_PLL_is_optimal Imre Deak
2015-03-19 20:31 ` Jesse Barnes
2015-03-20 10:00 ` Daniel Vetter
2015-03-17 9:40 ` [PATCH 39/49] drm/i915/chv: use vlv_PLL_is_optimal in chv_find_best_dpll Imre Deak
2015-03-19 20:34 ` Jesse Barnes
2015-03-19 20:55 ` Imre Deak
2015-03-19 20:56 ` Jesse Barnes
2015-03-20 10:02 ` Daniel Vetter
2015-03-17 9:40 ` [PATCH 40/49] drm/i915/bxt: add bxt_find_best_dpll Imre Deak
2015-03-19 20:39 ` Jesse Barnes
2015-03-17 9:40 ` [PATCH 41/49] drm/i915/bxt: BXT clock divider calculation Imre Deak
2015-03-19 20:46 ` Jesse Barnes
2015-03-17 9:40 ` [PATCH 42/49] drm/i915/bxt: Assign PLL for pipe Imre Deak
2015-03-19 20:48 ` Jesse Barnes
2015-04-16 9:32 ` Daniel Vetter
2015-03-17 9:40 ` [PATCH 43/49] drm/i915/bxt: Determine PLL attached to pipe Imre Deak
2015-03-19 20:48 ` Jesse Barnes
2015-03-17 9:40 ` [PATCH 44/49] drm/i915/bxt: Determine programmed frequency Imre Deak
2015-03-19 20:51 ` Jesse Barnes
2015-03-17 9:40 ` [PATCH 45/49] drm/i915: suppress false PLL state warnings on non-GMCH platforms Imre Deak
2015-03-19 20:53 ` Jesse Barnes
2015-03-19 20:57 ` Imre Deak
2015-03-19 21:19 ` Jesse Barnes
2015-03-17 9:40 ` [PATCH 46/49] drm/i915: Iterate through the initialized DDIs to prepare their buffers Imre Deak
2015-03-23 10:51 ` Sivakumar Thulasimani
2015-03-25 15:04 ` Damien Lespiau
2015-04-24 12:47 ` Ander Conselvan De Oliveira
2015-04-24 15:22 ` Imre Deak
2015-03-17 9:40 ` [PATCH 47/49] drm/i915: Don't write the HDMI buffer translation entry when not needed Imre Deak
2015-03-23 10:57 ` Sivakumar Thulasimani
2015-03-17 9:40 ` [PATCH 48/49] drm/i915/bxt: VSwing programming sequence Imre Deak
2015-03-24 9:19 ` Sivakumar Thulasimani
2015-04-09 17:14 ` Imre Deak
2015-03-17 9:40 ` [PATCH 49/49] drm/i915/bxt: Update max level of vswing Imre Deak
2015-03-17 18:22 ` shuang.he
2015-03-24 10:26 ` Sivakumar Thulasimani
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=871tjukhxz.fsf@intel.com \
--to=jani.nikula@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox