Skip to content

Commit 16dab54

Browse files
tiwaiJaroslav Kysela
authored andcommitted
[ALSA] Add snd_card_set_generic_dev() call
ARM,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,MIPS MIPS AU1x00 driver,PPC,PPC PowerMac driver,SPARC,SPARC AMD7930 driver SPARC cs4231 driver,SPARC DBRI driver - Added snd_card_set_generic_dev() call. - Added SND_GENERIC_DRIVER to Kconfig. - Clean up the error path in probe if necessary. Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent ecbcfe3 commit 16dab54

File tree

16 files changed

+84
-38
lines changed

16 files changed

+84
-38
lines changed

sound/arm/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ config SND_SA11XX_UDA1341
77
tristate "SA11xx UDA1341TS driver (iPaq H3600)"
88
depends on ARCH_SA1100 && SND && L3
99
select SND_PCM
10+
select SND_GENERIC_DRIVER
1011
help
1112
Say Y here if you have a Compaq iPaq H3x00 handheld computer
1213
and want to use its Philips UDA 1341 audio chip.

sound/arm/sa11xx-uda1341.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* merged HAL layer (patches from Brian)
2222
*/
2323

24-
/* $Id: sa11xx-uda1341.c,v 1.21 2005/01/28 19:34:04 tiwai Exp $ */
24+
/* $Id: sa11xx-uda1341.c,v 1.22 2005/09/05 16:17:58 tiwai Exp $ */
2525

