linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / media / radio / radio-maestro.c
index 39c1d91..36c9f5b 100644 (file)
 #include <linux/sched.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
-#include <linux/mutex.h>
+#include <asm/semaphore.h>
 #include <linux/pci.h>
 #include <linux/videodev.h>
 
-
 #define DRIVER_VERSION "0.05"
 
 #define GPIO_DATA      0x60   /* port offset from ESS_IO_BASE */
@@ -105,7 +104,7 @@ struct radio_device {
                muted,  /* VIDEO_AUDIO_MUTE */
                stereo, /* VIDEO_TUNER_STEREO_ON */     
                tuned;  /* signal strength (0 or 0xffff) */
-       struct mutex lock;
+       struct  semaphore lock;
 };
 
 static u32 radio_bits_get(struct radio_device *dev)
@@ -259,9 +258,9 @@ static int radio_ioctl(struct inode *inode, struct file *file,
        struct radio_device *card = video_get_drvdata(dev);
        int ret;
 
-       mutex_lock(&card->lock);
+       down(&card->lock);
        ret = video_usercopy(inode, file, cmd, arg, radio_function);
-       mutex_unlock(&card->lock);
+       up(&card->lock);
 
        return ret;
 }
@@ -312,7 +311,7 @@ static int __devinit maestro_probe(struct pci_dev *pdev,
        }
 
        radio_unit->io = pci_resource_start(pdev, 0) + GPIO_DATA;
-       mutex_init(&radio_unit->lock);
+       init_MUTEX(&radio_unit->lock);
 
        maestro_radio_inst = video_device_alloc();
        if (maestro_radio_inst == NULL) {