@@ -70,15 +70,15 @@ module_exit(cleanup_soundcore);
#ifdef CONFIG_SOUND_OSS_CORE
/*
* OSS sound core handling. Breaks out sound functions to submodules
- *
+ *
* Author: Alan Cox <alan@lxorguk.ukuu.org.uk>
*
* Fixes:
*
* --------------------
- *
+ *
* Top level handler for the sound subsystem. Various devices can
- * plug into this. The fact they don't all go via OSS doesn't mean
+ * plug into this. The fact they don't all go via OSS doesn't mean
* they don't have to implement the OSS API. There is a lot of logic
* to keeping much of the OSS weight out of the code in a compatibility
* module, but it's up to the driver to rember to load it...
@@ -107,8 +107,7 @@ module_exit(cleanup_soundcore);
#define SOUND_STEP 16
-struct sound_unit
-{
+struct sound_unit {
int unit_minor;
const struct file_operations *unit_fops;
struct sound_unit *next;
@@ -143,8 +142,7 @@ module_param(preclaim_oss, int, 0444);
static int soundcore_open(struct inode *, struct file *);
-static const struct file_operations soundcore_fops =
-{
+static const struct file_operations soundcore_fops = {
/* We must have an owner or the module locking fails */
.owner = THIS_MODULE,
.open = soundcore_open,
@@ -156,70 +154,68 @@ static const struct file_operations soundcore_fops =
* join into it. Called with the lock asserted
*/
-static int __sound_insert_unit(struct sound_unit * s, struct sound_unit **list, const struct file_operations *fops, int index, int low, int top)
+static int __sound_insert_unit(struct sound_unit *s, struct sound_unit **list, const struct file_operations *fops, int index, int low, int top)
{
- int n=low;
+ int n = low;
if (index < 0) { /* first free */
- while (*list && (*list)->unit_minor<n)
- list=&((*list)->next);
+ while (*list && (*list)->unit_minor < n)
+ list = &((*list)->next);
- while(n<top)
- {
+ while (n < top) {
/* Found a hole ? */
- if(*list==NULL || (*list)->unit_minor>n)
+ if (*list == NULL || (*list)->unit_minor > n)
break;
- list=&((*list)->next);
- n+=SOUND_STEP;
+ list = &((*list)->next);
+ n += SOUND_STEP;
}
- if(n>=top)
+ if (n >= top)
return -ENOENT;
} else {
n = low+(index*16);
while (*list) {
- if ((*list)->unit_minor==n)
+ if ((*list)->unit_minor == n)
return -EBUSY;
- if ((*list)->unit_minor>n)
+ if ((*list)->unit_minor > n)
break;
- list=&((*list)->next);
+ list = &((*list)->next);
}
- }
-
+ }
+
/*
* Fill it in
*/
-
- s->unit_minor=n;
- s->unit_fops=fops;
-
+
+ s->unit_minor = n;
+ s->unit_fops = fops;
+
/*
* Link it
*/
-
- s->next=*list;
- *list=s;
-
-
+
+ s->next = *list;
+ *list = s;
+
+
return n;
}
/*
* Remove a node from the chain. Called with the lock asserted
*/
-
+
static struct sound_unit *__sound_remove_unit(struct sound_unit **list, int unit)
{
- while(*list)
- {
- struct sound_unit *p=*list;
- if(p->unit_minor==unit)
- {
- *list=p->next;
+ while (*list) {
+ struct sound_unit *p = *list;
+
+ if (p->unit_minor == unit) {
+ *list = p->next;
return p;
}
- list=&(p->next);
+ list = &(p->next);
}
printk(KERN_ERR "Sound device %d went missing!\n", unit);
return NULL;
@@ -248,7 +244,7 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati
retry:
r = __sound_insert_unit(s, list, fops, index, low, top);
spin_unlock(&sound_loader_lock);
-
+
if (r < 0)
goto fail;
else if (r < SOUND_STEP)
@@ -291,7 +287,7 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati
* completed the removal before their file operations become
* invalid.
*/
-
+
static void sound_remove_unit(struct sound_unit **list, int unit)
{
struct sound_unit *p;
@@ -335,7 +331,7 @@ static struct sound_unit *chains[SOUND_STEP];
* register_sound_special_device - register a special sound node
* @fops: File operations for the driver
* @unit: Unit number to allocate
- * @dev: device pointer
+ * @dev: device pointer
*
* Allocate a special sound device by minor number from the sound
* subsystem.
@@ -343,7 +339,7 @@ static struct sound_unit *chains[SOUND_STEP];
* Return: The allocated number is returned on success. On failure,
* a negative error code is returned.
*/
-
+
int register_sound_special_device(const struct file_operations *fops, int unit,
struct device *dev)
{
@@ -353,69 +349,66 @@ int register_sound_special_device(const struct file_operations *fops, int unit,
char _name[16];
switch (chain) {
- case 0:
+ case 0:
name = "mixer";
break;
- case 1:
+ case 1:
name = "sequencer";
if (unit >= SOUND_STEP)
goto __unknown;
max_unit = unit + 1;
break;
- case 2:
+ case 2:
name = "midi";
break;
- case 3:
+ case 3:
name = "dsp";
break;
- case 4:
+ case 4:
name = "audio";
break;
- case 5:
+ case 5:
name = "dspW";
break;
- case 8:
+ case 8:
name = "sequencer2";
if (unit >= SOUND_STEP)
goto __unknown;
max_unit = unit + 1;
break;
- case 9:
+ case 9:
name = "dmmidi";
break;
- case 10:
+ case 10:
name = "dmfm";
break;
- case 12:
+ case 12:
name = "adsp";
break;
- case 13:
+ case 13:
name = "amidi";
break;
- case 14:
+ case 14:
name = "admmidi";
break;
- default:
- {
- __unknown:
+ default: {
+__unknown:
sprintf(_name, "unknown%d", chain);
- if (unit >= SOUND_STEP)
- strcat(_name, "-");
- name = _name;
+ if (unit >= SOUND_STEP)
+ strcat(_name, "-");
+ name = _name;
}
break;
}
return sound_insert_unit(&chains[chain], fops, -1, unit, max_unit,
name, 0600, dev);
}
-
EXPORT_SYMBOL(register_sound_special_device);
int register_sound_special(const struct file_operations *fops, int unit)
{
return register_sound_special_device(fops, unit, NULL);
}
-
EXPORT_SYMBOL(register_sound_special);
/**
@@ -435,14 +428,13 @@ int register_sound_mixer(const struct file_operations *fops, int dev)
return sound_insert_unit(&chains[0], fops, dev, 0, 128,
"mixer", 0600, NULL);
}
-
EXPORT_SYMBOL(register_sound_mixer);
/*
* DSP's are registered as a triple. Register only one and cheat
* in open - see below.
*/
-
+
/**
* register_sound_dsp - register a DSP device
* @fops: File operations for the driver
@@ -463,7 +455,6 @@ int register_sound_dsp(const struct file_operations *fops, int dev)
return sound_insert_unit(&chains[3], fops, dev, 3, 131,
"dsp", 0600, NULL);
}
-
EXPORT_SYMBOL(register_sound_dsp);
/**
@@ -480,7 +471,6 @@ void unregister_sound_special(int unit)
{
sound_remove_unit(&chains[unit % SOUND_STEP], unit);
}
-
EXPORT_SYMBOL(unregister_sound_special);
/**
@@ -495,7 +485,6 @@ void unregister_sound_mixer(int unit)
{
sound_remove_unit(&chains[0], unit);
}
-
EXPORT_SYMBOL(unregister_sound_mixer);
/**
@@ -512,20 +501,17 @@ void unregister_sound_dsp(int unit)
{
sound_remove_unit(&chains[3], unit);
}
-
-
EXPORT_SYMBOL(unregister_sound_dsp);
static struct sound_unit *__look_for_unit(int chain, int unit)
{
struct sound_unit *s;
-
- s=chains[chain];
- while(s && s->unit_minor <= unit)
- {
- if(s->unit_minor==unit)
+
+ s = chains[chain];
+ while (s && s->unit_minor <= unit) {
+ if (s->unit_minor == unit)
return s;
- s=s->next;
+ s = s->next;
}
return NULL;
}
@@ -537,14 +523,13 @@ static int soundcore_open(struct inode *inode, struct file *file)
struct sound_unit *s;
const struct file_operations *new_fops = NULL;
- chain=unit&0x0F;
- if(chain==4 || chain==5) /* dsp/audio/dsp16 */
- {
- unit&=0xF0;
- unit|=3;
- chain=3;
+ chain = unit&0x0F;
+ if (chain == 4 || chain == 5) { /* dsp/audio/dsp16 */
+ unit &= 0xF0;
+ unit |= 3;
+ chain = 3;
}
-
+
spin_lock(&sound_loader_lock);
s = __look_for_unit(chain, unit);
if (s)
@@ -598,8 +583,10 @@ MODULE_ALIAS_CHARDEV_MAJOR(SOUND_MAJOR);
static void cleanup_oss_soundcore(void)
{
- /* We have nothing to really do here - we know the lists must be
- empty */
+ /*
+ * We have nothing to really do here - we know the lists must be
+ * empty
+ */
unregister_chrdev(SOUND_MAJOR, "sound");
}
Running checkpatch.pl on sound_core.c resulted in: total: 75 errors, 37 warnings, 617 lines checked This patch fixes most of them, leaving two warnings: WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... + printk(KERN_ERR "Sound device %d went missing!\n", unit); WARNING: Prefer [subsystem eg: netdev]_err([subsystem]dev, ... then dev_err(dev, ... then pr_err(... to printk(KERN_ERR ... + printk(KERN_ERR "soundcore: sound device already in use.\n"); Signed-off-by: Dominik Karol PiÄ…tkowski <dominik.karol.piatkowski@protonmail.com> --- sound/sound_core.c | 157 +++++++++++++++++++++------------------------ 1 file changed, 72 insertions(+), 85 deletions(-)