drm/nouveau: use mutex for vbios lock
authorBen Skeggs <bskeggs@redhat.com>
Tue, 16 Feb 2010 01:14:14 +0000 (11:14 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 16 Feb 2010 01:14:33 +0000 (11:14 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_bios.c
drivers/gpu/drm/nouveau/nouveau_bios.h

index 2cd0fad17dace6bfd34a42983c11ab4663ae9ebd..0e9cd1d49130657c4aee725b8b490e75f0b4ba19 100644 (file)
@@ -5861,13 +5861,12 @@ nouveau_bios_run_init_table(struct drm_device *dev, uint16_t table,
        struct drm_nouveau_private *dev_priv = dev->dev_private;
        struct nvbios *bios = &dev_priv->VBIOS;
        struct init_exec iexec = { true, false };
-       unsigned long flags;
 
-       spin_lock_irqsave(&bios->lock, flags);
+       mutex_lock(&bios->lock);
        bios->display.output = dcbent;
        parse_init_table(bios, table, &iexec);
        bios->display.output = NULL;
-       spin_unlock_irqrestore(&bios->lock, flags);
+       mutex_unlock(&bios->lock);
 }
 
 static bool NVInitVBIOS(struct drm_device *dev)
@@ -5876,7 +5875,7 @@ static bool NVInitVBIOS(struct drm_device *dev)
        struct nvbios *bios = &dev_priv->VBIOS;
 
        memset(bios, 0, sizeof(struct nvbios));
-       spin_lock_init(&bios->lock);
+       mutex_init(&bios->lock);
        bios->dev = dev;
 
        if (!NVShadowVBIOS(dev, bios->data))
index 68446fd4146b04e005d4ef4f41a62948537c7830..fd94bd6dc2642221c572e698d0dab87402907b7d 100644 (file)
@@ -205,7 +205,7 @@ struct nvbios {
        struct drm_device *dev;
        struct nouveau_bios_info pub;
 
-       spinlock_t lock;
+       struct mutex lock;
 
        uint8_t data[NV_PROM_SIZE];
        unsigned int length;