public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Damien Lespiau <damien.lespiau@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 71/89] drm/i915/skl: Implementation of SKL display power well support
Date: Tue, 16 Sep 2014 16:56:29 +0300	[thread overview]
Message-ID: <1410875789.19704.41.camel@intelbox> (raw)
In-Reply-To: <1409830075-11139-72-git-send-email-damien.lespiau@intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 11493 bytes --]

On Thu, 2014-09-04 at 12:27 +0100, Damien Lespiau wrote:
> From: Satheeshakrishna M <satheeshakrishna.m@intel.com>
> 
> This patch implements core logic of SKL display power well.
> 
> FIXME: hsw_pwr needs to go. The audio guys promised us that they'll do a proper
> implementation for skl+.
> 
> v2: Addressed Imre's comments
> 	- Added respective DDIs under power well #1 and #2
> 	- Simplified repetitive code in power well programming
> 
> v3: Implemented Imre's comments
> 	- Further simplified power well programming
> 	- Made sure that PW 1 is enabled prior to PW 2
> 
> v4: Fix minor conflict with the the cherryview support (Damien)
> 
> v5: Add the PLL power domain to the always on power well (Damien)
> 
> v6: Disable BIOS power well (Imre)
>     Use power well data for comparison (Imre)
>     Put the PLL power domain into PW1 as its needed for CDCLK (Satheesh,
>     Damien)
> 
> Signed-off-by: Satheeshakrishna M <satheeshakrishna.m@intel.com> (v3,v6)
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_reg.h |  13 +++
>  drivers/gpu/drm/i915/intel_pm.c | 207 ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 220 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 4d072a8..84a0de6 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -541,6 +541,19 @@ enum punit_power_well {
>  	PUNIT_POWER_WELL_NUM,
>  };
>  
> +enum skl_disp_power_wells {
> +	SKL_DISP_PW_MISC_IO,
> +	SKL_DISP_PW_DDI_A_E,
> +	SKL_DISP_PW_DDI_B,
> +	SKL_DISP_PW_DDI_C,
> +	SKL_DISP_PW_DDI_D,
> +	SKL_DISP_PW_1 = 14,
> +	SKL_DISP_PW_2,
> +};
> +
> +#define SKL_POWER_WELL_STATE(pw) (1 << (pw * 2))
> +#define SKL_POWER_WELL_REQ(pw) (1 << ((pw * 2) + 1))
> +
>  #define PUNIT_REG_PWRGT_CTRL			0x60
>  #define PUNIT_REG_PWRGT_STATUS			0x61
>  #define   PUNIT_PWRGT_MASK(power_well)		(3 << ((power_well) * 2))
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index ec849db..853b596 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -7160,6 +7160,128 @@ static void hsw_set_power_well(struct drm_i915_private *dev_priv,
>  	}
>  }
>  
> +#define SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS (                 \
> +	BIT(POWER_DOMAIN_PIPE_B) |                      \
> +	BIT(POWER_DOMAIN_TRANSCODER_B) |                \
> +	BIT(POWER_DOMAIN_PIPE_C) |                      \
> +	BIT(POWER_DOMAIN_TRANSCODER_C) |                \
> +	BIT(POWER_DOMAIN_PIPE_B_PANEL_FITTER) |         \
> +	BIT(POWER_DOMAIN_PIPE_C_PANEL_FITTER) |         \
> +	BIT(POWER_DOMAIN_PORT_DDI_B_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_B_4_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_C_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_C_4_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_D_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_D_4_LANES) |          \
> +	BIT(POWER_DOMAIN_AUX_B) |                       \
> +	BIT(POWER_DOMAIN_AUX_C) |                       \
> +	BIT(POWER_DOMAIN_AUX_D) |                       \
> +	BIT(POWER_DOMAIN_AUDIO) |                       \
> +	BIT(POWER_DOMAIN_INIT))
> +#define SKL_DISPLAY_POWERWELL_1_POWER_DOMAINS (         \
> +	SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS |         \
> +	BIT(POWER_DOMAIN_PLLS) |			\
> +	BIT(POWER_DOMAIN_PIPE_A) |                      \
> +	BIT(POWER_DOMAIN_TRANSCODER_EDP) |              \
> +	BIT(POWER_DOMAIN_PIPE_A_PANEL_FITTER) | \
> +	BIT(POWER_DOMAIN_PORT_DDI_A_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_A_4_LANES) |          \
> +	BIT(POWER_DOMAIN_AUX_A) |                       \
> +	BIT(POWER_DOMAIN_INIT))
> +#define SKL_DISPLAY_DDI_A_E_POWER_DOMAINS (                     \
> +	BIT(POWER_DOMAIN_PORT_DDI_A_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_A_4_LANES) |          \
> +	BIT(POWER_DOMAIN_INIT))
> +#define SKL_DISPLAY_DDI_B_POWER_DOMAINS (                       \
> +	BIT(POWER_DOMAIN_PORT_DDI_B_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_B_4_LANES) |          \
> +	BIT(POWER_DOMAIN_INIT))
> +#define SKL_DISPLAY_DDI_C_POWER_DOMAINS (                       \
> +	BIT(POWER_DOMAIN_PORT_DDI_C_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_C_4_LANES) |          \
> +	BIT(POWER_DOMAIN_INIT))
> +#define SKL_DISPLAY_DDI_D_POWER_DOMAINS (                       \
> +	BIT(POWER_DOMAIN_PORT_DDI_D_2_LANES) |          \
> +	BIT(POWER_DOMAIN_PORT_DDI_D_4_LANES) |          \
> +	BIT(POWER_DOMAIN_INIT))
> +#define SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS (           \
> +	(POWER_DOMAIN_MASK & ~(SKL_DISPLAY_POWERWELL_1_POWER_DOMAINS |  \
> +	SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS |         \
> +	SKL_DISPLAY_DDI_A_E_POWER_DOMAINS |             \
> +	SKL_DISPLAY_DDI_B_POWER_DOMAINS |               \
> +	SKL_DISPLAY_DDI_C_POWER_DOMAINS |               \
> +	SKL_DISPLAY_DDI_D_POWER_DOMAINS)) |             \
> +	BIT(POWER_DOMAIN_INIT))
> +
> +static void skl_set_power_well(struct drm_i915_private *dev_priv,
> +			struct i915_power_well *power_well, bool enable)
> +{
> +	uint32_t tmp, fuse_status;
> +	uint32_t req_mask, state_mask;
> +	bool check_fuse_status = false;
> +
> +	tmp = I915_READ(HSW_PWR_WELL_DRIVER);
> +	fuse_status = I915_READ(SKL_FUSE_STATUS);
> +
> +	switch (power_well->data) {
> +	case SKL_DISP_PW_1:
> +		if (wait_for((I915_READ(SKL_FUSE_STATUS) &
> +			SKL_FUSE_PG0_DIST_STATUS), 5)) {

The spec says 5 us not 5 ms, so we could just wait for 1 ms. The same
applies to similar places below.

> +			DRM_ERROR("PG0 not enabled\n");
> +			return;
> +		}
> +		break;
> +	case SKL_DISP_PW_2:
> +		if (!(fuse_status & SKL_FUSE_PG1_DIST_STATUS)) {
> +			DRM_ERROR("PG1 in disabled state\n");
> +			return;
> +		}
> +		break;
> +	case SKL_DISP_PW_DDI_A_E:
> +	case SKL_DISP_PW_DDI_B:
> +	case SKL_DISP_PW_DDI_C:
> +	case SKL_DISP_PW_DDI_D:
> +		break;
> +	default:

This would be a driver bug, so it needs a WARN().

> +		return;
> +	}
> +
> +	req_mask = SKL_POWER_WELL_REQ(power_well->data);
> +	state_mask = SKL_POWER_WELL_STATE(power_well->data);
> +
> +	if (enable) {
> +		if (!(tmp & req_mask))
> +			I915_WRITE(HSW_PWR_WELL_DRIVER, tmp | req_mask);
> +
> +		if (!(tmp & state_mask)) {
> +			DRM_DEBUG_KMS("Enabling DDI power well\n");

Could be just "Enabling %s", power_well->name. Also we could miss the
message depending on timing, so it needs to go above where the request
bit is set.

With the above changes, this looks ok:
Reviewed-by: Imre Deak <imre.deak@intel.com>

> +			if (wait_for((I915_READ(HSW_PWR_WELL_DRIVER) &
> +				state_mask), 20))
> +				DRM_ERROR("%s enable timeout\n",
> +					power_well->name);
> +			check_fuse_status = true;
> +		}
> +	} else {
> +		if (tmp & req_mask) {
> +			I915_WRITE(HSW_PWR_WELL_DRIVER,	tmp & ~req_mask);
> +			POSTING_READ(HSW_PWR_WELL_DRIVER);
> +			DRM_DEBUG_KMS("Disabling %s\n", power_well->name);
> +		}
> +	}
> +
> +	if (check_fuse_status) {
> +		if (power_well->data == SKL_DISP_PW_1) {
> +			if (wait_for((I915_READ(SKL_FUSE_STATUS) &
> +				SKL_FUSE_PG1_DIST_STATUS), 5))
> +				DRM_ERROR("PG1 distributing status timeout\n");
> +		} else if (power_well->data == SKL_DISP_PW_2) {
> +			if (wait_for((I915_READ(SKL_FUSE_STATUS) &
> +				SKL_FUSE_PG2_DIST_STATUS), 1))
> +				DRM_ERROR("PG2 distributing status timeout\n");
> +		}
> +	}
> +}
> +
>  static void hsw_power_well_sync_hw(struct drm_i915_private *dev_priv,
>  				   struct i915_power_well *power_well)
>  {
> @@ -7185,6 +7307,36 @@ static void hsw_power_well_disable(struct drm_i915_private *dev_priv,
>  	hsw_set_power_well(dev_priv, power_well, false);
>  }
>  
> +static bool skl_power_well_enabled(struct drm_i915_private *dev_priv,
> +					struct i915_power_well *power_well)
> +{
> +	uint32_t mask = SKL_POWER_WELL_REQ(power_well->data) |
> +		SKL_POWER_WELL_STATE(power_well->data);
> +
> +	return (I915_READ(HSW_PWR_WELL_DRIVER) & mask) == mask;
> +}
> +
> +static void skl_power_well_sync_hw(struct drm_i915_private *dev_priv,
> +				struct i915_power_well *power_well)
> +{
> +	skl_set_power_well(dev_priv, power_well, power_well->count > 0);
> +
> +	/* Clear any request made by BIOS as driver is taking over */
> +	I915_WRITE(HSW_PWR_WELL_BIOS, 0);
> +}
> +
> +static void skl_power_well_enable(struct drm_i915_private *dev_priv,
> +				struct i915_power_well *power_well)
> +{
> +	skl_set_power_well(dev_priv, power_well, true);
> +}
> +
> +static void skl_power_well_disable(struct drm_i915_private *dev_priv,
> +				struct i915_power_well *power_well)
> +{
> +	skl_set_power_well(dev_priv, power_well, false);
> +}
> +
>  static void i9xx_always_on_power_well_noop(struct drm_i915_private *dev_priv,
>  					   struct i915_power_well *power_well)
>  {
> @@ -7787,6 +7939,13 @@ static const struct i915_power_well_ops hsw_power_well_ops = {
>  	.is_enabled = hsw_power_well_enabled,
>  };
>  
> +static const struct i915_power_well_ops skl_power_well_ops = {
> +	.sync_hw = skl_power_well_sync_hw,
> +	.enable = skl_power_well_enable,
> +	.disable = skl_power_well_disable,
> +	.is_enabled = skl_power_well_enabled,
> +};
> +
>  static struct i915_power_well hsw_power_wells[] = {
>  	{
>  		.name = "always-on",
> @@ -8009,6 +8168,51 @@ static struct i915_power_well *lookup_power_well(struct drm_i915_private *dev_pr
>  	return NULL;
>  }
>  
> +static struct i915_power_well skl_power_wells[] = {
> +	{
> +		.name = "always-on",
> +		.always_on = 1,
> +		.domains = SKL_DISPLAY_ALWAYS_ON_POWER_DOMAINS,
> +		.ops = &i9xx_always_on_power_well_ops,
> +	},
> +	{
> +		.name = "power well 1",
> +		.domains = SKL_DISPLAY_POWERWELL_1_POWER_DOMAINS,
> +		.ops = &skl_power_well_ops,
> +		.data = SKL_DISP_PW_1,
> +	},
> +	{
> +		.name = "power well 2",
> +		.domains = SKL_DISPLAY_POWERWELL_2_POWER_DOMAINS,
> +		.ops = &skl_power_well_ops,
> +		.data = SKL_DISP_PW_2,
> +	},
> +	{
> +		.name = "DDI A/E power well",
> +		.domains = SKL_DISPLAY_DDI_A_E_POWER_DOMAINS,
> +		.ops = &skl_power_well_ops,
> +		.data = SKL_DISP_PW_DDI_A_E,
> +	},
> +	{
> +		.name = "DDI B power well",
> +		.domains = SKL_DISPLAY_DDI_B_POWER_DOMAINS,
> +		.ops = &skl_power_well_ops,
> +		.data = SKL_DISP_PW_DDI_B,
> +	},
> +	{
> +		.name = "DDI C power well",
> +		.domains = SKL_DISPLAY_DDI_C_POWER_DOMAINS,
> +		.ops = &skl_power_well_ops,
> +		.data = SKL_DISP_PW_DDI_C,
> +	},
> +	{
> +		.name = "DDI D power well",
> +		.domains = SKL_DISPLAY_DDI_D_POWER_DOMAINS,
> +		.ops = &skl_power_well_ops,
> +		.data = SKL_DISP_PW_DDI_D,
> +	},
> +};
> +
>  #define set_power_wells(power_domains, __power_wells) ({		\
>  	(power_domains)->power_wells = (__power_wells);			\
>  	(power_domains)->power_well_count = ARRAY_SIZE(__power_wells);	\
> @@ -8030,6 +8234,9 @@ int intel_power_domains_init(struct drm_i915_private *dev_priv)
>  	} else if (IS_BROADWELL(dev_priv->dev)) {
>  		set_power_wells(power_domains, bdw_power_wells);
>  		hsw_pwr = power_domains;
> +	} else if (IS_SKYLAKE(dev_priv->dev)) {
> +		set_power_wells(power_domains, skl_power_wells);
> +		hsw_pwr = power_domains;
>  	} else if (IS_CHERRYVIEW(dev_priv->dev)) {
>  		set_power_wells(power_domains, chv_power_wells);
>  	} else if (IS_VALLEYVIEW(dev_priv->dev)) {


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2014-09-16 13:59 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
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 [this message]
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=1410875789.19704.41.camel@intelbox \
    --to=imre.deak@intel.com \
    --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