Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
6176fadc
Commit
6176fadc
authored
Feb 23, 2015
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'topic/seq-cleanup' into for-next
parents
66c21c5a
54a721ab
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
256 additions
and
576 deletions
+256
-576
include/sound/seq_device.h
include/sound/seq_device.h
+29
-17
include/sound/seq_kernel.h
include/sound/seq_kernel.h
+1
-5
sound/core/seq/oss/seq_oss.c
sound/core/seq/oss/seq_oss.c
+13
-9
sound/core/seq/oss/seq_oss_synth.c
sound/core/seq/oss/seq_oss_synth.c
+4
-2
sound/core/seq/oss/seq_oss_synth.h
sound/core/seq/oss/seq_oss_synth.h
+2
-2
sound/core/seq/seq_device.c
sound/core/seq/seq_device.c
+134
-435
sound/core/seq/seq_dummy.c
sound/core/seq/seq_dummy.c
+1
-5
sound/core/seq/seq_midi.c
sound/core/seq/seq_midi.c
+14
-22
sound/drivers/opl3/opl3_seq.c
sound/drivers/opl3/opl3_seq.c
+14
-20
sound/drivers/opl4/opl4_seq.c
sound/drivers/opl4/opl4_seq.c
+14
-19
sound/isa/sb/emu8000_synth.c
sound/isa/sb/emu8000_synth.c
+15
-20
sound/pci/emu10k1/emu10k1_synth.c
sound/pci/emu10k1/emu10k1_synth.c
+15
-20
No files found.
include/sound/seq_device.h
View file @
6176fadc
...
...
@@ -25,29 +25,26 @@
* registered device information
*/
#define ID_LEN 32
/* status flag */
#define SNDRV_SEQ_DEVICE_FREE 0
#define SNDRV_SEQ_DEVICE_REGISTERED 1
struct
snd_seq_device
{
/* device info */
struct
snd_card
*
card
;
/* sound card */
int
device
;
/* device number */
c
har
id
[
ID_LEN
];
/* driver id */
c
onst
char
*
id
;
/* driver id */
char
name
[
80
];
/* device name */
int
argsize
;
/* size of the argument */
void
*
driver_data
;
/* private data for driver */
int
status
;
/* flag - read only */
void
*
private_data
;
/* private data for the caller */
void
(
*
private_free
)(
struct
snd_seq_device
*
device
);
struct
list_head
list
;
/* link to next device */
struct
device
dev
;
};
#define to_seq_dev(_dev) \
container_of(_dev, struct snd_seq_device, dev)
/* sequencer driver */
/* driver operators
*
init_devic
e:
*
prob
e:
* Initialize the device with given parameters.
* Typically,
* 1. call snd_hwdep_new
...
...
@@ -55,25 +52,40 @@ struct snd_seq_device {
* 3. call snd_hwdep_register
* 4. store the instance to dev->driver_data pointer.
*
*
free_devic
e:
*
remov
e:
* Release the private data.
* Typically, call snd_device_free(dev->card, dev->driver_data)
*/
struct
snd_seq_dev_ops
{
int
(
*
init_device
)(
struct
snd_seq_device
*
dev
);
int
(
*
free_device
)(
struct
snd_seq_device
*
dev
);
struct
snd_seq_driver
{
struct
device_driver
driver
;
char
*
id
;
int
argsize
;
};
#define to_seq_drv(_drv) \
container_of(_drv, struct snd_seq_driver, driver)
/*
* prototypes
*/
#ifdef CONFIG_MODULES
void
snd_seq_device_load_drivers
(
void
);
int
snd_seq_device_new
(
struct
snd_card
*
card
,
int
device
,
char
*
id
,
int
argsize
,
struct
snd_seq_device
**
result
);
int
snd_seq_device_register_driver
(
char
*
id
,
struct
snd_seq_dev_ops
*
entry
,
int
argsize
);
int
snd_seq_device_unregister_driver
(
char
*
id
);
#else
#define snd_seq_device_load_drivers()
#endif
int
snd_seq_device_new
(
struct
snd_card
*
card
,
int
device
,
const
char
*
id
,
int
argsize
,
struct
snd_seq_device
**
result
);
#define SNDRV_SEQ_DEVICE_ARGPTR(dev) (void *)((char *)(dev) + sizeof(struct snd_seq_device))
int
__must_check
__snd_seq_driver_register
(
struct
snd_seq_driver
*
drv
,
struct
module
*
mod
);
#define snd_seq_driver_register(drv) \
__snd_seq_driver_register(drv, THIS_MODULE)
void
snd_seq_driver_unregister
(
struct
snd_seq_driver
*
drv
);
#define module_snd_seq_driver(drv) \
module_driver(drv, snd_seq_driver_register, snd_seq_driver_unregister)
/*
* id strings for generic devices
...
...
include/sound/seq_kernel.h
View file @
6176fadc
...
...
@@ -99,13 +99,9 @@ int snd_seq_event_port_attach(int client, struct snd_seq_port_callback *pcbp,
int
snd_seq_event_port_detach
(
int
client
,
int
port
);
#ifdef CONFIG_MODULES
void
snd_seq_autoload_lock
(
void
);
void
snd_seq_autoload_unlock
(
void
);
void
snd_seq_autoload_init
(
void
);
#define snd_seq_autoload_exit() snd_seq_autoload_lock()
void
snd_seq_autoload_exit
(
void
);
#else
#define snd_seq_autoload_lock()
#define snd_seq_autoload_unlock()
#define snd_seq_autoload_init()
#define snd_seq_autoload_exit()
#endif
...
...
sound/core/seq/oss/seq_oss.c
View file @
6176fadc
...
...
@@ -65,15 +65,20 @@ static unsigned int odev_poll(struct file *file, poll_table * wait);
* module interface
*/
static
struct
snd_seq_driver
seq_oss_synth_driver
=
{
.
driver
=
{
.
name
=
KBUILD_MODNAME
,
.
probe
=
snd_seq_oss_synth_probe
,
.
remove
=
snd_seq_oss_synth_remove
,
},
.
id
=
SNDRV_SEQ_DEV_ID_OSS
,
.
argsize
=
sizeof
(
struct
snd_seq_oss_reg
),
};
static
int
__init
alsa_seq_oss_init
(
void
)
{
int
rc
;
static
struct
snd_seq_dev_ops
ops
=
{
snd_seq_oss_synth_register
,
snd_seq_oss_synth_unregister
,
};
snd_seq_autoload_lock
();
if
((
rc
=
register_device
())
<
0
)
goto
error
;
if
((
rc
=
register_proc
())
<
0
)
{
...
...
@@ -86,8 +91,8 @@ static int __init alsa_seq_oss_init(void)
goto
error
;
}
if
((
rc
=
snd_seq_device_register_driver
(
SNDRV_SEQ_DEV_ID_OSS
,
&
ops
,
sizeof
(
struct
snd_seq_oss_reg
)))
<
0
)
{
rc
=
snd_seq_driver_register
(
&
seq_oss_synth_driver
);
if
(
rc
<
0
)
{
snd_seq_oss_delete_client
();
unregister_proc
();
unregister_device
();
...
...
@@ -98,13 +103,12 @@ static int __init alsa_seq_oss_init(void)
snd_seq_oss_synth_init
();
error:
snd_seq_autoload_unlock
();
return
rc
;
}
static
void
__exit
alsa_seq_oss_exit
(
void
)
{
snd_seq_d
evice_unregister_driver
(
SNDRV_SEQ_DEV_ID_OSS
);
snd_seq_d
river_unregister
(
&
seq_oss_synth_driver
);
snd_seq_oss_delete_client
();
unregister_proc
();
unregister_device
();
...
...
sound/core/seq/oss/seq_oss_synth.c
View file @
6176fadc
...
...
@@ -98,8 +98,9 @@ snd_seq_oss_synth_init(void)
* registration of the synth device
*/
int
snd_seq_oss_synth_
register
(
struct
snd_seq_device
*
dev
)
snd_seq_oss_synth_
probe
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
int
i
;
struct
seq_oss_synth
*
rec
;
struct
snd_seq_oss_reg
*
reg
=
SNDRV_SEQ_DEVICE_ARGPTR
(
dev
);
...
...
@@ -149,8 +150,9 @@ snd_seq_oss_synth_register(struct snd_seq_device *dev)
int
snd_seq_oss_synth_
unregister
(
struct
snd_seq_device
*
dev
)
snd_seq_oss_synth_
remove
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
int
index
;
struct
seq_oss_synth
*
rec
=
dev
->
driver_data
;
unsigned
long
flags
;
...
...
sound/core/seq/oss/seq_oss_synth.h
View file @
6176fadc
...
...
@@ -28,8 +28,8 @@
#include <sound/seq_device.h>
void
snd_seq_oss_synth_init
(
void
);
int
snd_seq_oss_synth_
register
(
struct
snd_seq_
device
*
dev
);
int
snd_seq_oss_synth_
unregister
(
struct
snd_seq_
device
*
dev
);
int
snd_seq_oss_synth_
probe
(
struct
device
*
dev
);
int
snd_seq_oss_synth_
remove
(
struct
device
*
dev
);
void
snd_seq_oss_synth_setup
(
struct
seq_oss_devinfo
*
dp
);
void
snd_seq_oss_synth_setup_midi
(
struct
seq_oss_devinfo
*
dp
);
void
snd_seq_oss_synth_cleanup
(
struct
seq_oss_devinfo
*
dp
);
...
...
sound/core/seq/seq_device.c
View file @
6176fadc
This diff is collapsed.
Click to expand it.
sound/core/seq/seq_dummy.c
View file @
6176fadc
...
...
@@ -214,11 +214,7 @@ delete_client(void)
static
int
__init
alsa_seq_dummy_init
(
void
)
{
int
err
;
snd_seq_autoload_lock
();
err
=
register_client
();
snd_seq_autoload_unlock
();
return
err
;
return
register_client
();
}
static
void
__exit
alsa_seq_dummy_exit
(
void
)
...
...
sound/core/seq/seq_midi.c
View file @
6176fadc
...
...
@@ -273,8 +273,9 @@ static void snd_seq_midisynth_delete(struct seq_midisynth *msynth)
/* register new midi synth port */
static
int
snd_seq_midisynth_
register_port
(
struct
snd_seq_device
*
dev
)
snd_seq_midisynth_
probe
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
seq_midisynth_client
*
client
;
struct
seq_midisynth
*
msynth
,
*
ms
;
struct
snd_seq_port_info
*
port
;
...
...
@@ -427,8 +428,9 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev)
/* release midi synth port */
static
int
snd_seq_midisynth_
unregister_port
(
struct
snd_seq_device
*
dev
)
snd_seq_midisynth_
remove
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
seq_midisynth_client
*
client
;
struct
seq_midisynth
*
msynth
;
struct
snd_card
*
card
=
dev
->
card
;
...
...
@@ -457,24 +459,14 @@ snd_seq_midisynth_unregister_port(struct snd_seq_device *dev)
return
0
;
}
static
struct
snd_seq_driver
seq_midisynth_driver
=
{
.
driver
=
{
.
name
=
KBUILD_MODNAME
,
.
probe
=
snd_seq_midisynth_probe
,
.
remove
=
snd_seq_midisynth_remove
,
},
.
id
=
SNDRV_SEQ_DEV_ID_MIDISYNTH
,
.
argsize
=
0
,
};
static
int
__init
alsa_seq_midi_init
(
void
)
{
static
struct
snd_seq_dev_ops
ops
=
{
snd_seq_midisynth_register_port
,
snd_seq_midisynth_unregister_port
,
};
memset
(
&
synths
,
0
,
sizeof
(
synths
));
snd_seq_autoload_lock
();
snd_seq_device_register_driver
(
SNDRV_SEQ_DEV_ID_MIDISYNTH
,
&
ops
,
0
);
snd_seq_autoload_unlock
();
return
0
;
}
static
void
__exit
alsa_seq_midi_exit
(
void
)
{
snd_seq_device_unregister_driver
(
SNDRV_SEQ_DEV_ID_MIDISYNTH
);
}
module_init
(
alsa_seq_midi_init
)
module_exit
(
alsa_seq_midi_exit
)
module_snd_seq_driver
(
seq_midisynth_driver
);
sound/drivers/opl3/opl3_seq.c
View file @
6176fadc
...
...
@@ -216,8 +216,9 @@ static int snd_opl3_synth_create_port(struct snd_opl3 * opl3)
/* ------------------------------ */
static
int
snd_opl3_seq_
new_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_opl3_seq_
probe
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_opl3
*
opl3
;
int
client
,
err
;
char
name
[
32
];
...
...
@@ -257,8 +258,9 @@ static int snd_opl3_seq_new_device(struct snd_seq_device *dev)
return
0
;
}
static
int
snd_opl3_seq_
delete_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_opl3_seq_
remove
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_opl3
*
opl3
;
opl3
=
*
(
struct
snd_opl3
**
)
SNDRV_SEQ_DEVICE_ARGPTR
(
dev
);
...
...
@@ -275,22 +277,14 @@ static int snd_opl3_seq_delete_device(struct snd_seq_device *dev)
return
0
;
}
static
int
__init
alsa_opl3_seq_init
(
void
)
{
static
struct
snd_seq_dev_ops
ops
=
{
snd_opl3_seq_new_device
,
snd_opl3_seq_delete_device
};
return
snd_seq_device_register_driver
(
SNDRV_SEQ_DEV_ID_OPL3
,
&
ops
,
sizeof
(
struct
snd_opl3
*
));
}
static
void
__exit
alsa_opl3_seq_exit
(
void
)
{
snd_seq_device_unregister_driver
(
SNDRV_SEQ_DEV_ID_OPL3
);
}
static
struct
snd_seq_driver
opl3_seq_driver
=
{
.
driver
=
{
.
name
=
KBUILD_MODNAME
,
.
probe
=
snd_opl3_seq_probe
,
.
remove
=
snd_opl3_seq_remove
,
},
.
id
=
SNDRV_SEQ_DEV_ID_OPL3
,
.
argsize
=
sizeof
(
struct
snd_opl3
*
),
};
module_init
(
alsa_opl3_seq_init
)
module_exit
(
alsa_opl3_seq_exit
)
module_snd_seq_driver
(
opl3_seq_driver
);
sound/drivers/opl4/opl4_seq.c
View file @
6176fadc
...
...
@@ -124,8 +124,9 @@ static void snd_opl4_seq_free_port(void *private_data)
snd_midi_channel_free_set
(
opl4
->
chset
);
}
static
int
snd_opl4_seq_
new_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_opl4_seq_
probe
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_opl4
*
opl4
;
int
client
;
struct
snd_seq_port_callback
pcallbacks
;
...
...
@@ -180,8 +181,9 @@ static int snd_opl4_seq_new_device(struct snd_seq_device *dev)
return
0
;
}
static
int
snd_opl4_seq_
delete_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_opl4_seq_
remove
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_opl4
*
opl4
;
opl4
=
*
(
struct
snd_opl4
**
)
SNDRV_SEQ_DEVICE_ARGPTR
(
dev
);
...
...
@@ -195,21 +197,14 @@ static int snd_opl4_seq_delete_device(struct snd_seq_device *dev)
return
0
;
}
static
int
__init
alsa_opl4_synth_init
(
void
)
{
static
struct
snd_seq_dev_ops
ops
=
{
snd_opl4_seq_new_device
,
snd_opl4_seq_delete_device
};
return
snd_seq_device_register_driver
(
SNDRV_SEQ_DEV_ID_OPL4
,
&
ops
,
sizeof
(
struct
snd_opl4
*
));
}
static
void
__exit
alsa_opl4_synth_exit
(
void
)
{
snd_seq_device_unregister_driver
(
SNDRV_SEQ_DEV_ID_OPL4
);
}
static
struct
snd_seq_driver
opl4_seq_driver
=
{
.
driver
=
{
.
name
=
KBUILD_MODNAME
,
.
probe
=
snd_opl4_seq_probe
,
.
remove
=
snd_opl4_seq_remove
,
},
.
id
=
SNDRV_SEQ_DEV_ID_OPL4
,
.
argsize
=
sizeof
(
struct
snd_opl4
*
),
};
module_init
(
alsa_opl4_synth_init
)
module_exit
(
alsa_opl4_synth_exit
)
module_snd_seq_driver
(
opl4_seq_driver
);
sound/isa/sb/emu8000_synth.c
View file @
6176fadc
...
...
@@ -34,8 +34,9 @@ MODULE_LICENSE("GPL");
/*
* create a new hardware dependent device for Emu8000
*/
static
int
snd_emu8000_
new_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_emu8000_
probe
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_emu8000
*
hw
;
struct
snd_emux
*
emu
;
...
...
@@ -93,8 +94,9 @@ static int snd_emu8000_new_device(struct snd_seq_device *dev)
/*
* free all resources
*/
static
int
snd_emu8000_
delete_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_emu8000_
remove
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_emu8000
*
hw
;
if
(
dev
->
driver_data
==
NULL
)
...
...
@@ -114,21 +116,14 @@ static int snd_emu8000_delete_device(struct snd_seq_device *dev)
* INIT part
*/
static
int
__init
alsa_emu8000_init
(
void
)
{
static
struct
snd_seq_dev_ops
ops
=
{
snd_emu8000_new_device
,
snd_emu8000_delete_device
,
};
return
snd_seq_device_register_driver
(
SNDRV_SEQ_DEV_ID_EMU8000
,
&
ops
,
sizeof
(
struct
snd_emu8000
*
));
}
static
void
__exit
alsa_emu8000_exit
(
void
)
{
snd_seq_device_unregister_driver
(
SNDRV_SEQ_DEV_ID_EMU8000
);
}
module_init
(
alsa_emu8000_init
)
module_exit
(
alsa_emu8000_exit
)
static
struct
snd_seq_driver
emu8000_driver
=
{
.
driver
=
{
.
name
=
KBUILD_MODNAME
,
.
probe
=
snd_emu8000_probe
,
.
remove
=
snd_emu8000_remove
,
},
.
id
=
SNDRV_SEQ_DEV_ID_EMU8000
,
.
argsize
=
sizeof
(
struct
snd_emu8000
*
),
};
module_snd_seq_driver
(
emu8000_driver
);
sound/pci/emu10k1/emu10k1_synth.c
View file @
6176fadc
...
...
@@ -29,8 +29,9 @@ MODULE_LICENSE("GPL");
/*
* create a new hardware dependent device for Emu10k1
*/
static
int
snd_emu10k1_synth_
new_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_emu10k1_synth_
probe
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_emux
*
emux
;
struct
snd_emu10k1
*
hw
;
struct
snd_emu10k1_synth_arg
*
arg
;
...
...
@@ -79,8 +80,9 @@ static int snd_emu10k1_synth_new_device(struct snd_seq_device *dev)
return
0
;
}
static
int
snd_emu10k1_synth_
delete_device
(
struct
snd_seq_device
*
dev
)
static
int
snd_emu10k1_synth_
remove
(
struct
device
*
_
dev
)
{
struct
snd_seq_device
*
dev
=
to_seq_dev
(
_dev
);
struct
snd_emux
*
emux
;
struct
snd_emu10k1
*
hw
;
unsigned
long
flags
;
...
...
@@ -104,21 +106,14 @@ static int snd_emu10k1_synth_delete_device(struct snd_seq_device *dev)
* INIT part
*/
static
int
__init
alsa_emu10k1_synth_init
(
void
)
{
static
struct
snd_seq_dev_ops
ops
=
{
snd_emu10k1_synth_new_device
,
snd_emu10k1_synth_delete_device
,
};
return
snd_seq_device_register_driver
(
SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH
,
&
ops
,
sizeof
(
struct
snd_emu10k1_synth_arg
));
}
static
void
__exit
alsa_emu10k1_synth_exit
(
void
)
{
snd_seq_device_unregister_driver
(
SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH
);
}
module_init
(
alsa_emu10k1_synth_init
)
module_exit
(
alsa_emu10k1_synth_exit
)
static
struct
snd_seq_driver
emu10k1_synth_driver
=
{
.
driver
=
{
.
name
=
KBUILD_MODNAME
,
.
probe
=
snd_emu10k1_synth_probe
,
.
remove
=
snd_emu10k1_synth_remove
,
},
.
id
=
SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH
,
.
argsize
=
sizeof
(
struct
snd_emu10k1_synth_arg
),
};
module_snd_seq_driver
(
emu10k1_synth_driver
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment