public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Damien Lespiau <damien.lespiau@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 38/89] drm/i915/skl: Implement drm_plane vfuncs
Date: Thu, 4 Sep 2014 15:21:16 +0200	[thread overview]
Message-ID: <20140904132116.GQ15520@phenom.ffwll.local> (raw)
In-Reply-To: <1409830075-11139-39-git-send-email-damien.lespiau@intel.com>

On Thu, Sep 04, 2014 at 12:27:04PM +0100, Damien Lespiau wrote:
> SKL Uses the same hardware for all planes now, so called "universal"
> planes. Ie both the primary planes and sprite planes share the same
> logic. This patch implements the drm_plane vfuncs for "sprites" ie
> planes that aren't the primary plane.
> 
> v2: Couple of fixes:
>   - Actually enabled the planes and fix the plane number
> 
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>

This needs to be de-duped I think ... especially since it will conflict
quite badly with Padovan's ongoing work to introduce a struct
intel_plane_config.

Not sure yet how we can shuffle the merge here, I guess it'll be a case of
who's first wins ;-)
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_reg.h     |  31 +++++-
>  drivers/gpu/drm/i915/intel_sprite.c | 206 +++++++++++++++++++++++++++++++++++-
>  2 files changed, 235 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index c293dab..0159f2d 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -4513,7 +4513,9 @@ enum punit_power_well {
>  #define   PLANE_CTL_FORMAT_INDEXED		( 12 << 24)
>  #define   PLANE_CTL_FORMAT_RGB_565		( 14 << 24)
>  #define   PLANE_CTL_PIPE_CSC_ENABLE		(1 << 23)
> -#define   PLANE_CTL_KEY_ENABLE			(1 << 22)
> +#define   PLANE_CTL_KEY_ENABLE_MASK		(0x3 << 21)
> +#define   PLANE_CTL_KEY_ENABLE_SOURCE		(  1 << 21)
> +#define   PLANE_CTL_KEY_ENABLE_DESTINATION	(  2 << 21)
>  #define   PLANE_CTL_ORDER_BGRX			(0 << 20)
>  #define   PLANE_CTL_ORDER_RGBX			(1 << 20)
>  #define   PLANE_CTL_YUV422_ORDER_MASK		(0x3 << 16)
> @@ -4548,6 +4550,12 @@ enum punit_power_well {
>  #define _PLANE_OFFSET_1_A			0x701a4
>  #define _PLANE_OFFSET_2_A			0x702a4
>  #define _PLANE_OFFSET_3_A			0x703a4
> +#define _PLANE_KEYVAL_1_A			0x70194
> +#define _PLANE_KEYVAL_2_A			0x70294
> +#define _PLANE_KEYMSK_1_A			0x70198
> +#define _PLANE_KEYMSK_2_A			0x70298
> +#define _PLANE_KEYMAX_1_A			0x701a0
> +#define _PLANE_KEYMAX_2_A			0x702a0
>  
>  #define _PLANE_CTL_1_B				0x71180
>  #define _PLANE_CTL_2_B				0x71280
> @@ -4604,6 +4612,27 @@ enum punit_power_well {
>  #define PLANE_OFFSET(pipe, plane)	\
>  	_PLANE(plane, _PLANE_OFFSET_1(pipe), _PLANE_OFFSET_2(pipe))
>  
> +#define _PLANE_KEYVAL_1_B			0x71194
> +#define _PLANE_KEYVAL_2_B			0x71294
> +#define _PLANE_KEYVAL_1(pipe) _PIPE(pipe, _PLANE_KEYVAL_1_A, _PLANE_KEYVAL_1_B)
> +#define _PLANE_KEYVAL_2(pipe) _PIPE(pipe, _PLANE_KEYVAL_2_A, _PLANE_KEYVAL_2_B)
> +#define PLANE_KEYVAL(pipe, plane)	\
> +	_PLANE(plane, _PLANE_KEYVAL_1(pipe), _PLANE_KEYVAL_2(pipe))
> +
> +#define _PLANE_KEYMSK_1_B			0x71198
> +#define _PLANE_KEYMSK_2_B			0x71298
> +#define _PLANE_KEYMSK_1(pipe) _PIPE(pipe, _PLANE_KEYMSK_1_A, _PLANE_KEYMSK_1_B)
> +#define _PLANE_KEYMSK_2(pipe) _PIPE(pipe, _PLANE_KEYMSK_2_A, _PLANE_KEYMSK_2_B)
> +#define PLANE_KEYMSK(pipe, plane)	\
> +	_PLANE(plane, _PLANE_KEYMSK_1(pipe), _PLANE_KEYMSK_2(pipe))
> +
> +#define _PLANE_KEYMAX_1_B			0x711a0
> +#define _PLANE_KEYMAX_2_B			0x712a0
> +#define _PLANE_KEYMAX_1(pipe) _PIPE(pipe, _PLANE_KEYMAX_1_A, _PLANE_KEYMAX_1_B)
> +#define _PLANE_KEYMAX_2(pipe) _PIPE(pipe, _PLANE_KEYMAX_2_A, _PLANE_KEYMAX_2_B)
> +#define PLANE_KEYMAX(pipe, plane)	\
> +	_PLANE(plane, _PLANE_KEYMAX_1(pipe), _PLANE_KEYMAX_2(pipe))
> +
>  /* VBIOS regs */
>  #define VGACNTRL		0x71400
>  # define VGA_DISP_DISABLE			(1 << 31)
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index 07a74ef..57e7190 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -139,6 +139,184 @@ static void intel_update_primary_plane(struct intel_crtc *crtc)
>  }
>  
>  static void
> +skl_update_plane(struct drm_plane *drm_plane, struct drm_crtc *crtc,
> +		 struct drm_framebuffer *fb,
> +		 struct drm_i915_gem_object *obj, int crtc_x, int crtc_y,
> +		 unsigned int crtc_w, unsigned int crtc_h,
> +		 uint32_t x, uint32_t y,
> +		 uint32_t src_w, uint32_t src_h)
> +{
> +	struct drm_device *dev = drm_plane->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_plane *intel_plane = to_intel_plane(drm_plane);
> +	const int pipe = intel_plane->pipe;
> +	const int plane = intel_plane->plane + 1;
> +	u32 plane_ctl, stride;
> +	int pixel_size = drm_format_plane_cpp(fb->pixel_format, 0);
> +
> +	plane_ctl = I915_READ(PLANE_CTL(pipe, plane));
> +
> +	/* Mask out pixel format bits in case we change it */
> +	plane_ctl &= ~PLANE_CTL_FORMAT_MASK;
> +	plane_ctl &= ~PLANE_CTL_ORDER_RGBX;
> +	plane_ctl &= ~PLANE_CTL_YUV422_ORDER_MASK;
> +	plane_ctl &= ~PLANE_CTL_TILED_MASK;
> +	plane_ctl &= ~PLANE_CTL_ALPHA_MASK;
> +
> +	/* Trickle feed has to be enabled */
> +	plane_ctl &= ~PLANE_CTL_TRICKLE_FEED_DISABLE;
> +
> +	switch (fb->pixel_format) {
> +	case DRM_FORMAT_RGB565:
> +		plane_ctl |= PLANE_CTL_FORMAT_RGB_565;
> +		break;
> +	case DRM_FORMAT_XBGR8888:
> +		plane_ctl |= PLANE_CTL_FORMAT_XRGB_8888 | PLANE_CTL_ORDER_RGBX;
> +		break;
> +	case DRM_FORMAT_XRGB8888:
> +		plane_ctl |= PLANE_CTL_FORMAT_XRGB_8888;
> +		break;
> +	/*
> +	 * XXX: For ARBG/ABGR formats we default to expecting scanout buffers
> +	 * to be already pre-multiplied. We need to add a knob (or a different
> +	 * DRM_FORMAT) for user-space to configure that.
> +	 */
> +	case DRM_FORMAT_ABGR8888:
> +		plane_ctl |= PLANE_CTL_FORMAT_XRGB_8888 |
> +			     PLANE_CTL_ORDER_RGBX |
> +			     PLANE_CTL_ALPHA_SW_PREMULTIPLY;
> +		break;
> +	case DRM_FORMAT_ARGB8888:
> +		plane_ctl |= PLANE_CTL_FORMAT_XRGB_8888 |
> +			     PLANE_CTL_ALPHA_SW_PREMULTIPLY;
> +		break;
> +	case DRM_FORMAT_YUYV:
> +		plane_ctl |= PLANE_CTL_FORMAT_YUV422 | PLANE_CTL_YUV422_YUYV;
> +		break;
> +	case DRM_FORMAT_YVYU:
> +		plane_ctl |= PLANE_CTL_FORMAT_YUV422 | PLANE_CTL_YUV422_YVYU;
> +		break;
> +	case DRM_FORMAT_UYVY:
> +		plane_ctl |= PLANE_CTL_FORMAT_YUV422 | PLANE_CTL_YUV422_UYVY;
> +		break;
> +	case DRM_FORMAT_VYUY:
> +		plane_ctl |= PLANE_CTL_FORMAT_YUV422 | PLANE_CTL_YUV422_VYUY;
> +		break;
> +	default:
> +		BUG();
> +	}
> +
> +	switch (obj->tiling_mode) {
> +	case I915_TILING_NONE:
> +		stride = fb->pitches[0] >> 6;
> +		break;
> +	case I915_TILING_X:
> +		plane_ctl |= PLANE_CTL_TILED_X;
> +		stride = fb->pitches[0] >> 9;
> +		break;
> +	default:
> +		BUG();
> +	}
> +
> +	plane_ctl |= PLANE_CTL_ENABLE;
> +	plane_ctl |= PLANE_CTL_PIPE_CSC_ENABLE;
> +
> +	intel_update_sprite_watermarks(drm_plane, crtc, src_w, src_h,
> +				       pixel_size, true,
> +				       src_w != crtc_w || src_h != crtc_h);
> +
> +	/* Sizes are 0 based */
> +	src_w--;
> +	src_h--;
> +	crtc_w--;
> +	crtc_h--;
> +
> +	I915_WRITE(PLANE_OFFSET(pipe, plane), (y << 16) | x);
> +	I915_WRITE(PLANE_STRIDE(pipe, plane), stride);
> +	I915_WRITE(PLANE_POS(pipe, plane), (crtc_y << 16) | crtc_x);
> +	I915_WRITE(PLANE_SIZE(pipe, plane), (crtc_h << 16) | crtc_w);
> +	I915_WRITE(PLANE_CTL(pipe, plane), plane_ctl);
> +	I915_WRITE(PLANE_SURF(pipe, plane), i915_gem_obj_ggtt_offset(obj));
> +	POSTING_READ(PLANE_SURF(pipe, plane));
> +}
> +
> +static void
> +skl_disable_plane(struct drm_plane *drm_plane, struct drm_crtc *crtc)
> +{
> +	struct drm_device *dev = drm_plane->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_plane *intel_plane = to_intel_plane(drm_plane);
> +	const int pipe = intel_plane->pipe;
> +	const int plane = intel_plane->plane + 1;
> +
> +	I915_WRITE(PLANE_CTL(pipe, plane),
> +		   I915_READ(PLANE_CTL(pipe, plane)) & ~PLANE_CTL_ENABLE);
> +
> +	/* Activate double buffered register update */
> +	I915_WRITE(PLANE_CTL(pipe, plane), 0);
> +	POSTING_READ(PLANE_CTL(pipe, plane));
> +
> +	intel_update_sprite_watermarks(drm_plane, crtc, 0, 0, 0, false, false);
> +}
> +
> +static int
> +skl_update_colorkey(struct drm_plane *drm_plane,
> +		    struct drm_intel_sprite_colorkey *key)
> +{
> +	struct drm_device *dev = drm_plane->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_plane *intel_plane = to_intel_plane(drm_plane);
> +	const int pipe = intel_plane->pipe;
> +	const int plane = intel_plane->plane;
> +	u32 plane_ctl;
> +
> +	I915_WRITE(PLANE_KEYVAL(pipe, plane), key->min_value);
> +	I915_WRITE(PLANE_KEYMAX(pipe, plane), key->max_value);
> +	I915_WRITE(PLANE_KEYMSK(pipe, plane), key->channel_mask);
> +
> +	plane_ctl = I915_READ(PLANE_CTL(pipe, plane));
> +	plane_ctl &= ~PLANE_CTL_KEY_ENABLE_MASK;
> +	if (key->flags & I915_SET_COLORKEY_DESTINATION)
> +		plane_ctl |= PLANE_CTL_KEY_ENABLE_DESTINATION;
> +	else if (key->flags & I915_SET_COLORKEY_SOURCE)
> +		plane_ctl |= PLANE_CTL_KEY_ENABLE_SOURCE;
> +	I915_WRITE(PLANE_CTL(pipe, plane), plane_ctl);
> +
> +	POSTING_READ(PLANE_CTL(pipe, plane));
> +
> +	return 0;
> +}
> +
> +static void
> +skl_get_colorkey(struct drm_plane *drm_plane,
> +		 struct drm_intel_sprite_colorkey *key)
> +{
> +	struct drm_device *dev = drm_plane->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_plane *intel_plane = to_intel_plane(drm_plane);
> +	const int pipe = intel_plane->pipe;
> +	const int plane = intel_plane->plane;
> +	u32 plane_ctl;
> +
> +	key->min_value = I915_READ(PLANE_KEYVAL(pipe, plane));
> +	key->max_value = I915_READ(PLANE_KEYMAX(pipe, plane));
> +	key->channel_mask = I915_READ(PLANE_KEYMSK(pipe, plane));
> +
> +	plane_ctl = I915_READ(PLANE_CTL(pipe, plane));
> +
> +	switch (plane_ctl & PLANE_CTL_KEY_ENABLE_MASK) {
> +	case PLANE_CTL_KEY_ENABLE_DESTINATION:
> +		key->flags = I915_SET_COLORKEY_DESTINATION;
> +		break;
> +	case PLANE_CTL_KEY_ENABLE_SOURCE:
> +		key->flags = I915_SET_COLORKEY_SOURCE;
> +		break;
> +	default:
> +		key->flags = I915_SET_COLORKEY_NONE;
> +	}
> +}
> +
> +static void
>  vlv_update_plane(struct drm_plane *dplane, struct drm_crtc *crtc,
>  		 struct drm_framebuffer *fb,
>  		 struct drm_i915_gem_object *obj, int crtc_x, int crtc_y,
> @@ -1305,6 +1483,18 @@ static uint32_t vlv_plane_formats[] = {
>  	DRM_FORMAT_VYUY,
>  };
>  
> +static uint32_t skl_plane_formats[] = {
> +	DRM_FORMAT_RGB565,
> +	DRM_FORMAT_ABGR8888,
> +	DRM_FORMAT_ARGB8888,
> +	DRM_FORMAT_XBGR8888,
> +	DRM_FORMAT_XRGB8888,
> +	DRM_FORMAT_YUYV,
> +	DRM_FORMAT_YVYU,
> +	DRM_FORMAT_UYVY,
> +	DRM_FORMAT_VYUY,
> +};
> +
>  int
>  intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane)
>  {
> @@ -1368,7 +1558,21 @@ intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane)
>  			num_plane_formats = ARRAY_SIZE(snb_plane_formats);
>  		}
>  		break;
> -
> +	case 9:
> +		/*
> +		 * FIXME: Skylake planes can be scaled (with some restrictions),
> +		 * but this is for another time.
> +		 */
> +		intel_plane->can_scale = false;
> +		intel_plane->max_downscale = 1;
> +		intel_plane->update_plane = skl_update_plane;
> +		intel_plane->disable_plane = skl_disable_plane;
> +		intel_plane->update_colorkey = skl_update_colorkey;
> +		intel_plane->get_colorkey = skl_get_colorkey;
> +
> +		plane_formats = skl_plane_formats;
> +		num_plane_formats = ARRAY_SIZE(skl_plane_formats);
> +		break;
>  	default:
>  		kfree(intel_plane);
>  		return -ENODEV;
> -- 
> 1.8.3.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

  reply	other threads:[~2014-09-04 13:20 UTC|newest]

Thread overview: 286+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04 11:26 [PATCH 00/89] Basic Skylake enabling Damien Lespiau
2014-09-04 11:26 ` [PATCH 01/89] drm/i915/skl: Add the Skylake PCI ids Damien Lespiau
2014-09-04 11:26 ` [PATCH 02/89] drm/i915/skl: Add an IS_GEN9() define Damien Lespiau
2014-09-04 11:26 ` [PATCH 03/89] drm/i915/skl: Add an IS_SKYLAKE macro Damien Lespiau
2014-09-04 11:26 ` [PATCH 04/89] drm/i915/skl: SKL FBC enablement Damien Lespiau
2014-09-04 11:26 ` [PATCH 05/89] drm/i915/skl: i915_swizzle_info gen9 fix Damien Lespiau
2014-09-04 13:14   ` Daniel Vetter
2014-09-04 15:26     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 06/89] drm/i915/skl: Fence registers on SKL are the same as SNB Damien Lespiau
2014-09-04 11:26 ` [PATCH 07/89] drm/i915/skl: Provide a placeholder for init_clock_gating() Damien Lespiau
2014-09-04 11:26 ` [PATCH 08/89] drm/i915/skl: Use gen8_ring_dispatch_execbuffer() on GEN9 Damien Lespiau
2014-09-16 14:53   ` Thomas Wood
2014-09-19 11:09     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 09/89] drm/i915/skl: Skylake shares the interrupt logic with Broadwell Damien Lespiau
2014-09-04 11:26 ` [PATCH 10/89] drm/i915/skl: don't set the AsyncFlip performance mode for Gen9+ Damien Lespiau
2014-09-04 11:26 ` [PATCH 11/89] drm/i915/skl: Framebuffers need to be aligned to 256Kb on Skylake Damien Lespiau
2014-09-16 14:54   ` Thomas Wood
2014-09-19 11:26     ` [PATCH 11/89 v2] drm/i915/skl: Framebuffers need to be aligned to 256KB " Damien Lespiau
2014-09-19 13:46       ` Thomas Wood
2014-09-04 11:26 ` [PATCH 12/89] drm/i915/skl: Implement thew new update_plane() for primary planes Damien Lespiau
2014-09-17  0:49   ` Rodrigo Vivi
2014-09-22 11:18     ` [PATCH 12/89 v8] drm/i915/skl: Implement the " Damien Lespiau
2014-09-04 11:26 ` [PATCH 13/89] drm/i915/skl: Don't create a VGA connector on Skylake Damien Lespiau
2014-09-04 11:26 ` [PATCH 14/89] drm/i915/skl: Don't try to read out the PCH transcoder state if not present Damien Lespiau
2014-09-04 11:26 ` [PATCH 15/89] drm/i915/skl: Program the DDI buffer translation tables Damien Lespiau
2014-09-04 18:58   ` [PATCH 15/89 v7] " Damien Lespiau
2014-09-04 11:26 ` [PATCH 16/89] drm/i915/skl: Add support for DP voltage swings and pre-emphasis Damien Lespiau
2014-09-04 11:26 ` [PATCH 17/89] drm/i915/skl: Skylake doesn't need the DP AUX clock divider programmed Damien Lespiau
2014-09-04 11:26 ` [PATCH 18/89] drm/i915/skl: Skylake moves AUX_CTL from PCH to CPU Damien Lespiau
2014-09-04 11:26 ` [PATCH 19/89] drm/i915/skl: Add the additional graphics stolen sizes Damien Lespiau
2014-09-04 11:26 ` [PATCH 20/89] drm/i915/skl: gen9 uses the same bind_vma() vfuncs as gen6+ Damien Lespiau
2014-09-04 11:26 ` [PATCH 21/89] drm/i915/skl: Implement the get_aux_clock_divider() DP vfunc Damien Lespiau
2014-09-17  1:12   ` Rodrigo Vivi
2014-09-22 13:21     ` Damien Lespiau
2014-09-22 19:33       ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 22/89] drm/i915/skl: Provide a get_aux_send_ctl() vfunc for skylake Damien Lespiau
2014-09-17  1:16   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 23/89] drm/i915/skl: Initialize PPGTT like gen8 Damien Lespiau
2014-09-17  1:17   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 24/89] drm/i915/skl: Allow the reg_read ioctl to return RCS_TIMESTAMP Damien Lespiau
2014-09-17  1:27   ` Rodrigo Vivi
2014-09-22 13:27     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 25/89] drm/i915/skl: report the same INSTDONE registers as gen8 Damien Lespiau
2014-09-17  1:28   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 26/89] drm/i915/skl: Report the PDP regs as in gen8 Damien Lespiau
2014-09-17  1:33   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 27/89] drm/i915/skl: SKL shares the same underrun interrupt as BDW Damien Lespiau
2014-09-17  1:39   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 28/89] drm/i915/skl: SKL pipe misc programming Damien Lespiau
2014-09-17  1:43   ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 29/89] drm/i915/skl: vfuncs for skl eld and global resource Damien Lespiau
2014-09-17  1:50   ` Rodrigo Vivi
2014-09-22 13:32     ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 30/89] drm/i915/skl: SKL backlight enabling Damien Lespiau
2014-09-17  1:56   ` Rodrigo Vivi
2014-09-17  9:09     ` Jani Nikula
2014-09-17 13:46       ` Rodrigo Vivi
2014-09-17 14:56         ` Rodrigo Vivi
2014-09-04 11:26 ` [PATCH 31/89] drm/i915/skl: Restore pipe B/C interrupts Damien Lespiau
2014-09-04 11:26 ` [PATCH 32/89] drm/i915/skl: Adjust the display engine interrupts Damien Lespiau
2014-09-04 13:19   ` Daniel Vetter
2014-09-17 18:41     ` Rodrigo Vivi
2014-09-22 13:38       ` Damien Lespiau
2014-09-04 11:26 ` [PATCH 33/89] drm/i915/skl: Sunrise Point PCH detection Damien Lespiau
2014-09-17 22:18   ` Rodrigo Vivi
2014-09-22 13:42     ` Damien Lespiau
2014-09-22 19:34       ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 34/89] drm/i915/skl: Implement WaDisableSDEUnitClockGating:skl Damien Lespiau
2014-09-17 18:48   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 35/89] drm/i915/skl: Implement Wa4x4STCOptimizationDisable:skl Damien Lespiau
2014-09-17 19:00   ` Rodrigo Vivi
2014-09-17 19:00     ` Rodrigo Vivi
2014-09-22 13:49       ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 36/89] drm/i915/skl: Implement WaDisableDgMirrorFixInHalfSliceChicken5:skl Damien Lespiau
2014-09-17 21:22   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 37/89] drm/i915/skl: Skylake has 2 "sprite" planes per pipe Damien Lespiau
2014-09-17 21:25   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 38/89] drm/i915/skl: Implement drm_plane vfuncs Damien Lespiau
2014-09-04 13:21   ` Daniel Vetter [this message]
2014-09-16 13:20     ` Damien Lespiau
2014-09-17 22:08   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 39/89] drm/i915/skl: Adjust assert_sprites_disabled() Damien Lespiau
2014-09-17 22:10   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 40/89] drm/i915/skl: Introduce a I915_MAX_PLANES macro Damien Lespiau
2014-09-17 22:12   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 41/89] drm/i915/skl: Introduce intel_num_planes() Damien Lespiau
2014-09-17 22:13   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 42/89] drm/i915/skl: Move gen9 pm initialization into its own branch Damien Lespiau
2014-09-17 22:16   ` Rodrigo Vivi
2014-09-04 11:27 ` [PATCH 43/89] drm/i915/skl: Read the Memory Latency Values for WM computation Damien Lespiau
2014-09-04 18:49   ` [PATCH 43/89 v6] " Damien Lespiau
2014-09-10 17:37     ` Ville Syrjälä
2014-09-05  8:25   ` [PATCH 43/89] " Ville Syrjälä
2014-09-05  8:29     ` Damien Lespiau
2014-09-05  8:42       ` Ville Syrjälä
2014-09-05 12:56         ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 44/89] drm/i915/skl: Register definitions and macros for SKL Watermark regs Damien Lespiau
2014-09-10 18:04   ` Ville Syrjälä
2014-09-16 14:11     ` Damien Lespiau
2014-09-17 13:40     ` [PATCH 44/89 v4] " Damien Lespiau
2014-09-23 11:17   ` [PATCH 44/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 45/89] drm/i915/skl: Definition of SKL WM param structs for pipe/plane Damien Lespiau
2014-09-10 18:39   ` Ville Syrjälä
2014-09-17 13:59     ` Damien Lespiau
2014-09-17 15:59       ` Daniel Vetter
2014-09-22 14:00         ` Damien Lespiau
2014-09-22 14:06   ` Ville Syrjälä
2014-09-22 14:21     ` Damien Lespiau
2014-09-23  8:16       ` Daniel Vetter
2014-09-23 15:10         ` [PATCH 45/89 v4] " Damien Lespiau
2014-10-28 15:11           ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 46/89] drm/i915/skl: Add DDB allocation management structures Damien Lespiau
2014-09-17 10:47   ` Ville Syrjälä
2014-09-22 14:08     ` Damien Lespiau
2014-09-22 18:26       ` Ville Syrjälä
2014-10-29 15:32   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 47/89] drm/i915/skl: SKL Watermark Computation Damien Lespiau
2014-09-17 12:07   ` Ville Syrjälä
2014-09-22 22:36     ` Damien Lespiau
2014-09-23  6:00       ` Satheeshakrishna M
2014-09-23 11:13     ` [PATCH 47/89 v11] " Damien Lespiau
2014-10-29 17:07       ` Ville Syrjälä
2014-09-23 11:14     ` [PATCH 47/89] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 48/89] drm/i915/skl: Allocate DDB portions for display planes Damien Lespiau
2014-09-19  9:58   ` Ville Syrjälä
2014-09-27 14:15     ` [PATCH 48/89 v6] " Damien Lespiau
2014-10-29 17:12       ` Ville Syrjälä
2014-09-23 11:19   ` [PATCH 48/89 v4] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 49/89] drm/i915/skl: Program the DDB allocation Damien Lespiau
2014-09-19 10:03   ` Ville Syrjälä
2014-09-27 14:17     ` Damien Lespiau
2014-10-29 18:42       ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 50/89] drm/i915/skl: Read the pipe WM HW state Damien Lespiau
2014-10-29 19:02   ` Ville Syrjälä
2014-10-30 12:03     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 51/89] drm/i915/gen9: Add 2us read latency to WM level Damien Lespiau
2014-09-19 10:04   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 52/89] drm/i915/gen9: Disable WM if corresponding latency is 0 Damien Lespiau
2014-09-19 10:05   ` Ville Syrjälä
2014-09-24 14:06     ` Damien Lespiau
2014-10-29 19:05       ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 53/89] drm/i915/skl: Gen9 Forcewake Damien Lespiau
2014-09-10 13:44   ` Mika Kuoppala
2014-09-16 13:49     ` [PATCH 53/89 v2] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 54/89] drm/i915/skl: Enable Gen9 RC6 Damien Lespiau
2014-09-22 13:15   ` Mika Kuoppala
2014-09-24 17:58     ` Bob Wang
2014-09-04 11:27 ` [PATCH 55/89] drm/i915/skl: Gen9 multi-engine forcewake Damien Lespiau
2014-09-22 15:11   ` Mika Kuoppala
2014-09-24 18:08     ` Bob Wang
2014-09-25  7:32       ` Mika Kuoppala
2014-11-03 17:09         ` [PATCH 55/59 v4] " Damien Lespiau
2014-11-19 13:25           ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 56/89] drm/i915: Gen9 shadowed registers Damien Lespiau
2014-09-24 13:36   ` Mika Kuoppala
2014-09-24 18:16     ` Bob Wang
2014-09-25  8:58       ` Mika Kuoppala
2014-11-03 17:45         ` [PATCH 56/89 v4] " Damien Lespiau
2014-11-19 13:25           ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 57/89] drm/i915: Rewrite ABS_DIFF() in a safer manner Damien Lespiau
2014-09-04 12:11   ` Jani Nikula
2014-09-04 12:32     ` Damien Lespiau
2014-09-04 13:11       ` Daniel Vetter
2014-09-04 11:27 ` [PATCH 58/89] drm/i915/skl: Register definitions for SKL Clocks Damien Lespiau
2014-09-22 18:17   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-11-04 16:11     ` [PATCH 58/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 59/89] drm/i915/skl: Structure/enum definitions for SKL clocks Damien Lespiau
2014-09-22 18:25   ` Paulo Zanoni
2014-11-04 16:12     ` Damien Lespiau
2014-11-05  9:11       ` Daniel Vetter
2014-09-04 11:27 ` [PATCH 60/89] drm/i915/skl: CD clock back calculation for SKL Damien Lespiau
2014-09-22 19:19   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-11-04 16:15     ` [PATCH 60/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 61/89] drm/i915/skl: Determine enabled PLL and its linkrate/pixel clock Damien Lespiau
2014-09-22 20:12   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-10-03 18:25       ` Paulo Zanoni
2014-11-04 16:17     ` [PATCH 61/89 v4] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 62/89] drm/i915/skl: Query DPLL attached to port on SKL Damien Lespiau
2014-09-22 20:24   ` Paulo Zanoni
2014-10-01 10:51     ` M, Satheeshakrishna
2014-11-04 16:19     ` [PATCH 62/89 v3] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 63/89] drm/i915/skl: Define shared DPLLs for Skylake Damien Lespiau
2014-09-23 14:28   ` Paulo Zanoni
2014-10-01 10:52     ` M, Satheeshakrishna
2014-09-04 11:27 ` [PATCH 64/89] drm/i915/skl: Adjust the port PLL selection code Damien Lespiau
2014-09-23 14:39   ` Paulo Zanoni
2014-09-04 11:27 ` [PATCH 65/89] drm/i915/skl: Always use DPLL0 for eDP Damien Lespiau
2014-09-23 15:07   ` Paulo Zanoni
2014-10-01 10:52     ` M, Satheeshakrishna
2014-09-04 11:27 ` [PATCH 66/89] drm/i915/skl: Implementation of SKL DPLL programming Damien Lespiau
2014-09-23 18:05   ` Paulo Zanoni
2014-10-01 10:52     ` M, Satheeshakrishna
2014-11-04 16:26     ` [PATCH 66/89 v9] " Damien Lespiau
2014-11-07 19:56       ` Paulo Zanoni
2015-05-13 14:54   ` [PATCH 66/89] " Tvrtko Ursulin
2015-05-13 15:31     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 67/89] drm/i915/skl: Provide skl-specific pll hw state cross-checking Damien Lespiau
2014-09-23 18:07   ` Paulo Zanoni
2014-09-04 11:27 ` [PATCH 68/89] drm/i915/skl: Apply eDP WA only for gen < 9 Damien Lespiau
2014-09-23 18:11   ` Paulo Zanoni
2014-09-04 11:27 ` [PATCH 69/89] drm/i915/skl: Adding power domains for AUX controllers Damien Lespiau
2014-09-16 12:35   ` Imre Deak
2014-09-18 13:56     ` Damien Lespiau
2014-09-18 14:23       ` Imre Deak
2014-09-18 14:29         ` Ville Syrjälä
2014-11-05 14:23     ` [PATCH 69/89 v5] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 70/89] drm/i915/skl: Register definition for SKL power well Damien Lespiau
2014-09-16 12:43   ` Imre Deak
2014-09-04 11:27 ` [PATCH 71/89] drm/i915/skl: Implementation of SKL display power well support Damien Lespiau
2014-09-16 13:56   ` Imre Deak
2014-09-16 14:19     ` Imre Deak
2014-09-04 11:27 ` [PATCH 72/89] drm/i915/skl: Enable/disable power well for aux transaction Damien Lespiau
2014-09-16 13:19   ` Imre Deak
2014-09-16 16:13     ` Daniel Vetter
2014-11-07 12:08     ` Damien Lespiau
2014-11-10 19:21       ` Imre Deak
2014-11-11 12:22         ` Damien Lespiau
2014-11-11 13:11           ` Imre Deak
2014-11-11 14:43           ` Daniel Vetter
2014-11-11 14:41         ` Daniel Vetter
2014-11-07 13:11     ` Damien Lespiau
2014-11-07 13:31       ` Ville Syrjälä
2014-11-07 13:49         ` Damien Lespiau
2014-11-07 14:05           ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 73/89] drm/i915/skl: Enabling MISC IO power well Damien Lespiau
2014-09-16 14:12   ` Imre Deak
2014-09-04 11:27 ` [PATCH 74/89] drm/i915/skl: Implement queue_flip Damien Lespiau
2014-09-23 20:06   ` Paulo Zanoni
2014-09-29 16:54     ` Damien Lespiau
2014-09-29 17:13     ` [PATCH 74/89 v4] " Damien Lespiau
2014-09-30 12:08       ` Paulo Zanoni
2014-09-30 12:19         ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 75/89] drm/i915/skl: fetch, enable/disable pfit as needed Damien Lespiau
2014-09-23 20:50   ` Paulo Zanoni
2014-09-24 10:44     ` Damien Lespiau
2014-09-25 14:48     ` Jesse Barnes
2014-09-25 14:55       ` Damien Lespiau
2014-09-25 17:58   ` [PATCH] drm/i915/skl: fetch, enable/disable pfit as needed v2 Jesse Barnes
2014-09-25 18:06     ` Paulo Zanoni
2014-09-29 13:51       ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 76/89] drm/i915/skl: Store the new WM state at the very end of the update Damien Lespiau
2014-10-29 19:19   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 77/89] drm/i915: Introduce a for_each_plane() macro Damien Lespiau
2014-09-04 13:26   ` Daniel Vetter
2014-09-04 13:32   ` Chris Wilson
2014-09-04 14:00     ` Daniel Vetter
2014-09-04 14:05       ` Damien Lespiau
2014-09-04 14:16         ` Daniel Vetter
2014-09-04 14:02     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 78/89] drm/i915/skl: Flush the WM configuration Damien Lespiau
2014-09-19 10:46   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 79/89] drm/i915/skl: Read back the DDB allocation hw state Damien Lespiau
2014-09-19 10:54   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 80/89] drm/i915/skl: Augment the latency debugfs files for SKL Damien Lespiau
2014-09-19 10:53   ` Ville Syrjälä
2014-09-29 13:37     ` [PATCH 80/89 v2] " Damien Lespiau
2014-09-04 11:27 ` [PATCH 81/89] drm/i915/skl: Expose skl_ddb_get_hw_state() Damien Lespiau
2014-10-29 19:21   ` Ville Syrjälä
2014-10-29 23:49     ` Damien Lespiau
2014-09-04 11:27 ` [PATCH 82/89] drm/i915/skl: Add a debugfs file to dump the DDB allocation Damien Lespiau
2014-10-29 19:23   ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 83/89] drm/i915/skl: Check the DDB state at modeset Damien Lespiau
2014-09-04 13:27   ` Daniel Vetter
2014-10-29 19:16     ` Ville Syrjälä
2014-09-04 11:27 ` [PATCH 84/89] drm/i915/skl: add turbo support Damien Lespiau
2014-09-26 14:55   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 85/89] drm/i915/skl: Retrieve the frequency limits Damien Lespiau
2014-09-26 15:09   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 86/89] drm/i915: only reset media, blt, and render engines on GPU hangs Damien Lespiau
2014-09-04 12:03   ` Jani Nikula
2014-09-04 12:29     ` Damien Lespiau
2014-09-04 13:13       ` Daniel Vetter
2014-09-04 15:46       ` Jesse Barnes
2014-09-04 12:36   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 87/89] drm/i915/skl: AUX irqs have moved Damien Lespiau
2014-09-26 15:21   ` Mika Kuoppala
2014-09-04 11:27 ` [PATCH 88/89] drm/i915/skl: Add Gen9 LRC size Damien Lespiau
2014-09-04 11:27 ` [PATCH 89/89] drm/i915/skl: Disable contexts if execlists aren't enabled Damien Lespiau
2014-09-26 15:28   ` Mika Kuoppala
2014-09-26 15:47     ` Chris Wilson
2014-09-04 14:16 ` [PATCH 00/89] Basic Skylake enabling (reviewers) Damien Lespiau
2014-09-16 14:51   ` Thomas Wood
2014-10-17 14:29   ` Damien Lespiau

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=20140904132116.GQ15520@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=damien.lespiau@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