projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] OSS: Use ARRAY_SIZE macro when appropriate (2)
[firefly-linux-kernel-4.4.55.git]
/
sound
/
oss
/
nec_vrc5477.c
diff --git
a/sound/oss/nec_vrc5477.c
b/sound/oss/nec_vrc5477.c
index 9ac4bf7e1e894f62d6048a11f40a8a6a996ef453..d459bdb14154e9c11907ae8e8cd7e1a386c31a53 100644
(file)
--- a/
sound/oss/nec_vrc5477.c
+++ b/
sound/oss/nec_vrc5477.c
@@
-78,6
+78,8
@@
#include <linux/spinlock.h>
#include <linux/smp_lock.h>
#include <linux/ac97_codec.h>
#include <linux/spinlock.h>
#include <linux/smp_lock.h>
#include <linux/ac97_codec.h>
+#include <linux/mutex.h>
+
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/uaccess.h>
@@
-198,7
+200,7
@@
struct vrc5477_ac97_state {
unsigned short extended_status;
spinlock_t lock;
unsigned short extended_status;
spinlock_t lock;
- struct
semaphore open_sem
;
+ struct
mutex open_mutex
;
mode_t open_mode;
wait_queue_head_t open_wait;
mode_t open_mode;
wait_queue_head_t open_wait;
@@
-846,7
+848,7
@@
static inline void vrc5477_ac97_dac_interrupt(struct vrc5477_ac97_state *s)
wake_up_interruptible(&dac->wait);
}
wake_up_interruptible(&dac->wait);
}
-static irqreturn_t vrc5477_ac97_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t vrc5477_ac97_interrupt(int irq, void *dev_id)
{
struct vrc5477_ac97_state *s = (struct vrc5477_ac97_state *)dev_id;
u32 irqStatus;
{
struct vrc5477_ac97_state *s = (struct vrc5477_ac97_state *)dev_id;
u32 irqStatus;
@@
-1379,11
+1381,11
@@
static int vrc5477_ac97_ioctl(struct inode *inode, struct file *file,
int val, ret;
#ifdef VRC5477_AC97_DEBUG
int val, ret;
#ifdef VRC5477_AC97_DEBUG
- for (count
=0; count<sizeof(ioctl_str)/sizeof(ioctl_str[0]
); count++) {
+ for (count
= 0; count < ARRAY_SIZE(ioctl_str
); count++) {
if (ioctl_str[count].cmd == cmd)
break;
}
if (ioctl_str[count].cmd == cmd)
break;
}
- if (count <
sizeof(ioctl_str)/sizeof(ioctl_str[0]
))
+ if (count <
ARRAY_SIZE(ioctl_str
))
printk(KERN_INFO PFX "ioctl %s\n", ioctl_str[count].str);
else
printk(KERN_INFO PFX "ioctl unknown, 0x%x\n", cmd);
printk(KERN_INFO PFX "ioctl %s\n", ioctl_str[count].str);
else
printk(KERN_INFO PFX "ioctl unknown, 0x%x\n", cmd);
@@
-1617,22
+1619,22
@@
static int vrc5477_ac97_open(struct inode *inode, struct file *file)
file->private_data = s;
/* wait for device to become free */
file->private_data = s;
/* wait for device to become free */
-
down(&s->open_sem
);
+
mutex_lock(&s->open_mutex
);
while (s->open_mode & file->f_mode) {
if (file->f_flags & O_NONBLOCK) {
while (s->open_mode & file->f_mode) {
if (file->f_flags & O_NONBLOCK) {
-
up(&s->open_sem
);
+
mutex_unlock(&s->open_mutex
);
return -EBUSY;
}
add_wait_queue(&s->open_wait, &wait);
__set_current_state(TASK_INTERRUPTIBLE);
return -EBUSY;
}
add_wait_queue(&s->open_wait, &wait);
__set_current_state(TASK_INTERRUPTIBLE);
-
up(&s->open_sem
);
+
mutex_unlock(&s->open_mutex
);
schedule();
remove_wait_queue(&s->open_wait, &wait);
set_current_state(TASK_RUNNING);
if (signal_pending(current))
return -ERESTARTSYS;
schedule();
remove_wait_queue(&s->open_wait, &wait);
set_current_state(TASK_RUNNING);
if (signal_pending(current))
return -ERESTARTSYS;
-
down(&s->open_sem
);
+
mutex_lock(&s->open_mutex
);
}
spin_lock_irqsave(&s->lock, flags);
}
spin_lock_irqsave(&s->lock, flags);
@@
-1659,7
+1661,7
@@
static int vrc5477_ac97_open(struct inode *inode, struct file *file)
bailout:
spin_unlock_irqrestore(&s->lock, flags);
bailout:
spin_unlock_irqrestore(&s->lock, flags);
-
up(&s->open_sem
);
+
mutex_unlock(&s->open_mutex
);
return ret;
}
return ret;
}
@@
-1671,7
+1673,7
@@
static int vrc5477_ac97_release(struct inode *inode, struct file *file)
lock_kernel();
if (file->f_mode & FMODE_WRITE)
drain_dac(s, file->f_flags & O_NONBLOCK);
lock_kernel();
if (file->f_mode & FMODE_WRITE)
drain_dac(s, file->f_flags & O_NONBLOCK);
-
down(&s->open_sem
);
+
mutex_lock(&s->open_mutex
);
if (file->f_mode & FMODE_WRITE) {
stop_dac(s);
dealloc_dmabuf(s, &s->dma_dac);
if (file->f_mode & FMODE_WRITE) {
stop_dac(s);
dealloc_dmabuf(s, &s->dma_dac);
@@
-1681,7
+1683,7
@@
static int vrc5477_ac97_release(struct inode *inode, struct file *file)
dealloc_dmabuf(s, &s->dma_adc);
}
s->open_mode &= (~file->f_mode) & (FMODE_READ|FMODE_WRITE);
dealloc_dmabuf(s, &s->dma_adc);
}
s->open_mode &= (~file->f_mode) & (FMODE_READ|FMODE_WRITE);
-
up(&s->open_sem
);
+
mutex_unlock(&s->open_mutex
);
wake_up(&s->open_wait);
unlock_kernel();
return 0;
wake_up(&s->open_wait);
unlock_kernel();
return 0;
@@
-1867,7
+1869,7
@@
static int __devinit vrc5477_ac97_probe(struct pci_dev *pcidev,
init_waitqueue_head(&s->dma_adc.wait);
init_waitqueue_head(&s->dma_dac.wait);
init_waitqueue_head(&s->open_wait);
init_waitqueue_head(&s->dma_adc.wait);
init_waitqueue_head(&s->dma_dac.wait);
init_waitqueue_head(&s->open_wait);
-
init_MUTEX(&s->open_sem
);
+
mutex_init(&s->open_mutex
);
spin_lock_init(&s->lock);
s->dev = pcidev;
spin_lock_init(&s->lock);
s->dev = pcidev;
@@
-1907,7
+1909,7
@@
static int __devinit vrc5477_ac97_probe(struct pci_dev *pcidev,
s->io, s->io + pci_resource_len(pcidev,0)-1);
goto err_region;
}
s->io, s->io + pci_resource_len(pcidev,0)-1);
goto err_region;
}
- if (request_irq(s->irq, vrc5477_ac97_interrupt,
SA_INTERRUPT
,
+ if (request_irq(s->irq, vrc5477_ac97_interrupt,
IRQF_DISABLED
,
VRC5477_AC97_MODULE_NAME, s)) {
printk(KERN_ERR PFX "irq %u in use\n", s->irq);
goto err_irq;
VRC5477_AC97_MODULE_NAME, s)) {
printk(KERN_ERR PFX "irq %u in use\n", s->irq);
goto err_irq;
@@
-2045,7
+2047,7
@@
static struct pci_driver vrc5477_ac97_driver = {
static int __init init_vrc5477_ac97(void)
{
printk("Vrc5477 AC97 driver: version v0.2 time " __TIME__ " " __DATE__ " by Jun Sun\n");
static int __init init_vrc5477_ac97(void)
{
printk("Vrc5477 AC97 driver: version v0.2 time " __TIME__ " " __DATE__ " by Jun Sun\n");
- return pci_
module_init
(&vrc5477_ac97_driver);
+ return pci_
register_driver
(&vrc5477_ac97_driver);
}
static void __exit cleanup_vrc5477_ac97(void)
}
static void __exit cleanup_vrc5477_ac97(void)