All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v9 10/71] drm/i915/chv: Preliminary interrupt support for Cherryview
Date: Thu, 08 May 2014 21:24:43 +0300	[thread overview]
Message-ID: <871tw42kno.fsf@intel.com> (raw)
In-Reply-To: <1397065252-32176-1-git-send-email-ville.syrjala@linux.intel.com>

On Wed, 09 Apr 2014, ville.syrjala@linux.intel.com wrote:
> From: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> CHV has the Gen8 master interrupt register, as well as Gen8
> GT/PCU interrupt registers.
>
> The display block is based on VLV, with the main difference
> of adding pipe C.
>
> FIXME: Lot of this is copy pasted from either VLV or BDW. We should
> probably refactor a bit to share the code better.
>
> v2: Rewrite the order of operations to make more sense
>     Don't bail out if MASTER_CTL register doesn't show an interrupt,
>     as display interrupts aren't reported there.
>
> v3: Rebase on top of Egbert Eich's hpd irq handling rework by using
> the relevant port hotplug logic like for vlv.
>
> v4: Rebase on top of Ben's gt irq #define refactoring.
>
> v5: Squash in gen8_gt_irq_handler refactoring from Zhao Yakui
> <yakui.zhao@intel.com>
>
> v6: Adapt to upstream changes, dev_priv->irq_received is gone.
>
> v7: Enable 3 the commented-out 3 pipe support.
>
> v8: Rebase on top of Paulo's irq setup rework, use the renamed macros from
> upstream.
>
> v9: Grab irq_lock around i915_enable_pipestat()
>
> FIXME: There's probably some potential for more shared code between bdw and chv.
>

