[Intel-gfx] [PATCH] drm/i915: Unlock panel even when LVDS is disabled

Jani Nikula jani.nikula at linux.intel.com
Mon Dec 29 00:00:38 PST 2014


On Mon, 01 Dec 2014, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> Otherwise we'll have backtraces in assert_panel_unlocked because the
> BIOS locks the register. In the reporter's case this regression was
> introduced in
>
> commit c31407a3672aaebb4acddf90944a114fa5c8af7b
> Author: Chris Wilson <chris at chris-wilson.co.uk>
> Date:   Thu Oct 18 21:07:01 2012 +0100
>
>     drm/i915: Add no-lvds quirk for Supermicro X7SPA-H
>
> Reported-by: Alexey Orishko <alexey.orishko at gmail.com>
> Cc: Alexey Orishko <alexey.orishko at gmail.com>
> Cc: stable at vger.kernel.org
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Francois Tigeot <ftigeot at wolfpond.org>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
>
> ---
>
> Alexey, please test this patch.
>
> Thanks, Daniel
> ---
>  drivers/gpu/drm/i915/intel_lvds.c | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index c03d457a5150..14654d628ca4 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -899,6 +899,17 @@ void intel_lvds_init(struct drm_device *dev)
>  	int pipe;
>  	u8 pin;
>  
> +	/*
> +	 * Unlock registers and just leave them unlocked. Do this before
> +	 * checking quirk lists to avoid bogus WARNINGs.
> +	 */
> +	if (HAS_PCH_SPLIT(dev)) {
> +		I915_WRITE(PCH_PP_CONTROL,
> +			   I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
> +	} else {
> +		I915_WRITE(PP_CONTROL,
> +			   I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
> +	}

Ugh, this is bogus for vlv/chv.

Jani.

>  	if (!intel_lvds_supported(dev))
>  		return;
>  
> @@ -1097,17 +1108,6 @@ out:
>  	lvds_encoder->a3_power = I915_READ(lvds_encoder->reg) &
>  				 LVDS_A3_POWER_MASK;
>  
> -	/*
> -	 * Unlock registers and just
> -	 * leave them unlocked
> -	 */
> -	if (HAS_PCH_SPLIT(dev)) {
> -		I915_WRITE(PCH_PP_CONTROL,
> -			   I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS);
> -	} else {
> -		I915_WRITE(PP_CONTROL,
> -			   I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS);
> -	}
>  	lvds_connector->lid_notifier.notifier_call = intel_lid_notify;
>  	if (acpi_lid_notifier_register(&lvds_connector->lid_notifier)) {
>  		DRM_DEBUG_KMS("lid notifier registration failed\n");
> -- 
> 2.1.1
>
> _______________________________________________
> 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