summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorJani Nikula2013-04-12 14:18:37 +0200
committerDaniel Vetter2013-04-25 14:10:10 +0200
commit8ba2d18520ce380cf572e9902d9b3b91ece6c2c0 (patch)
treeeb1ecb47ee2f713bc2980e97db7a0b566334ff90 /drivers/gpu/drm/i915/i915_drv.h
parentdrm/i915: keep max backlight internal to intel_panel.c (diff)
downloadkernel-qcow2-linux-8ba2d18520ce380cf572e9902d9b3b91ece6c2c0.tar.gz
kernel-qcow2-linux-8ba2d18520ce380cf572e9902d9b3b91ece6c2c0.tar.xz
kernel-qcow2-linux-8ba2d18520ce380cf572e9902d9b3b91ece6c2c0.zip
drm/i915: protect backlight registers and data with a spinlock
Backlight data and registers are fiddled through LVDS/eDP modeset enable/disable hooks, backlight sysfs files, asle interrupts, and register save/restore. Protect the backlight related registers and driver private fields using a spinlock. The locking in register save/restore covers a little more than is strictly necessary, including non-modeset case, for simplicity. v2: Cover register access, save/restore, i915_read_blc_pwm_ctl() and code paths leading there. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 95a3cc367d50..f6f4839484d1 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -960,6 +960,7 @@ typedef struct drm_i915_private {
struct {
int level;
bool enabled;
+ spinlock_t lock; /* bl registers and the above bl fields */
struct backlight_device *device;
} backlight;