aboutsummaryrefslogtreecommitdiffstats
path: root/sound/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'sound/drivers')
-rw-r--r--sound/drivers/Kconfig5
-rw-r--r--sound/drivers/dummy.c4
-rw-r--r--sound/drivers/mpu401/mpu401.c26
-rw-r--r--sound/drivers/mtpav.c3
-rw-r--r--sound/drivers/serial-u16550.c26
-rw-r--r--sound/drivers/virmidi.c4
6 files changed, 46 insertions, 22 deletions
diff --git a/sound/drivers/Kconfig b/sound/drivers/Kconfig
index 3b2bee19e2c0..efcb4eb2d1a0 100644
--- a/sound/drivers/Kconfig
+++ b/sound/drivers/Kconfig
@@ -29,6 +29,7 @@ config SND_DUMMY
29 tristate "Dummy (/dev/null) soundcard" 29 tristate "Dummy (/dev/null) soundcard"
30 depends on SND 30 depends on SND
31 select SND_PCM 31 select SND_PCM
32 select SND_GENERIC_DRIVER
32 help 33 help
33 Say Y here to include the dummy driver. This driver does 34 Say Y here to include the dummy driver. This driver does
34 nothing, but emulates various mixer controls and PCM devices. 35 nothing, but emulates various mixer controls and PCM devices.
@@ -44,6 +45,7 @@ config SND_VIRMIDI
44 depends on SND_SEQUENCER 45 depends on SND_SEQUENCER
45 select SND_TIMER 46 select SND_TIMER
46 select SND_RAWMIDI 47 select SND_RAWMIDI
48 select SND_GENERIC_DRIVER
47 help 49 help
48 Say Y here to include the virtual MIDI driver. This driver 50 Say Y here to include the virtual MIDI driver. This driver
49 allows to connect applications using raw MIDI devices to 51 allows to connect applications using raw MIDI devices to
@@ -59,6 +61,7 @@ config SND_MTPAV
59 depends on SND 61 depends on SND
60 select SND_TIMER 62 select SND_TIMER
61 select SND_RAWMIDI 63 select SND_RAWMIDI
64 select SND_GENERIC_DRIVER
62 help 65 help
63 To use a MOTU MidiTimePiece AV multiport MIDI adapter 66 To use a MOTU MidiTimePiece AV multiport MIDI adapter
64 connected to the parallel port, say Y here and make sure that 67 connected to the parallel port, say Y here and make sure that
@@ -72,6 +75,7 @@ config SND_SERIAL_U16550
72 depends on SND 75 depends on SND
73 select SND_TIMER 76 select SND_TIMER
74 select SND_RAWMIDI 77 select SND_RAWMIDI
78 select SND_GENERIC_DRIVER
75 help 79 help
76 To include support for MIDI serial port interfaces, say Y here 80 To include support for MIDI serial port interfaces, say Y here
77 and read <file:Documentation/sound/alsa/serial-u16550.txt>. 81 and read <file:Documentation/sound/alsa/serial-u16550.txt>.
@@ -88,6 +92,7 @@ config SND_MPU401
88 tristate "Generic MPU-401 UART driver" 92 tristate "Generic MPU-401 UART driver"
89 depends on SND 93 depends on SND
90 select SND_MPU401_UART 94 select SND_MPU401_UART
95 select SND_GENERIC_DRIVER
91 help 96 help
92 Say Y here to include support for MIDI ports compatible with 97 Say Y here to include support for MIDI ports compatible with
93 the Roland MPU-401 interface in UART mode. 98 the Roland MPU-401 interface in UART mode.
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
index a61640cf7ae7..977d98d26a81 100644
--- a/sound/drivers/dummy.c
+++ b/sound/drivers/dummy.c
@@ -600,6 +600,10 @@ static int __init snd_card_dummy_probe(int dev)
600 strcpy(card->driver, "Dummy"); 600 strcpy(card->driver, "Dummy");
601 strcpy(card->shortname, "Dummy"); 601 strcpy(card->shortname, "Dummy");
602 sprintf(card->longname, "Dummy %i", dev + 1); 602 sprintf(card->longname, "Dummy %i", dev + 1);
603
604 if ((err = snd_card_set_generic_dev(card)) < 0)
605 goto __nodev;
606
603 if ((err = snd_card_register(card)) == 0) { 607 if ((err = snd_card_register(card)) == 0) {
604 snd_dummy_cards[dev] = card; 608 snd_dummy_cards[dev] = card;
605 return 0; 609 return 0;
diff --git a/sound/drivers/mpu401/mpu401.c b/sound/drivers/mpu401/mpu401.c
index cb36ecb78697..54e2ff9b5ca1 100644
--- a/sound/drivers/mpu401/mpu401.c
+++ b/sound/drivers/mpu401/mpu401.c
@@ -77,20 +77,26 @@ static int snd_mpu401_create(int dev, snd_card_t **rcard)
77 strcat(card->longname, "polled"); 77 strcat(card->longname, "polled");
78 } 78 }
79 79
80 if (snd_mpu401_uart_new(card, 0, 80 if ((err = snd_mpu401_uart_new(card, 0,
81 MPU401_HW_MPU401, 81 MPU401_HW_MPU401,
82 port[dev], 0, 82 port[dev], 0,
83 irq[dev], irq[dev] >= 0 ? SA_INTERRUPT : 0, NULL) < 0) { 83 irq[dev], irq[dev] >= 0 ? SA_INTERRUPT : 0, NULL)) < 0) {
84 printk(KERN_ERR "MPU401 not detected at 0x%lx\n", port[dev]); 84 printk(KERN_ERR "MPU401 not detected at 0x%lx\n", port[dev]);
85 snd_card_free(card); 85 goto _err;
86 return -ENODEV;
87 }
88 if ((err = snd_card_register(card)) < 0) {
89 snd_card_free(card);
90 return err;
91 } 86 }
87
88 if ((err = snd_card_set_generic_dev(card)) < 0)
89 goto _err;
90
91 if ((err = snd_card_register(card)) < 0)
92 goto _err;
93
92 *rcard = card; 94 *rcard = card;
93 return 0; 95 return 0;
96
97 _err:
98 snd_card_free(card);
99 return err;
94} 100}
95 101
96static int __devinit snd_mpu401_probe(int dev) 102static int __devinit snd_mpu401_probe(int dev)
diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
index 1280a57c49eb..b8199d20be82 100644
--- a/sound/drivers/mtpav.c
+++ b/sound/drivers/mtpav.c
@@ -757,6 +757,9 @@ static int __init alsa_card_mtpav_init(void)
757 if (err < 0) 757 if (err < 0)
758 goto __error; 758 goto __error;
759 759
760 if ((err = snd_card_set_generic_dev(mtp_card->card)) < 0)
761 goto __error;
762
760 err = snd_card_register(mtp_card->card); // don't snd_card_register until AFTER all cards reources done! 763 err = snd_card_register(mtp_card->card); // don't snd_card_register until AFTER all cards reources done!
761 764
762 //printk("snd_card_register returned %d\n", err); 765 //printk("snd_card_register returned %d\n", err);
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
index 986df35fb829..fd3bb9dd1d24 100644
--- a/sound/drivers/serial-u16550.c
+++ b/sound/drivers/serial-u16550.c
@@ -928,15 +928,11 @@ static int __init snd_serial_probe(int dev)
928 base[dev], 928 base[dev],
929 adaptor[dev], 929 adaptor[dev],
930 droponfull[dev], 930 droponfull[dev],
931 &uart)) < 0) { 931 &uart)) < 0)
932 snd_card_free(card); 932 goto _err;
933 return err;
934 }
935 933
936 if ((err = snd_uart16550_rmidi(uart, 0, outs[dev], ins[dev], &uart->rmidi)) < 0) { 934 if ((err = snd_uart16550_rmidi(uart, 0, outs[dev], ins[dev], &uart->rmidi)) < 0)
937 snd_card_free(card); 935 goto _err;
938 return err;
939 }
940 936
941 sprintf(card->longname, "%s at 0x%lx, irq %d speed %d div %d outs %d ins %d adaptor %s droponfull %d", 937 sprintf(card->longname, "%s at 0x%lx, irq %d speed %d div %d outs %d ins %d adaptor %s droponfull %d",
942 card->shortname, 938 card->shortname,
@@ -949,12 +945,18 @@ static int __init snd_serial_probe(int dev)
949 adaptor_names[uart->adaptor], 945 adaptor_names[uart->adaptor],
950 uart->drop_on_full); 946 uart->drop_on_full);
951 947
952 if ((err = snd_card_register(card)) < 0) { 948 if ((err = snd_card_set_generic_dev(card)) < 0)
953 snd_card_free(card); 949 goto _err;
954 return err; 950
955 } 951 if ((err = snd_card_register(card)) < 0)
952 goto _err;
953
956 snd_serial_cards[dev] = card; 954 snd_serial_cards[dev] = card;
957 return 0; 955 return 0;
956
957 _err:
958 snd_card_free(card);
959 return err;
958} 960}
959 961
960static int __init alsa_card_serial_init(void) 962static int __init alsa_card_serial_init(void)
diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c
index 5937711e9505..af12185ab8a2 100644
--- a/sound/drivers/virmidi.c
+++ b/sound/drivers/virmidi.c
@@ -116,6 +116,10 @@ static int __init snd_card_virmidi_probe(int dev)
116 strcpy(card->driver, "VirMIDI"); 116 strcpy(card->driver, "VirMIDI");
117 strcpy(card->shortname, "VirMIDI"); 117 strcpy(card->shortname, "VirMIDI");
118 sprintf(card->longname, "Virtual MIDI Card %i", dev + 1); 118 sprintf(card->longname, "Virtual MIDI Card %i", dev + 1);
119
120 if ((err = snd_card_set_generic_dev(card)) < 0)
121 goto __nodev;
122
119 if ((err = snd_card_register(card)) == 0) { 123 if ((err = snd_card_register(card)) == 0) {
120 snd_virmidi_cards[dev] = card; 124 snd_virmidi_cards[dev] = card;
121 return 0; 125 return 0;