diff options
Diffstat (limited to 'sound/core')
| -rw-r--r-- | sound/core/seq/seq.c | 4 | ||||
| -rw-r--r-- | sound/core/sound.c | 18 | ||||
| -rw-r--r-- | sound/core/timer.c | 3 | 
3 files changed, 20 insertions, 5 deletions
diff --git a/sound/core/seq/seq.c b/sound/core/seq/seq.c index bf09a5ad186..119fddb6fc9 100644 --- a/sound/core/seq/seq.c +++ b/sound/core/seq/seq.c @@ -32,6 +32,7 @@  #include "seq_timer.h"  #include "seq_system.h"  #include "seq_info.h" +#include <sound/minors.h>  #include <sound/seq_device.h>  #if defined(CONFIG_SND_SEQ_DUMMY_MODULE) @@ -73,6 +74,9 @@ MODULE_PARM_DESC(seq_default_timer_subdevice, "The default timer subdevice numbe  module_param(seq_default_timer_resolution, int, 0644);  MODULE_PARM_DESC(seq_default_timer_resolution, "The default timer resolution in Hz."); +MODULE_ALIAS_CHARDEV(CONFIG_SND_MAJOR, SNDRV_MINOR_SEQUENCER); +MODULE_ALIAS("devname:snd/seq"); +  /*   *  INIT PART   */ diff --git a/sound/core/sound.c b/sound/core/sound.c index 62a093efb45..345caea2d74 100644 --- a/sound/core/sound.c +++ b/sound/core/sound.c @@ -189,14 +189,22 @@ static const struct file_operations snd_fops =  };  #ifdef CONFIG_SND_DYNAMIC_MINORS -static int snd_find_free_minor(void) +static int snd_find_free_minor(int type)  {  	int minor; +	/* static minors for module auto loading */ +	if (type == SNDRV_DEVICE_TYPE_SEQUENCER) +		return SNDRV_MINOR_SEQUENCER; +	if (type == SNDRV_DEVICE_TYPE_TIMER) +		return SNDRV_MINOR_TIMER; +  	for (minor = 0; minor < ARRAY_SIZE(snd_minors); ++minor) { -		/* skip minors still used statically for autoloading devices */ -		if (SNDRV_MINOR_DEVICE(minor) == SNDRV_MINOR_CONTROL || -		    minor == SNDRV_MINOR_SEQUENCER) +		/* skip static minors still used for module auto loading */ +		if (SNDRV_MINOR_DEVICE(minor) == SNDRV_MINOR_CONTROL) +			continue; +		if (minor == SNDRV_MINOR_SEQUENCER || +		    minor == SNDRV_MINOR_TIMER)  			continue;  		if (!snd_minors[minor])  			return minor; @@ -270,7 +278,7 @@ int snd_register_device_for_dev(int type, struct snd_card *card, int dev,  	preg->private_data = private_data;  	mutex_lock(&sound_mutex);  #ifdef CONFIG_SND_DYNAMIC_MINORS -	minor = snd_find_free_minor(); +	minor = snd_find_free_minor(type);  #else  	minor = snd_kernel_minor(type, card, dev);  	if (minor >= 0 && snd_minors[minor]) diff --git a/sound/core/timer.c b/sound/core/timer.c index b3aaa600dcc..ed016329e91 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -52,6 +52,9 @@ MODULE_PARM_DESC(timer_limit, "Maximum global timers in system.");  module_param(timer_tstamp_monotonic, int, 0444);  MODULE_PARM_DESC(timer_tstamp_monotonic, "Use posix monotonic clock source for timestamps (default)."); +MODULE_ALIAS_CHARDEV(CONFIG_SND_MAJOR, SNDRV_MINOR_TIMER); +MODULE_ALIAS("devname:snd/timer"); +  struct snd_timer_user {  	struct snd_timer_instance *timeri;  	int tread;		/* enhanced read with timestamps and events */  |