On Fri, Feb 12, 2016 at 06:55:21PM +0200, Imre Deak wrote:
> The assumption when adding the intel_display_power_is_enabled() checks
> was that if it returns success the power can't be turned off afterwards
> during the HW access, which is guaranteed by modeset locks. This isn't
> always true, so make sure we hold a dedicated reference for the time of
> the access.
> 
> Signed-off-by: Imre Deak <imre.d...@intel.com>

For patches 9-12:

Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>

I'm assuming you're working on more patches to get rid of all the
powe_is_enabled() checks, so that we can remove this fundamentally unsafe
function evenutally?
-Daniel
> ---
>  drivers/gpu/drm/i915/intel_lvds.c | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c 
> b/drivers/gpu/drm/i915/intel_lvds.c
> index 811ddf7..30a8403 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -76,22 +76,30 @@ static bool intel_lvds_get_hw_state(struct intel_encoder 
> *encoder,
>       struct intel_lvds_encoder *lvds_encoder = 
> to_lvds_encoder(&encoder->base);
>       enum intel_display_power_domain power_domain;
>       u32 tmp;
> +     bool ret;
>  
>       power_domain = intel_display_port_power_domain(encoder);
> -     if (!intel_display_power_is_enabled(dev_priv, power_domain))
> +     if (!intel_display_power_get_if_enabled(dev_priv, power_domain))
>               return false;
>  
> +     ret = false;
> +
>       tmp = I915_READ(lvds_encoder->reg);
>  
>       if (!(tmp & LVDS_PORT_EN))
> -             return false;
> +             goto out;
>  
>       if (HAS_PCH_CPT(dev))
>               *pipe = PORT_TO_PIPE_CPT(tmp);
>       else
>               *pipe = PORT_TO_PIPE(tmp);
>  
> -     return true;
> +     ret = true;
> +
> +out:
> +     intel_display_power_put(dev_priv, power_domain);
> +
> +     return ret;
>  }
>  
>  static void intel_lvds_get_config(struct intel_encoder *encoder,
> -- 
> 2.5.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to