summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorMarcin Slusarz <marcin.slusarz@gmail.com>2013-01-30 21:21:31 (GMT)
committerBen Skeggs <bskeggs@redhat.com>2013-02-20 06:00:40 (GMT)
commit3969f05bb8d0d72ba974ab5f74a7bafb61dd16d0 (patch)
treed95a1f891786cf3215edd221ee22cb19e7d2c5cf /drivers/gpu/drm
parentb795016cd2c6aebfa40cbccb3bad4e0325815fb4 (diff)
downloadlinux-fsl-qoriq-3969f05bb8d0d72ba974ab5f74a7bafb61dd16d0.tar.xz
drm/nouveau/therm: always initialize alarm_program_lock
Fixes "BUG: spinlock bad magic" on module load for nva3+ cards. Introduced in commit "drm/nouveau/therm: implement support for temperature alarms". Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/base.c1
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c1
2 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/base.c b/drivers/gpu/drm/nouveau/core/subdev/therm/base.c
index 25b7f6a..f794dc8 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/therm/base.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/therm/base.c
@@ -299,6 +299,7 @@ nouveau_therm_create_(struct nouveau_object *parent,
nouveau_alarm_init(&priv->alarm, nouveau_therm_alarm);
spin_lock_init(&priv->lock);
+ spin_lock_init(&priv->sensor.alarm_program_lock);
priv->base.fan_get = nouveau_therm_fan_user_get;
priv->base.fan_set = nouveau_therm_fan_user_set;
diff --git a/drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c b/drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c
index 4b7fe24..86632cb 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c
@@ -279,7 +279,6 @@ nv50_therm_ctor(struct nouveau_object *parent,
priv->base.base.pwm_clock = nv50_fan_pwm_clock;
priv->base.base.temp_get = nv50_temp_get;
priv->base.sensor.program_alarms = nv50_therm_program_alarms;
- spin_lock_init(&priv->base.sensor.alarm_program_lock);
nv_subdev(priv)->intr = nv50_therm_intr;
/* init the thresholds */