diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_cdclk.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_cdclk.c | 60 | 
1 files changed, 31 insertions, 29 deletions
| diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c index 25e3aba9cded..15ba950dee00 100644 --- a/drivers/gpu/drm/i915/intel_cdclk.c +++ b/drivers/gpu/drm/i915/intel_cdclk.c @@ -218,7 +218,7 @@ static unsigned int intel_hpll_vco(struct drm_i915_private *dev_priv)  	};  	const unsigned int *vco_table;  	unsigned int vco; -	uint8_t tmp = 0; +	u8 tmp = 0;  	/* FIXME other chipsets? */  	if (IS_GM45(dev_priv)) @@ -249,13 +249,13 @@ static void g33_get_cdclk(struct drm_i915_private *dev_priv,  			  struct intel_cdclk_state *cdclk_state)  {  	struct pci_dev *pdev = dev_priv->drm.pdev; -	static const uint8_t div_3200[] = { 12, 10,  8,  7, 5, 16 }; -	static const uint8_t div_4000[] = { 14, 12, 10,  8, 6, 20 }; -	static const uint8_t div_4800[] = { 20, 14, 12, 10, 8, 24 }; -	static const uint8_t div_5333[] = { 20, 16, 12, 12, 8, 28 }; -	const uint8_t *div_table; +	static const u8 div_3200[] = { 12, 10,  8,  7, 5, 16 }; +	static const u8 div_4000[] = { 14, 12, 10,  8, 6, 20 }; +	static const u8 div_4800[] = { 20, 14, 12, 10, 8, 24 }; +	static const u8 div_5333[] = { 20, 16, 12, 12, 8, 28 }; +	const u8 *div_table;  	unsigned int cdclk_sel; -	uint16_t tmp = 0; +	u16 tmp = 0;  	cdclk_state->vco = intel_hpll_vco(dev_priv); @@ -330,12 +330,12 @@ static void i965gm_get_cdclk(struct drm_i915_private *dev_priv,  			     struct intel_cdclk_state *cdclk_state)  {  	struct pci_dev *pdev = dev_priv->drm.pdev; -	static const uint8_t div_3200[] = { 16, 10,  8 }; -	static const uint8_t div_4000[] = { 20, 12, 10 }; -	static const uint8_t div_5333[] = { 24, 16, 14 }; -	const uint8_t *div_table; +	static const u8 div_3200[] = { 16, 10,  8 }; +	static const u8 div_4000[] = { 20, 12, 10 }; +	static const u8 div_5333[] = { 24, 16, 14 }; +	const u8 *div_table;  	unsigned int cdclk_sel; -	uint16_t tmp = 0; +	u16 tmp = 0;  	cdclk_state->vco = intel_hpll_vco(dev_priv); @@ -375,7 +375,7 @@ static void gm45_get_cdclk(struct drm_i915_private *dev_priv,  {  	struct pci_dev *pdev = dev_priv->drm.pdev;  	unsigned int cdclk_sel; -	uint16_t tmp = 0; +	u16 tmp = 0;  	cdclk_state->vco = intel_hpll_vco(dev_priv); @@ -403,8 +403,8 @@ static void gm45_get_cdclk(struct drm_i915_private *dev_priv,  static void hsw_get_cdclk(struct drm_i915_private *dev_priv,  			  struct intel_cdclk_state *cdclk_state)  { -	uint32_t lcpll = I915_READ(LCPLL_CTL); -	uint32_t freq = lcpll & LCPLL_CLK_FREQ_MASK; +	u32 lcpll = I915_READ(LCPLL_CTL); +	u32 freq = lcpll & LCPLL_CLK_FREQ_MASK;  	if (lcpll & LCPLL_CD_SOURCE_FCLK)  		cdclk_state->cdclk = 800000; @@ -520,6 +520,7 @@ static void vlv_set_cdclk(struct drm_i915_private *dev_priv,  {  	int cdclk = cdclk_state->cdclk;  	u32 val, cmd = cdclk_state->voltage_level; +	intel_wakeref_t wakeref;  	switch (cdclk) {  	case 400000: @@ -539,7 +540,7 @@ static void vlv_set_cdclk(struct drm_i915_private *dev_priv,  	 * a system suspend.  So grab the PIPE-A domain, which covers  	 * the HW blocks needed for the following programming.  	 */ -	intel_display_power_get(dev_priv, POWER_DOMAIN_PIPE_A); +	wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_PIPE_A);  	mutex_lock(&dev_priv->pcu_lock);  	val = vlv_punit_read(dev_priv, PUNIT_REG_DSPFREQ); @@ -593,7 +594,7 @@ static void vlv_set_cdclk(struct drm_i915_private *dev_priv,  	vlv_program_pfi_credits(dev_priv); -	intel_display_power_put(dev_priv, POWER_DOMAIN_PIPE_A); +	intel_display_power_put(dev_priv, POWER_DOMAIN_PIPE_A, wakeref);  }  static void chv_set_cdclk(struct drm_i915_private *dev_priv, @@ -601,6 +602,7 @@ static void chv_set_cdclk(struct drm_i915_private *dev_priv,  {  	int cdclk = cdclk_state->cdclk;  	u32 val, cmd = cdclk_state->voltage_level; +	intel_wakeref_t wakeref;  	switch (cdclk) {  	case 333333: @@ -619,7 +621,7 @@ static void chv_set_cdclk(struct drm_i915_private *dev_priv,  	 * a system suspend.  So grab the PIPE-A domain, which covers  	 * the HW blocks needed for the following programming.  	 */ -	intel_display_power_get(dev_priv, POWER_DOMAIN_PIPE_A); +	wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_PIPE_A);  	mutex_lock(&dev_priv->pcu_lock);  	val = vlv_punit_read(dev_priv, PUNIT_REG_DSPFREQ); @@ -637,7 +639,7 @@ static void chv_set_cdclk(struct drm_i915_private *dev_priv,  	vlv_program_pfi_credits(dev_priv); -	intel_display_power_put(dev_priv, POWER_DOMAIN_PIPE_A); +	intel_display_power_put(dev_priv, POWER_DOMAIN_PIPE_A, wakeref);  }  static int bdw_calc_cdclk(int min_cdclk) @@ -670,8 +672,8 @@ static u8 bdw_calc_voltage_level(int cdclk)  static void bdw_get_cdclk(struct drm_i915_private *dev_priv,  			  struct intel_cdclk_state *cdclk_state)  { -	uint32_t lcpll = I915_READ(LCPLL_CTL); -	uint32_t freq = lcpll & LCPLL_CLK_FREQ_MASK; +	u32 lcpll = I915_READ(LCPLL_CTL); +	u32 freq = lcpll & LCPLL_CLK_FREQ_MASK;  	if (lcpll & LCPLL_CD_SOURCE_FCLK)  		cdclk_state->cdclk = 800000; @@ -698,7 +700,7 @@ static void bdw_set_cdclk(struct drm_i915_private *dev_priv,  			  const struct intel_cdclk_state *cdclk_state)  {  	int cdclk = cdclk_state->cdclk; -	uint32_t val; +	u32 val;  	int ret;  	if (WARN((I915_READ(LCPLL_CTL) & @@ -1081,7 +1083,7 @@ static void skl_set_cdclk(struct drm_i915_private *dev_priv,  static void skl_sanitize_cdclk(struct drm_i915_private *dev_priv)  { -	uint32_t cdctl, expected; +	u32 cdctl, expected;  	/*  	 * check if the pre-os initialized the display @@ -2140,7 +2142,7 @@ static int intel_pixel_rate_to_cdclk(struct drm_i915_private *dev_priv,  {  	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))  		return DIV_ROUND_UP(pixel_rate, 2); -	else if (IS_GEN9(dev_priv) || +	else if (IS_GEN(dev_priv, 9) ||  		 IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))  		return pixel_rate;  	else if (IS_CHERRYVIEW(dev_priv)) @@ -2176,7 +2178,7 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state)  		if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)) {  			/* Display WA #1145: glk,cnl */  			min_cdclk = max(316800, min_cdclk); -		} else if (IS_GEN9(dev_priv) || IS_BROADWELL(dev_priv)) { +		} else if (IS_GEN(dev_priv, 9) || IS_BROADWELL(dev_priv)) {  			/* Display WA #1144: skl,bxt */  			min_cdclk = max(432000, min_cdclk);  		} @@ -2537,7 +2539,7 @@ static int intel_compute_max_dotclk(struct drm_i915_private *dev_priv)  	if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))  		return 2 * max_cdclk_freq; -	else if (IS_GEN9(dev_priv) || +	else if (IS_GEN(dev_priv, 9) ||  		 IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))  		return max_cdclk_freq;  	else if (IS_CHERRYVIEW(dev_priv)) @@ -2688,7 +2690,7 @@ static int vlv_hrawclk(struct drm_i915_private *dev_priv)  static int g4x_hrawclk(struct drm_i915_private *dev_priv)  { -	uint32_t clkcfg; +	u32 clkcfg;  	/* hrawclock is 1/4 the FSB frequency */  	clkcfg = I915_READ(CLKCFG); @@ -2785,9 +2787,9 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)  		dev_priv->display.get_cdclk = hsw_get_cdclk;  	else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))  		dev_priv->display.get_cdclk = vlv_get_cdclk; -	else if (IS_GEN6(dev_priv) || IS_IVYBRIDGE(dev_priv)) +	else if (IS_GEN(dev_priv, 6) || IS_IVYBRIDGE(dev_priv))  		dev_priv->display.get_cdclk = fixed_400mhz_get_cdclk; -	else if (IS_GEN5(dev_priv)) +	else if (IS_GEN(dev_priv, 5))  		dev_priv->display.get_cdclk = fixed_450mhz_get_cdclk;  	else if (IS_GM45(dev_priv))  		dev_priv->display.get_cdclk = gm45_get_cdclk; | 
