[ALSA] dynamic minors (1/6): store device type in struct snd_minor
Instead of a comment string, store the device type in the snd_minor
structure. This makes snd_minor more flexible, and has the nice side
effect that we don't need anymore to create a separate snd_minor
template for registering a device but can pass the file_operations
directly to snd_register_device().
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
diff --git a/include/sound/core.h b/include/sound/core.h
index f00b9c9..f557c8a 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -185,8 +185,8 @@
struct snd_minor {
struct list_head list; /* list of all minors per card */
int number; /* minor number */
+ int type; /* SNDRV_DEVICE_TYPE_XXX */
int device; /* device number */
- const char *comment; /* for /proc/asound/devices */
struct file_operations *f_ops; /* file operations */
char name[0]; /* device name (keep at the end of
structure) */
@@ -199,11 +199,13 @@
void snd_request_card(int card);
-int snd_register_device(int type, struct snd_card *card, int dev, struct snd_minor *reg, const char *name);
+int snd_register_device(int type, struct snd_card *card, int dev,
+ struct file_operations *f_ops, const char *name);
int snd_unregister_device(int type, struct snd_card *card, int dev);
#ifdef CONFIG_SND_OSSEMUL
-int snd_register_oss_device(int type, struct snd_card *card, int dev, struct snd_minor *reg, const char *name);
+int snd_register_oss_device(int type, struct snd_card *card, int dev,
+ struct file_operations *f_ops, const char *name);
int snd_unregister_oss_device(int type, struct snd_card *card, int dev);
#endif
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 7e77c0a..5e29b0e 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -402,7 +402,6 @@
struct snd_pcm_oss_stream oss;
#endif
struct snd_pcm_file *files;
- struct snd_minor *reg;
struct snd_info_entry *proc_root;
struct snd_info_entry *proc_info_entry;
#ifdef CONFIG_SND_DEBUG
@@ -441,7 +440,7 @@
*/
extern struct snd_pcm *snd_pcm_devices[];
-extern struct snd_minor snd_pcm_reg[2];
+extern struct file_operations snd_pcm_f_ops[2];
int snd_pcm_new(struct snd_card *card, char *id, int device,
int playback_count, int capture_count,