I did not spot anything out of the ordinary here (one irrelevant nitpick
inline) but frankly I don't have huge confidence in me catching all the
details either. With that disclaimer,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (v2)
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 225 +++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 224 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 7a4d3ae..475089e 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1705,6 +1705,95 @@ out:
>  	return ret;
>  }
>  
> +static irqreturn_t cherryview_irq_handler(int irq, void *arg)
> +{
> +	struct drm_device *dev = (struct drm_device *) arg;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	u32 master_ctl, iir;
> +	irqreturn_t ret = IRQ_NONE;
> +	unsigned int pipes = 0;
> +
> +	master_ctl = I915_READ(GEN8_MASTER_IRQ);
> +
> +	I915_WRITE(GEN8_MASTER_IRQ, 0);
> +
> +	ret = gen8_gt_irq_handler(dev, dev_priv, master_ctl);
> +
> +	iir = I915_READ(VLV_IIR);
> +
> +	if (iir & (I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT | I915_DISPLAY_PIPE_A_EVENT_INTERRUPT))
> +		pipes |= 1 << 0;
> +	if (iir & (I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT | I915_DISPLAY_PIPE_B_EVENT_INTERRUPT))
> +		pipes |= 1 << 1;
> +	if (iir & (I915_DISPLAY_PIPE_C_VBLANK_INTERRUPT | I915_DISPLAY_PIPE_C_EVENT_INTERRUPT))
> +		pipes |= 1 << 2;
> +
> +	if (pipes) {
> +		u32 pipe_stats[I915_MAX_PIPES] = {};
> +		unsigned long irqflags;
> +		int pipe;
> +
> +		spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> +		for_each_pipe(pipe) {
> +			unsigned int reg;
> +
> +			if (!(pipes & (1 << pipe)))
> +				continue;
> +
> +			reg = PIPESTAT(pipe);
> +			pipe_stats[pipe] = I915_READ(reg);
> +
> +			/*
> +			 * Clear the PIPE*STAT regs before the IIR
> +			 */
> +			if (pipe_stats[pipe] & 0x8000ffff) {
> +				if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
> +					DRM_DEBUG_DRIVER("pipe %c underrun\n",
> +							 pipe_name(pipe));
> +				I915_WRITE(reg, pipe_stats[pipe]);
> +			}
> +		}
> +		spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> +
> +		for_each_pipe(pipe) {
> +			if (pipe_stats[pipe] & PIPE_VBLANK_INTERRUPT_STATUS)
> +				drm_handle_vblank(dev, pipe);
> +
> +			if (pipe_stats[pipe] & PLANE_FLIP_DONE_INT_STATUS_VLV) {
> +				intel_prepare_page_flip(dev, pipe);
> +				intel_finish_page_flip(dev, pipe);
> +			}
> +		}
> +
> +		if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS)
> +			gmbus_irq_handler(dev);
> +
> +		ret = IRQ_HANDLED;
> +	}
> +
> +	/* Consume port.  Then clear IIR or we'll miss events */
> +	if (iir & I915_DISPLAY_PORT_INTERRUPT) {
> +		u32 hotplug_status = I915_READ(PORT_HOTPLUG_STAT);
> +
> +		I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
> +
> +		DRM_DEBUG_DRIVER("hotplug event received, stat 0x%08x\n",
> +				 hotplug_status);
> +		if (hotplug_status & HOTPLUG_INT_STATUS_I915)
> +			queue_work(dev_priv->wq,
> +				   &dev_priv->hotplug_work);
> +
> +		ret = IRQ_HANDLED;
> +	}
> +
> +	I915_WRITE(VLV_IIR, iir);
> +
> +	I915_WRITE(GEN8_MASTER_IRQ, DE_MASTER_IRQ_CONTROL);
> +	POSTING_READ(GEN8_MASTER_IRQ);
> +
> +	return ret;
> +}
> +
>  static void ibx_irq_handler(struct drm_device *dev, u32 pch_iir)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -2967,6 +3056,37 @@ static void gen8_irq_preinstall(struct drm_device *dev)
>  	gen8_irq_reset(dev);
>  }
>  
> +static void cherryview_irq_preinstall(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = (struct drm_i915_private *) dev->dev_private;

Unnecessary cast.

> +	int pipe;
> +
> +	I915_WRITE(GEN8_MASTER_IRQ, 0);
> +	POSTING_READ(GEN8_MASTER_IRQ);
> +
> +	GEN8_IRQ_RESET_NDX(GT, 0);
> +	GEN8_IRQ_RESET_NDX(GT, 1);
> +	GEN8_IRQ_RESET_NDX(GT, 2);
> +	GEN8_IRQ_RESET_NDX(GT, 3);
> +
> +	GEN5_IRQ_RESET(GEN8_PCU_);
> +
> +	POSTING_READ(GEN8_PCU_IIR);
> +
> +	I915_WRITE(DPINVGTT, DPINVGTT_STATUS_MASK_CHV);
> +
> +	I915_WRITE(PORT_HOTPLUG_EN, 0);
> +	I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
> +
> +	for_each_pipe(pipe)
> +		I915_WRITE(PIPESTAT(pipe), 0xffff);
> +
> +	I915_WRITE(VLV_IMR, 0xffffffff);
> +	I915_WRITE(VLV_IER, 0x0);
> +	I915_WRITE(VLV_IIR, 0xffffffff);
> +	POSTING_READ(VLV_IIR);
> +}
> +
>  static void ibx_hpd_irq_setup(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -3284,6 +3404,50 @@ static int gen8_irq_postinstall(struct drm_device *dev)
>  	return 0;
>  }
>  
> +static int cherryview_irq_postinstall(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	u32 enable_mask = I915_DISPLAY_PORT_INTERRUPT |
> +		I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
> +		I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT |
> +		I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
> +		I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT |
> +		I915_DISPLAY_PIPE_C_EVENT_INTERRUPT |
> +		I915_DISPLAY_PIPE_C_VBLANK_INTERRUPT;
> +	u32 pipestat_enable = PLANE_FLIP_DONE_INT_EN_VLV;
> +	unsigned long irqflags;
> +	int pipe;
> +
> +	/*
> +	 * Leave vblank interrupts masked initially.  enable/disable will
> +	 * toggle them based on usage.
> +	 */
> +	dev_priv->irq_mask = ~enable_mask |
> +		I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT |
> +		I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT |
> +		I915_DISPLAY_PIPE_C_VBLANK_INTERRUPT;
> +
> +	for_each_pipe(pipe)
> +		I915_WRITE(PIPESTAT(pipe), 0xffff);
> +
> +	spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
> +	i915_enable_pipestat(dev_priv, 0, PIPE_GMBUS_EVENT_ENABLE);
> +	for_each_pipe(pipe)
> +		i915_enable_pipestat(dev_priv, pipe, pipestat_enable);
> +	spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
> +
> +	I915_WRITE(VLV_IIR, 0xffffffff);
> +	I915_WRITE(VLV_IMR, dev_priv->irq_mask);
> +	I915_WRITE(VLV_IER, enable_mask);
> +
> +	gen8_gt_irq_postinstall(dev_priv);
> +
> +	I915_WRITE(GEN8_MASTER_IRQ, MASTER_INTERRUPT_ENABLE);
> +	POSTING_READ(GEN8_MASTER_IRQ);
> +
> +	return 0;
> +}
> +
>  static void gen8_irq_uninstall(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -3327,6 +3491,57 @@ static void valleyview_irq_uninstall(struct drm_device *dev)
>  	POSTING_READ(VLV_IER);
>  }
>  
> +static void cherryview_irq_uninstall(struct drm_device *dev)
> +{
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	int pipe;
> +
> +	if (!dev_priv)
> +		return;
> +
> +	I915_WRITE(GEN8_MASTER_IRQ, 0);
> +	POSTING_READ(GEN8_MASTER_IRQ);
> +
> +#define GEN8_IRQ_FINI_NDX(type, which)				\
> +do {								\
> +	I915_WRITE(GEN8_##type##_IMR(which), 0xffffffff);	\
> +	I915_WRITE(GEN8_##type##_IER(which), 0);		\
> +	I915_WRITE(GEN8_##type##_IIR(which), 0xffffffff);	\
> +	POSTING_READ(GEN8_##type##_IIR(which));			\
> +	I915_WRITE(GEN8_##type##_IIR(which), 0xffffffff);	\
> +} while (0)
> +
> +#define GEN8_IRQ_FINI(type)				\
> +do {							\
> +	I915_WRITE(GEN8_##type##_IMR, 0xffffffff);	\
> +	I915_WRITE(GEN8_##type##_IER, 0);		\
> +	I915_WRITE(GEN8_##type##_IIR, 0xffffffff);	\
> +	POSTING_READ(GEN8_##type##_IIR);		\
> +	I915_WRITE(GEN8_##type##_IIR, 0xffffffff);	\
> +} while (0)
> +
> +	GEN8_IRQ_FINI_NDX(GT, 0);
> +	GEN8_IRQ_FINI_NDX(GT, 1);
> +	GEN8_IRQ_FINI_NDX(GT, 2);
> +	GEN8_IRQ_FINI_NDX(GT, 3);
> +
> +	GEN8_IRQ_FINI(PCU);
> +
> +#undef GEN8_IRQ_FINI
> +#undef GEN8_IRQ_FINI_NDX
> +
> +	I915_WRITE(PORT_HOTPLUG_EN, 0);
> +	I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
> +
> +	for_each_pipe(pipe)
> +		I915_WRITE(PIPESTAT(pipe), 0xffff);
> +
> +	I915_WRITE(VLV_IMR, 0xffffffff);
> +	I915_WRITE(VLV_IER, 0x0);
> +	I915_WRITE(VLV_IIR, 0xffffffff);
> +	POSTING_READ(VLV_IIR);
> +}
> +
>  static void ironlake_irq_uninstall(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
> @@ -4032,7 +4247,15 @@ void intel_irq_init(struct drm_device *dev)
>  		dev->driver->get_scanout_position = i915_get_crtc_scanoutpos;
>  	}
>  
> -	if (IS_VALLEYVIEW(dev)) {
> +	if (IS_CHERRYVIEW(dev)) {
> +		dev->driver->irq_handler = cherryview_irq_handler;
> +		dev->driver->irq_preinstall = cherryview_irq_preinstall;
> +		dev->driver->irq_postinstall = cherryview_irq_postinstall;
> +		dev->driver->irq_uninstall = cherryview_irq_uninstall;
> +		dev->driver->enable_vblank = valleyview_enable_vblank;
> +		dev->driver->disable_vblank = valleyview_disable_vblank;
> +		dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
> +	} else if (IS_VALLEYVIEW(dev)) {
>  		dev->driver->irq_handler = valleyview_irq_handler;
>  		dev->driver->irq_preinstall = valleyview_irq_preinstall;
>  		dev->driver->irq_postinstall = valleyview_irq_postinstall;
> -- 
> 1.8.3.2
>
> _______________________________________________
> 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

  reply	other threads:[~2014-05-08 18:24 UTC|newest]

Thread overview: 203+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-09 10:27 [PATCH 00/71] drm/i915/chv: Add Cherryview support ville.syrjala
2014-04-09 10:27 ` [PATCH 01/71] drm/i915/chv: IS_BROADWELL() should not be true for Cherryview ville.syrjala
2014-05-01 13:32   ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 02/71] drm/i915/chv: Add IS_CHERRYVIEW() macro ville.syrjala
2014-04-09 15:36   ` Daniel Vetter
2014-05-01 13:33   ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 03/71] drm/i915/chv: PPAT setup for Cherryview ville.syrjala
2014-05-01 13:34   ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 04/71] drm/i915/chv: Flush caches when programming page tables ville.syrjala
2014-05-06 19:16   ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 05/71] drm/i915/chv: Enable aliasing PPGTT for CHV ville.syrjala
2014-05-01 13:46   ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 06/71] drm/i915/chv: Add PIPESTAT register bits for Cherryview ville.syrjala
2014-05-01 13:52   ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 07/71] drm/i915/chv: Add DPFLIPSTAT " ville.syrjala
2014-05-01 13:55   ` Barbalho, Rafael
2014-05-02  8:29     ` Ville Syrjälä
2014-05-05 14:10       ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 08/71] drm/i915/chv: Add display interrupt registers " ville.syrjala
2014-05-01 14:07   ` Barbalho, Rafael
2014-04-09 10:28 ` [PATCH 09/71] drm/i915/chv: Add DPINVGTT registers defines " ville.syrjala
2014-05-01 14:07   ` Barbalho, Rafael
2014-05-02  8:35     ` [PATCH v2 " ville.syrjala
2014-05-06 19:20       ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 10/71] drm/i915/chv: Preliminary interrupt support " ville.syrjala
2014-04-09 15:45   ` Daniel Vetter
2014-04-09 17:40     ` [PATCH v9 " ville.syrjala
2014-05-08 18:24       ` Jani Nikula [this message]
2014-04-09 10:28 ` [PATCH 11/71] drm/i915/chv: Add Cherryview interrupt registers into debugfs ville.syrjala
2014-05-08 13:59   ` Jani Nikula
2014-04-09 10:28 ` [PATCH 12/71] drm/i915/chv: Initial clock gating support for Cherryview ville.syrjala
2014-05-08 14:33   ` Jani Nikula
2014-04-09 10:28 ` [PATCH 13/71] drm/i915/chv: Add Cherryview PCI IDs ville.syrjala
2014-04-09 13:33   ` Chris Wilson
2014-04-09 15:19     ` [PATCH v5 " ville.syrjala
2014-05-08 14:31       ` Jani Nikula
2014-04-09 10:28 ` [PATCH 14/71] drm/i915/chv: Add early quirk for stolen ville.syrjala
2014-05-08 14:32   ` Jani Nikula
2014-05-08 14:43     ` Ville Syrjälä
2014-05-08 15:10       ` Jani Nikula
2014-05-12 17:22         ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 15/71] drm/i915/chv: Add DDL register defines for Cherryview ville.syrjala
2014-05-08 14:40   ` Jani Nikula
2014-04-09 10:28 ` [PATCH 16/71] drm/i915/chv: Add DPIO offset for Cherryview. v3 ville.syrjala
2014-05-12 11:27   ` Imre Deak
2014-04-09 10:28 ` [PATCH 17/71] drm/i915/chv: Update Cherryview DPLL changes to support Port D. v2 ville.syrjala
2014-05-12 11:29   ` Imre Deak
2014-04-09 10:28 ` [PATCH 18/71] drm/i915/chv: Add vlv_pipe_to_channel ville.syrjala
2014-04-28 14:33   ` Imre Deak
2014-05-12 11:26   ` Imre Deak
2014-04-09 10:28 ` [PATCH 19/71] drm/i915/chv: Trigger phy common lane reset ville.syrjala
2014-04-28 14:54   ` Imre Deak
2014-05-12 17:27     ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 20/71] drm/i915/chv: find the best divisor for the target clock v4 ville.syrjala
2014-04-29 14:56   ` Imre Deak
2014-04-09 10:28 ` [PATCH 21/71] drm/i915/chv: Add update and enable pll for Cherryview ville.syrjala
2014-04-29 20:20   ` Imre Deak
2014-05-02 11:27     ` [PATCH v6 " ville.syrjala
2014-04-09 10:28 ` [PATCH 22/71] drm/i915/chv: Add phy supports " ville.syrjala
2014-04-30 12:13   ` Imre Deak
2014-05-12 17:31     ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 23/71] drm/i915/chv: Pipe select change for DP and HDMI ville.syrjala
2014-04-30 12:49   ` Imre Deak
2014-04-09 10:28 ` [PATCH 24/71] drm/i915/chv: Add DPLL state readout support ville.syrjala
2014-04-30 13:11   ` Imre Deak
2014-05-12 17:39     ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 25/71] drm/i915/chv: CHV doesn't have CRT output ville.syrjala
2014-04-09 15:55   ` Daniel Vetter
2014-04-10 17:56     ` Jani Nikula
2014-05-12 17:34       ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 26/71] drm/i915: Enable PM Interrupts for CHV/BDW Platform ville.syrjala
2014-04-09 15:56   ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 27/71] drm/i915/chv: Enable Render Standby (RC6) for Cheeryview ville.syrjala
2014-04-09 15:45   ` Imre Deak
2014-04-10 16:03   ` Chris Wilson
2014-04-10 16:51   ` Jani Nikula
2014-04-10 17:06     ` Ville Syrjälä
2014-04-13 15:31       ` Deepak S
2014-04-09 10:28 ` [PATCH 28/71] drm/i915/chv: Added CHV specific register read and write ville.syrjala
2014-04-09 13:16   ` Chris Wilson
2014-04-09 13:32     ` Ville Syrjälä
2014-04-18  0:28   ` Ben Widawsky
2014-04-18  8:12     ` Deepak S
2014-04-09 10:28 ` [PATCH 29/71] drm/i915/chv: Enable RPS (Turbo) for Cheeryview ville.syrjala
2014-04-10 17:01   ` Jani Nikula
2014-04-09 10:28 ` [PATCH 30/71] drm/i915/chv: Enable PM interrupts when we in CHV turbo initialize sequence ville.syrjala
2014-04-09 13:06   ` Chris Wilson
2014-04-09 13:15     ` Ville Syrjälä
2014-04-09 19:17     ` Deepak S
2014-04-09 22:33       ` Ben Widawsky
2014-04-10  7:00         ` Daniel Vetter
2014-04-13 15:33         ` Deepak S
2014-04-09 10:28 ` [PATCH 31/71] drm/i915/chv: Added CHV specific DDR fetch into init_clock_gating ville.syrjala
2014-04-09 10:28 ` [PATCH 32/71] drm/i915/bdw: Add BDW PM Interrupts support and BDW rps disable ville.syrjala
2014-04-09 10:28 ` [PATCH 33/71] drm/i915/chv: Fix for verifying PCBR address field ville.syrjala
2014-04-09 15:57   ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 34/71] drm/i915/chv: Implement stolen memory size detection ville.syrjala
2014-05-08 18:19   ` Jani Nikula
2014-05-08 19:19     ` [PATCH v5 34.1/71] " ville.syrjala
2014-05-08 19:19       ` [PATCH v5 34.2/71] x86/gpu: Implement stolen memory size early quirk for CHV ville.syrjala
2014-05-08 19:19       ` [PATCH 34.3/71] x86/gpu: Sprinkle const, __init and __initconst to stolen memory quirks ville.syrjala
2014-05-12 17:42         ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 35/71] drm/i915/chv: Implement WaDisablePartialInstShootdown:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 36/71] drm/i915/chv: Implement WaDisableThreadStallDopClockGating:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 37/71] drm/i915/chv: Implement WaVSRefCountFullforceMissDisable:chv and WaDSRefCountFullforceMissDisable:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 38/71] drm/i915/chv: Implement WaDisableSemaphoreAndSyncFlipWait:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 39/71] drm/i915/chv: Implement WaDisableCSUnitClockGating:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 40/71] drm/i915/chv: Implement WaDisableSDEUnitClockGating:chv ville.syrjala
2014-04-09 10:28 ` [PATCH 41/71] drm/i915/chv: Add some workaround notes ville.syrjala
2014-04-25 20:43   ` Paulo Zanoni
2014-04-28 11:25     ` Ville Syrjälä
2014-04-28 11:31       ` [PATCH v2 " ville.syrjala
2014-04-28 22:05         ` Paulo Zanoni
2014-04-09 10:28 ` [PATCH 42/71] drm/i915/chv: Implement WaDisableSamplerPowerBypass for CHV ville.syrjala
2014-04-25 20:55   ` Paulo Zanoni
2014-04-28  8:23     ` Ville Syrjälä
2014-04-28 22:19       ` Paulo Zanoni
2014-05-20 13:21         ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 43/71] drm/i915/chv: Add a bunch of pre production workarounds ville.syrjala
2014-05-20 13:22   ` Damien Lespiau
2014-05-20 13:41     ` Ville Syrjälä
2014-05-20 13:59       ` Damien Lespiau
2014-04-09 10:28 ` [PATCH 44/71] drm/i915/chv: Fix for decrementing fw count in chv read/write ville.syrjala
2014-04-09 15:59   ` Daniel Vetter
2014-04-09 17:49     ` Ville Syrjälä
2014-04-09 10:28 ` [PATCH 45/71] drm/i915/chv: Streamline CHV forcewake stuff ville.syrjala
2014-04-09 16:02   ` Daniel Vetter
2014-04-09 17:47     ` Ville Syrjälä
2014-04-09 18:38       ` Deepak S
2014-04-09 10:28 ` [PATCH 46/71] drm/i915/chv: CHV doesn't need WaRsForcewakeWaitTC0 ville.syrjala
2014-04-09 10:28 ` [PATCH 47/71] drm/i915/chv: Skip gen6_gt_check_fifodbg() on CHV ville.syrjala
2014-04-09 10:28 ` [PATCH 48/71] drm/i915/chv: Add plane C support ville.syrjala
2014-04-09 16:01   ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 49/71] drm/i915/chv: Add CHV display support ville.syrjala
2014-04-10 16:52   ` Jani Nikula
2014-04-28 11:00     ` [PATCH v2 " ville.syrjala
2014-05-20 13:22       ` Daniel Vetter
2014-04-15 15:56   ` [PATCH " Imre Deak
2014-04-09 10:28 ` [PATCH 50/71] drm/i915/chv: Clarify VLV/CHV PIPESTAT bits a bit more ville.syrjala
2014-04-09 10:28 ` [PATCH 51/71] drm/i915/chv: Use valleyview_pipestat_irq_handler() for CHV ville.syrjala
2014-05-20 13:28   ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 52/71] drm/i915/chv: Make CHV irq handler loop until all interrupts are consumed ville.syrjala
2014-04-09 16:05   ` Daniel Vetter
2014-04-09 16:51     ` Ville Syrjälä
2014-05-20 13:30   ` Daniel Vetter
2014-04-09 10:28 ` [PATCH 53/71] drm/i915/chv: Configure crtc_mask correctly for CHV ville.syrjala
2014-04-09 16:06   ` Daniel Vetter
2014-04-10 16:54   ` Jani Nikula
2014-04-28 11:07     ` [PATCH v2 " ville.syrjala
2014-04-09 10:28 ` [PATCH 54/71] drm/i915/chv: Fix gmbus for port D ville.syrjala
2014-04-09 10:28 ` [PATCH 55/71] drm/i915/chv: Add cursor pipe offsets ville.syrjala
2014-04-09 10:28 ` [PATCH 56/71] drm/i915/chv: Bump num_pipes to 3 ville.syrjala
2014-04-09 10:28 ` [PATCH 57/71] drm/i915/chv: Fix PORT_TO_PIPE for CHV ville.syrjala
2014-04-09 10:28 ` [PATCH 58/71] drm/i915/chv: Register port D encoders and connectors ville.syrjala
2014-04-25 10:09   ` Antti Koskipää
2014-04-09 10:28 ` [PATCH 59/71] drm/i915/chv: Fix CHV PLL state tracking ville.syrjala
2014-04-25 12:01   ` Mika Kuoppala
2014-04-09 10:28 ` [PATCH 60/71] drm/i915/chv: Move data lane deassert to encoder pre_enable ville.syrjala
2014-04-09 10:28 ` [PATCH 61/71] drm/i915/chv: Turn off dclkp after the PLL has been disabled ville.syrjala
2014-04-09 10:29 ` [PATCH 62/71] drm/i915/chv: Reset data lanes in encoder .post_disable() hook ville.syrjala
2014-04-09 10:29 ` [PATCH 63/71] drm/i915/chv: Set soft reset override bit for data lane resets ville.syrjala
2014-04-28 11:15   ` [PATCH v2 " ville.syrjala
2014-04-09 10:29 ` [PATCH 64/71] drm/i915/chv: Don't use PCS group access reads ville.syrjala
2014-04-09 16:18   ` Daniel Vetter
2014-04-09 16:56     ` Ville Syrjälä
2014-05-20 13:50       ` Daniel Vetter
2014-05-20 14:11         ` Ville Syrjälä
2014-05-20 14:17           ` Daniel Vetter
2014-04-25 15:15   ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 65/71] drm/i915/chv: Don't do group access reads from TX lanes either ville.syrjala
2014-04-09 10:29 ` [PATCH 66/71] drm/i915/chv: Use RMW to toggle swing calc init ville.syrjala
2014-04-09 16:20   ` Daniel Vetter
2014-04-28 14:47   ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 67/71] drm/i915/chv: Try to program the PHY used clock channel overrides ville.syrjala
2014-05-27 12:46   ` Mika Kuoppala
2014-05-27 13:08     ` Mika Kuoppala
2014-05-27 13:41   ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 68/71] drm/i915/chv: Force clock buffer enables ville.syrjala
2014-05-27 13:30   ` [PATCH v2 " ville.syrjala
2014-05-27 13:41     ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 69/71] drm/i915/chv: Force PHY clock buffers off after PLL disable ville.syrjala
2014-05-27 13:32   ` [PATCH v2 " ville.syrjala
2014-05-27 13:42     ` Mika Kuoppala
2014-04-09 10:29 ` [PATCH 70/71] drm/i915: Don't use pipe_offset stuff for DPLL registers ville.syrjala
2014-04-09 19:18   ` Damien Lespiau
2014-05-27 17:02     ` Daniel Vetter
2014-04-09 10:29 ` [PATCH 71/71] drm/i915/chv: Handle video DIP registers on CHV ville.syrjala
2014-04-09 18:41   ` Damien Lespiau
2014-04-09 13:25 ` [PATCH 00/71] drm/i915/chv: Add Cherryview support Ville Syrjälä
2014-04-09 14:30   ` S, Deepak
2014-04-09 15:05     ` Ville Syrjälä
2014-04-09 16:27       ` S, Deepak
2014-04-09 16:53       ` Daniel Vetter
2014-04-09 19:12         ` S, Deepak
2014-04-09 20:00           ` Daniel Vetter
2014-04-10  4:01             ` S, Deepak
2014-04-10 12:59               ` Ville Syrjälä
2014-04-10 13:41                 ` Jani Nikula
2014-04-10 14:04                   ` Ville Syrjälä
2014-04-15 15:49                     ` S, Deepak
2014-04-15 16:16                       ` Ville Syrjälä
2014-04-15 17:10                         ` S, Deepak
2014-04-10 11:08   ` Ville Syrjälä

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=871tw42kno.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.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 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.