[Intel-gfx] [PATCH 12/12] drm/i915/lvds: ensure the HW is powered during HW state readout
Daniel Vetter
daniel at ffwll.ch
Tue Feb 16 16:05:36 UTC 2016
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.deak at intel.com>
For patches 9-12:
Reviewed-by: Daniel Vetter <daniel.vetter at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list