]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: seq: oss: Convert to snd_seq bus probe mechanism
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Tue, 9 Dec 2025 12:38:50 +0000 (13:38 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sun, 14 Dec 2025 10:08:09 +0000 (11:08 +0100)
The snd_seq bus got a dedicated probe function. Make use of that. This
fixes a runtime warning about the driver needing to be converted to the
bus probe method.

Note that the remove callback returns void now. The actual return value
was ignored before (see device_remove() in drivers/base/dd.c), so there
is no problem introduced by converting `return -EINVAL` to `return`.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/affb5a7107e9d678ce85dc7f0b87445928cd6b94.1765283601.git.u.kleine-koenig@baylibre.com
sound/core/seq/oss/seq_oss.c
sound/core/seq/oss/seq_oss_synth.c
sound/core/seq/oss/seq_oss_synth.h

index 02d30d8b6c3a82b0e60e852131117924bae47c5a..021cd70f90db1208b56369ddaa9bb9f3534220f0 100644 (file)
@@ -54,10 +54,10 @@ static __poll_t odev_poll(struct file *file, poll_table * wait);
  */
 
 static struct snd_seq_driver seq_oss_synth_driver = {
+       .probe = snd_seq_oss_synth_probe,
+       .remove = snd_seq_oss_synth_remove,
        .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),
index 8c4e5913c7e69a9f847d1d24e7521432ead115d3..68bc6d4eed53b855fc14ed5cd0d4126b23bfc712 100644 (file)
@@ -80,9 +80,8 @@ snd_seq_oss_synth_init(void)
  * registration of the synth device
  */
 int
-snd_seq_oss_synth_probe(struct device *_dev)
+snd_seq_oss_synth_probe(struct snd_seq_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);
@@ -128,10 +127,9 @@ snd_seq_oss_synth_probe(struct device *_dev)
 }
 
 
-int
-snd_seq_oss_synth_remove(struct device *_dev)
+void
+snd_seq_oss_synth_remove(struct snd_seq_device *dev)
 {
-       struct snd_seq_device *dev = to_seq_dev(_dev);
        int index;
        struct seq_oss_synth *rec = dev->driver_data;
 
@@ -142,7 +140,7 @@ snd_seq_oss_synth_remove(struct device *_dev)
                }
                if (index >= max_synth_devs) {
                        pr_err("ALSA: seq_oss: can't unregister synth\n");
-                       return -EINVAL;
+                       return;
                }
                synth_devs[index] = NULL;
                if (index == max_synth_devs - 1) {
@@ -160,8 +158,6 @@ snd_seq_oss_synth_remove(struct device *_dev)
 
        snd_use_lock_sync(&rec->use_lock);
        kfree(rec);
-
-       return 0;
 }
 
 
index ffc40d8a7ef14ac2af7a5a2c9b93e46183a1be33..f52283904cba068662529f6e51746c32a193fdb2 100644 (file)
@@ -15,8 +15,8 @@
 #include <sound/seq_device.h>
 
 void snd_seq_oss_synth_init(void);
-int snd_seq_oss_synth_probe(struct device *dev);
-int snd_seq_oss_synth_remove(struct device *dev);
+int snd_seq_oss_synth_probe(struct snd_seq_device *dev);
+void snd_seq_oss_synth_remove(struct snd_seq_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);