[Intel-gfx] [PATCH] drm/i915/eDP: When enabling panel VDD cancel pending disable worker
Ville Syrjälä
ville.syrjala at linux.intel.com
Mon Nov 24 18:32:49 CET 2014
On Mon, Nov 24, 2014 at 05:56:20PM +0100, Egbert Eich wrote:
> Before testing if the panel VDD is enabled on eDP cancel any pending
> disable worker. This makes sure the worker doesn't fire when we expect
> VDD to be enabled.
>
> https://bugs.freedesktop.org/show_bug.cgi?id=86201
>
> Signed-off-by: Egbert Eich <eich at suse.de>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 70bb8d0b..81f959d 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -1503,6 +1503,7 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
> if (!is_edp(intel_dp))
> return false;
>
> + cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
This can deadlock since we're already holding pps_mutex and
edp_panel_vdd_work() also grabs it.
I'm thinking we may want something like mod_delayed_work() instead.
> intel_dp->want_panel_vdd = true;
>
> if (edp_have_panel_vdd(intel_dp))
> --
> 1.8.4.5
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list