drm/i915: fixup sbi_read/write locking
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 22 Jan 2013 14:33:27 +0000 (15:33 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 22 Jan 2013 23:52:56 +0000 (00:52 +0100)
commit 09153000b8ca32a539a1207edebabd0d40b6c61b
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Dec 12 14:06:44 2012 +0100

    drm/i915: rework locking for intel_dpio|sbi_read|write

reworked the locking around sbi_read/write functions for 3.8-fixes.
But

commit dde86e2db54545ef981b64805097a7b4c3156d6e
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Sat Dec 1 12:04:25 2012 -0200

    drm/i915: add lpt_init_pch_refcl

Added new use-cases in the -next tree which has not been updated in
the merge. Fix it up.

Reported-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Tested-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 305be11..886124a 100644 (file)
@@ -4873,6 +4873,8 @@ static void lpt_init_pch_refclk(struct drm_device *dev)
        if (!has_vga)
                return;
 
+       mutex_lock(&dev_priv->dpio_lock);
+
        /* XXX: Rip out SDV support once Haswell ships for real. */
        if (IS_HASWELL(dev) && (dev->pci_device & 0xFF00) == 0x0C00)
                is_sdv = true;
@@ -5015,6 +5017,8 @@ static void lpt_init_pch_refclk(struct drm_device *dev)
        tmp = intel_sbi_read(dev_priv, SBI_DBUFF0, SBI_ICLK);
        tmp |= SBI_DBUFF0_ENABLE;
        intel_sbi_write(dev_priv, SBI_DBUFF0, tmp, SBI_ICLK);
+
+       mutex_unlock(&dev_priv->dpio_lock);
 }
 
 /*