static int io = CONFIG_RADIO_RTRACK_PORT;
static int radio_nr = -1;
-static struct mutex lock;
+static struct semaphore lock;
struct rt_device
{
static void rt_mute(struct rt_device *dev)
{
dev->muted = 1;
- mutex_lock(&lock);
+ down(&lock);
outb(0xd0, io); /* volume steady, off */
- mutex_unlock(&lock);
+ up(&lock);
}
static int rt_setvol(struct rt_device *dev, int vol)
{
int i;
- mutex_lock(&lock);
+ down(&lock);
if(vol == dev->curvol) { /* requested volume = current */
if (dev->muted) { /* user is unmuting the card */
dev->muted = 0;
outb (0xd8, io); /* enable card */
}
- mutex_unlock(&lock);
+ up(&lock);
return 0;
}
sleep_delay(2000000); /* make sure it's totally down */
outb(0xd0, io); /* volume steady, off */
dev->curvol = 0; /* track the volume state! */
- mutex_unlock(&lock);
+ up(&lock);
return 0;
}
rt_decvol();
dev->curvol = vol;
- mutex_unlock(&lock);
+ up(&lock);
return 0;
}
freq += 171200; /* Add 10.7 MHz IF */
freq /= 800; /* Convert to 50 kHz units */
- mutex_lock(&lock); /* Stop other ops interfering */
+ down(&lock); /* Stop other ops interfering */
send_0_byte (io, dev); /* 0: LSB of frequency */
else
outb (0xd8, io); /* volume steady + sigstr + on */
- mutex_unlock(&lock);
+ up(&lock);
return 0;
}
/* Set up the I/O locking */
- mutex_init(&lock);
+ init_MUTEX(&lock);
/* mute card - prevents noisy bootups */