[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