]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: seq: midi: Convert to snd_seq bus probe mechanism
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Tue, 9 Dec 2025 12:38:44 +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 -ENODEV` 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/054ae56db6b55eea60c8aa8f9633e8d3d180cb09.1765283601.git.u.kleine-koenig@baylibre.com
sound/core/seq/seq_midi.c

index 581e138a3115923c89fb99f56c1a3bdaf3aa71eb..de7ec7d15f23737d20593ee856221cb60de8fe3e 100644 (file)
@@ -265,9 +265,8 @@ static void snd_seq_midisynth_delete(struct seq_midisynth *msynth)
 
 /* register new midi synth port */
 static int
-snd_seq_midisynth_probe(struct device *_dev)
+snd_seq_midisynth_probe(struct snd_seq_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 __free(kfree) = NULL;
@@ -411,10 +410,9 @@ snd_seq_midisynth_probe(struct device *_dev)
 }
 
 /* release midi synth port */
-static int
-snd_seq_midisynth_remove(struct device *_dev)
+static void
+snd_seq_midisynth_remove(struct snd_seq_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;
@@ -423,7 +421,7 @@ snd_seq_midisynth_remove(struct device *_dev)
        guard(mutex)(&register_mutex);
        client = synths[card->number];
        if (client == NULL || client->ports[device] == NULL)
-               return -ENODEV;
+               return;
        ports = client->ports_per_device[device];
        client->ports_per_device[device] = 0;
        msynth = client->ports[device];
@@ -437,14 +435,13 @@ snd_seq_midisynth_remove(struct device *_dev)
                synths[card->number] = NULL;
                kfree(client);
        }
-       return 0;
 }
 
 static struct snd_seq_driver seq_midisynth_driver = {
+       .probe = snd_seq_midisynth_probe,
+       .remove = snd_seq_midisynth_remove,
        .driver = {
                .name = KBUILD_MODNAME,
-               .probe = snd_seq_midisynth_probe,
-               .remove = snd_seq_midisynth_remove,
        },
        .id = SNDRV_SEQ_DEV_ID_MIDISYNTH,
        .argsize = 0,