unsigned long curfreq;
int muted;
unsigned int stereo;
- struct mutex lock;
+ struct semaphore lock;
};
static int zol_setvol(struct zol_device *dev, int vol)
if (dev->muted)
return 0;
- mutex_lock(&dev->lock);
+ down(&dev->lock);
if (vol == 0) {
outb(0, io);
outb(0, io);
inb(io + 3); /* Zoltrix needs to be read to confirm */
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
return 0;
}
outb(dev->curvol-1, io);
msleep(10);
inb(io + 2);
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
return 0;
}
static void zol_mute(struct zol_device *dev)
{
dev->muted = 1;
- mutex_lock(&dev->lock);
+ down(&dev->lock);
outb(0, io);
outb(0, io);
inb(io + 3); /* Zoltrix needs to be read to confirm */
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
}
static void zol_unmute(struct zol_device *dev)
bitmask = 0xc480402c10080000ull;
i = 45;
- mutex_lock(&dev->lock);
+ down(&dev->lock);
outb(0, io);
outb(0, io);
udelay(1000);
}
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
if(!dev->muted)
{
{
int a, b;
- mutex_lock(&dev->lock);
+ down(&dev->lock);
outb(0x00, io); /* This stuff I found to do nothing */
outb(dev->curvol, io);
msleep(20);
msleep(10);
b = inb(io);
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
if (a != b)
return (0);
{
int x1, x2;
- mutex_lock(&dev->lock);
+ down(&dev->lock);
outb(0x00, io);
outb(dev->curvol, io);
msleep(10);
x2 = inb(io);
- mutex_unlock(&dev->lock);
+ up(&dev->lock);
if ((x1 == x2) && (x1 == 0xcf))
return 1;
}
printk(KERN_INFO "Zoltrix Radio Plus card driver.\n");
- mutex_init(&zoltrix_unit.lock);
+ init_MUTEX(&zoltrix_unit.lock);
/* mute card - prevents noisy bootups */