[Intel-gfx] [PATCH] drm/i915/skl: disable display side power well support for now

Jani Nikula jani.nikula at intel.com
Fri Nov 6 04:49:32 PST 2015


On Fri, 06 Nov 2015, Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:
> On Thu, Nov 05, 2015 at 11:04:11PM +0200, Imre Deak wrote:
>> The display power well support on this platform is in a somewhat broken
>> state atm, so disable it by default.
>> 
>> This in effect will get rid of incorrect assert WARNs about the CSR/DMC
>> firmware not being loaded during power well toggling. It also removes a
>> problem during driver loading where a register is accessed while its
>> backing power well is down, resulting in another WARN. Until we come up
>> with the root cause of the second problem and the proper fix for both
>> issues, keep all display side power wells on.
>> 
>> Also clarify a bit the option description.
>> 
>> Reported-by: Dave Airlie <airlied at redhat.com>
>> Signed-off-by: Imre Deak <imre.deak at intel.com>
>
> Looks all right.
>
> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Pushed to drm-intel-next-fixes, thanks for the patch and review.

BR,
Jani.

>
>> ---
>>  drivers/gpu/drm/i915/i915_params.c      |  5 +++--
>>  drivers/gpu/drm/i915/intel_runtime_pm.c | 20 ++++++++++++++++++++
>>  2 files changed, 23 insertions(+), 2 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
>> index ca9b8f6..e950135 100644
>> --- a/drivers/gpu/drm/i915/i915_params.c
>> +++ b/drivers/gpu/drm/i915/i915_params.c
>> @@ -38,7 +38,7 @@ struct i915_params i915 __read_mostly = {
>>  	.enable_ppgtt = -1,
>>  	.enable_psr = 0,
>>  	.preliminary_hw_support = IS_ENABLED(CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT),
>> -	.disable_power_well = 1,
>> +	.disable_power_well = -1,
>>  	.enable_ips = 1,
>>  	.prefault_disable = 0,
>>  	.load_detect_test = 0,
>> @@ -127,7 +127,8 @@ MODULE_PARM_DESC(preliminary_hw_support,
>>  
>>  module_param_named_unsafe(disable_power_well, i915.disable_power_well, int, 0600);
>>  MODULE_PARM_DESC(disable_power_well,
>> -	"Disable the power well when possible (default: true)");
>> +	"Disable display power wells when possible"
>> +	"(-1=auto [default], 0=power wells always on, 1=power wells disabled when possible)");
>>  
>>  module_param_named_unsafe(enable_ips, i915.enable_ips, int, 0600);
>>  MODULE_PARM_DESC(enable_ips, "Enable IPS (default: true)");
>> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
>> index ec010ee..14016f0 100644
>> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
>> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
>> @@ -1811,6 +1811,23 @@ static struct i915_power_well bxt_power_wells[] = {
>>  	}
>>  };
>>  
>> +static int
>> +sanitize_disable_power_well_option(const struct drm_i915_private *dev_priv,
>> +				   int disable_power_well)
>> +{
>> +	if (disable_power_well >= 0)
>> +		return !!disable_power_well;
>> +
>> +	if (IS_SKYLAKE(dev_priv)) {
>> +		DRM_DEBUG_KMS("Disabling display power well support\n");
>> +		return 0;
>> +	}
>> +
>> +	return 1;
>> +
>> +
>> +}
>> +
>>  #define set_power_wells(power_domains, __power_wells) ({		\
>>  	(power_domains)->power_wells = (__power_wells);			\
>>  	(power_domains)->power_well_count = ARRAY_SIZE(__power_wells);	\
>> @@ -1827,6 +1844,9 @@ int intel_power_domains_init(struct drm_i915_private *dev_priv)
>>  {
>>  	struct i915_power_domains *power_domains = &dev_priv->power_domains;
>>  
>> +	i915.disable_power_well = sanitize_disable_power_well_option(dev_priv,
>> +						     i915.disable_power_well);
>> +
>>  	mutex_init(&power_domains->lock);
>>  
>>  	/*
>> -- 
>> 2.5.0
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list