ALSA: seq: Handle the device directly
authorTakashi Iwai <tiwai@suse.de>
Fri, 30 Jan 2015 07:04:21 +0000 (08:04 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 2 Feb 2015 13:42:45 +0000 (14:42 +0100)
Like the previous change for the timer device, this patch changes the
device management for the ALSA sequencer device using the struct
device directly.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/seq_clientmgr.c

index 225c73152ee9e5896c06a3b7f1fbb16095bb5bd2..65b320ec66f18ac2ec90baffa492a701778828d8 100644 (file)
@@ -2571,6 +2571,8 @@ static const struct file_operations snd_seq_f_ops =
        .compat_ioctl = snd_seq_ioctl_compat,
 };
 
+static struct device seq_dev;
+
 /* 
  * register sequencer device 
  */
@@ -2578,12 +2580,18 @@ int __init snd_sequencer_device_init(void)
 {
        int err;
 
+       snd_device_initialize(&seq_dev, NULL);
+       dev_set_name(&seq_dev, "seq");
+
        if (mutex_lock_interruptible(&register_mutex))
                return -ERESTARTSYS;
 
-       if ((err = snd_register_device(SNDRV_DEVICE_TYPE_SEQUENCER, NULL, 0,
-                                      &snd_seq_f_ops, NULL, "seq")) < 0) {
+       err = snd_register_device_for_dev(SNDRV_DEVICE_TYPE_SEQUENCER, NULL, 0,
+                                         &snd_seq_f_ops, NULL,
+                                         &seq_dev, NULL, NULL);
+       if (err < 0) {
                mutex_unlock(&register_mutex);
+               put_device(&seq_dev);
                return err;
        }
        
@@ -2600,4 +2608,5 @@ int __init snd_sequencer_device_init(void)
 void __exit snd_sequencer_device_done(void)
 {
        snd_unregister_device(SNDRV_DEVICE_TYPE_SEQUENCER, NULL, 0);
+       put_device(&seq_dev);
 }