2626
/***************************************************************************************************
2727
*
@@ -946,6 +946,9 @@ static int __init sa11xx_uda1341_init(void)
946946
strcpy(card->shortname, "H3600 UDA1341TS");
947947
sprintf(card->longname, "Compaq iPAQ H3600 with Philips UDA1341TS");
948948

949+
if ((err = snd_card_set_generic_dev(card)) < 0)
950+
goto nodev;
951+
949952
if ((err = snd_card_register(card)) == 0) {
950953
printk( KERN_INFO "iPAQ audio support initialized\n" );
951954
return 0;

sound/drivers/Kconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ config SND_DUMMY
2929
tristate "Dummy (/dev/null) soundcard"
3030
depends on SND
3131
select SND_PCM
32+
select SND_GENERIC_DRIVER
3233
help
3334
Say Y here to include the dummy driver. This driver does
3435
nothing, but emulates various mixer controls and PCM devices.
@@ -44,6 +45,7 @@ config SND_VIRMIDI
4445
depends on SND_SEQUENCER
4546
select SND_TIMER
4647
select SND_RAWMIDI
48+
select SND_GENERIC_DRIVER
4749
help
4850
Say Y here to include the virtual MIDI driver. This driver
4951
allows to connect applications using raw MIDI devices to
@@ -59,6 +61,7 @@ config SND_MTPAV
5961
depends on SND
6062
select SND_TIMER
6163
select SND_RAWMIDI
64+
select SND_GENERIC_DRIVER
6265
help
6366
To use a MOTU MidiTimePiece AV multiport MIDI adapter
6467
connected to the parallel port, say Y here and make sure that
@@ -72,6 +75,7 @@ config SND_SERIAL_U16550
7275
depends on SND
7376
select SND_TIMER
7477
select SND_RAWMIDI
78+
select SND_GENERIC_DRIVER
7579
help
7680
To include support for MIDI serial port interfaces, say Y here
7781
and read <file:Documentation/sound/alsa/serial-u16550.txt>.
@@ -88,6 +92,7 @@ config SND_MPU401
8892
tristate "Generic MPU-401 UART driver"
8993
depends on SND
9094
select SND_MPU401_UART
95+
select SND_GENERIC_DRIVER
9196
help
9297
Say Y here to include support for MIDI ports compatible with
9398
the Roland MPU-401 interface in UART mode.

sound/drivers/dummy.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,10 @@ static int __init snd_card_dummy_probe(int dev)
600600
strcpy(card->driver, "Dummy");
601601
strcpy(card->shortname, "Dummy");
602602
sprintf(card->longname, "Dummy %i", dev + 1);
603+
604+
if ((err = snd_card_set_generic_dev(card)) < 0)
605+
goto __nodev;
606+
603607
if ((err = snd_card_register(card)) == 0) {
604608
snd_dummy_cards[dev] = card;
605609
return 0;

sound/drivers/mpu401/mpu401.c

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,26 @@ static int snd_mpu401_create(int dev, snd_card_t **rcard)
7777
strcat(card->longname, "polled");
7878
}
7979

80-
if (snd_mpu401_uart_new(card, 0,
81-
MPU401_HW_MPU401,
82-
port[dev], 0,
83-
irq[dev], irq[dev] >= 0 ? SA_INTERRUPT : 0, NULL) < 0) {
80+
if ((err = snd_mpu401_uart_new(card, 0,
81+
MPU401_HW_MPU401,
82+
port[dev], 0,
83+
irq[dev], irq[dev] >= 0 ? SA_INTERRUPT : 0, NULL)) < 0) {
8484
printk(KERN_ERR "MPU401 not detected at 0x%lx\n", port[dev]);
85-
snd_card_free(card);
86-
return -ENODEV;
87-
}
88-
if ((err = snd_card_register(card)) < 0) {
89-
snd_card_free(card);
90-
return err;
85+
goto _err;
9186
}
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+
9294
*rcard = card;
9395
return 0;
96+
97+
_err:
98+
snd_card_free(card);
99+
return err;
94100
}
95101

96102
static int __devinit snd_mpu401_probe(int dev)

sound/drivers/mtpav.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,9 @@ static int __init alsa_card_mtpav_init(void)
757757
if (err < 0)
758758
goto __error;
759759

760+
if ((err = snd_card_set_generic_dev(mtp_card->card)) < 0)
761+
goto __error;
762+
760763
err = snd_card_register(mtp_card->card); // don't snd_card_register until AFTER all cards reources done!
761764

762765
//printk("snd_card_register returned %d\n", err);

sound/drivers/serial-u16550.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -928,15 +928,11 @@ static int __init snd_serial_probe(int dev)
928928
base[dev],
929929
adaptor[dev],
930930
droponfull[dev],
931-
&uart)) < 0) {
932-
snd_card_free(card);
933-
return err;
934-
}
931+
&uart)) < 0)
932+
goto _err;
935933

936-
if ((err = snd_uart16550_rmidi(uart, 0, outs[dev], ins[dev], &uart->rmidi)) < 0) {
937-
snd_card_free(card);
938-
return err;
939-
}
934+
if ((err = snd_uart16550_rmidi(uart, 0, outs[dev], ins[dev], &uart->rmidi)) < 0)
935+
goto _err;
940936

941937
sprintf(card->longname, "%s at 0x%lx, irq %d speed %d div %d outs %d ins %d adaptor %s droponfull %d",
942938
card->shortname,
@@ -949,12 +945,18 @@ static int __init snd_serial_probe(int dev)
949945
adaptor_names[uart->adaptor],
950946
uart->drop_on_full);
951947

952-
if ((err = snd_card_register(card)) < 0) {
953-
snd_card_free(card);
954-
return err;
955-
}
948+
if ((err = snd_card_set_generic_dev(card)) < 0)
949+
goto _err;
950+
951+
if ((err = snd_card_register(card)) < 0)
952+
goto _err;
953+
956954
snd_serial_cards[dev] = card;
957955
return 0;
956+
957+
_err:
958+
snd_card_free(card);
959+
return err;
958960
}
959961

960962
static int __init alsa_card_serial_init(void)

sound/drivers/virmidi.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ static int __init snd_card_virmidi_probe(int dev)
116116
strcpy(card->driver, "VirMIDI");
117117
strcpy(card->shortname, "VirMIDI");
118118
sprintf(card->longname, "Virtual MIDI Card %i", dev + 1);
119+
120+
if ((err = snd_card_set_generic_dev(card)) < 0)
121+
goto __nodev;
122+
119123
if ((err = snd_card_register(card)) == 0) {
120124
snd_virmidi_cards[dev] = card;
121125
return 0;

sound/mips/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ config SND_AU1X00
88
depends on (SOC_AU1000 || SOC_AU1100 || SOC_AU1500) && SND
99
select SND_PCM
1010
select SND_AC97_CODEC
11+
select SND_GENERIC_DRIVER
1112
help
1213
ALSA Sound driver for the Au1x00's AC97 port.
1314

sound/mips/au1x00.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,11 @@ au1000_init(void)
667667
strcpy(au1000->card->shortname, "Au1000-AC97");
668668
sprintf(au1000->card->longname, "AMD Au1000--AC97 ALSA Driver");
669669

670+
if ((err = snd_card_set_generic_dev(au1000->card)) < 0) {
671+
snd_card_free(au1000->card);
672+
return err;
673+
}
674+
670675
if ((err = snd_card_register(au1000->card)) < 0) {
671676
snd_card_free(au1000->card);
672677
return err;

0 commit comments

Comments
 (0)