diff options
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/seq/seq_midi.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c index f873742c6532..1daa5b069c79 100644 --- a/sound/core/seq/seq_midi.c +++ b/sound/core/seq/seq_midi.c | |||
@@ -278,6 +278,7 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) | |||
278 | struct seq_midisynth *msynth, *ms; | 278 | struct seq_midisynth *msynth, *ms; |
279 | struct snd_seq_port_info *port; | 279 | struct snd_seq_port_info *port; |
280 | struct snd_rawmidi_info *info; | 280 | struct snd_rawmidi_info *info; |
281 | struct snd_rawmidi *rmidi = dev->private_data; | ||
281 | int newclient = 0; | 282 | int newclient = 0; |
282 | unsigned int p, ports; | 283 | unsigned int p, ports; |
283 | struct snd_seq_port_callback pcallbacks; | 284 | struct snd_seq_port_callback pcallbacks; |
@@ -389,6 +390,8 @@ snd_seq_midisynth_register_port(struct snd_seq_device *dev) | |||
389 | pcallbacks.unuse = midisynth_unuse; | 390 | pcallbacks.unuse = midisynth_unuse; |
390 | pcallbacks.event_input = event_process_midi; | 391 | pcallbacks.event_input = event_process_midi; |
391 | port->kernel = &pcallbacks; | 392 | port->kernel = &pcallbacks; |
393 | if (rmidi->ops && rmidi->ops->get_port_info) | ||
394 | rmidi->ops->get_port_info(rmidi, p, port); | ||
392 | if (snd_seq_kernel_client_ctl(client->seq_client, SNDRV_SEQ_IOCTL_CREATE_PORT, port)<0) | 395 | if (snd_seq_kernel_client_ctl(client->seq_client, SNDRV_SEQ_IOCTL_CREATE_PORT, port)<0) |
393 | goto __nomem; | 396 | goto __nomem; |
394 | ms->seq_client = client->seq_client; | 397 | ms->seq_client = client->seq_client; |