diff options
Diffstat (limited to 'sound/isa/cs423x/cs4236.c')
-rw-r--r-- | sound/isa/cs423x/cs4236.c | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c index 4d4b8ddc26ba..91f9c15d3e30 100644 --- a/sound/isa/cs423x/cs4236.c +++ b/sound/isa/cs423x/cs4236.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include <linux/pnp.h> | 26 | #include <linux/pnp.h> |
27 | #include <linux/moduleparam.h> | 27 | #include <linux/moduleparam.h> |
28 | #include <sound/core.h> | 28 | #include <sound/core.h> |
29 | #include <sound/cs4231.h> | 29 | #include <sound/wss.h> |
30 | #include <sound/mpu401.h> | 30 | #include <sound/mpu401.h> |
31 | #include <sound/opl3.h> | 31 | #include <sound/opl3.h> |
32 | #include <sound/initval.h> | 32 | #include <sound/initval.h> |
@@ -134,7 +134,7 @@ static int pnp_registered; | |||
134 | #endif /* CONFIG_PNP */ | 134 | #endif /* CONFIG_PNP */ |
135 | 135 | ||
136 | struct snd_card_cs4236 { | 136 | struct snd_card_cs4236 { |
137 | struct snd_cs4231 *chip; | 137 | struct snd_wss *chip; |
138 | struct resource *res_sb_port; | 138 | struct resource *res_sb_port; |
139 | #ifdef CONFIG_PNP | 139 | #ifdef CONFIG_PNP |
140 | struct pnp_dev *wss; | 140 | struct pnp_dev *wss; |
@@ -239,6 +239,8 @@ static struct pnp_card_device_id snd_cs423x_pnpids[] = { | |||
239 | { .id = "CSC9836", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } }, | 239 | { .id = "CSC9836", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } }, |
240 | /* Gallant SC-70P */ | 240 | /* Gallant SC-70P */ |
241 | { .id = "CSC9837", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } }, | 241 | { .id = "CSC9837", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } }, |
242 | /* Techmakers MF-4236PW */ | ||
243 | { .id = "CSCa736", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } }, | ||
242 | /* TerraTec AudioSystem EWS64XL - CS4236B */ | 244 | /* TerraTec AudioSystem EWS64XL - CS4236B */ |
243 | { .id = "CSCa836", .devs = { { "CSCa800" }, { "CSCa810" }, { "CSCa803" } } }, | 245 | { .id = "CSCa836", .devs = { { "CSCa800" }, { "CSCa810" }, { "CSCa803" } } }, |
244 | /* TerraTec AudioSystem EWS64XL - CS4236B */ | 246 | /* TerraTec AudioSystem EWS64XL - CS4236B */ |
@@ -396,7 +398,7 @@ static int __devinit snd_cs423x_probe(struct snd_card *card, int dev) | |||
396 | { | 398 | { |
397 | struct snd_card_cs4236 *acard; | 399 | struct snd_card_cs4236 *acard; |
398 | struct snd_pcm *pcm; | 400 | struct snd_pcm *pcm; |
399 | struct snd_cs4231 *chip; | 401 | struct snd_wss *chip; |
400 | struct snd_opl3 *opl3; | 402 | struct snd_opl3 *opl3; |
401 | int err; | 403 | int err; |
402 | 404 | ||
@@ -408,41 +410,37 @@ static int __devinit snd_cs423x_probe(struct snd_card *card, int dev) | |||
408 | } | 410 | } |
409 | 411 | ||
410 | #ifdef CS4232 | 412 | #ifdef CS4232 |
411 | if ((err = snd_cs4231_create(card, | 413 | err = snd_wss_create(card, port[dev], cport[dev], |
412 | port[dev], | 414 | irq[dev], |
413 | cport[dev], | 415 | dma1[dev], dma2[dev], |
414 | irq[dev], | 416 | WSS_HW_DETECT, 0, &chip); |
415 | dma1[dev], | 417 | if (err < 0) |
416 | dma2[dev], | ||
417 | CS4231_HW_DETECT, | ||
418 | 0, | ||
419 | &chip)) < 0) | ||
420 | return err; | 418 | return err; |
421 | acard->chip = chip; | 419 | acard->chip = chip; |
422 | 420 | ||
423 | if ((err = snd_cs4231_pcm(chip, 0, &pcm)) < 0) | 421 | err = snd_wss_pcm(chip, 0, &pcm); |
422 | if (err < 0) | ||
424 | return err; | 423 | return err; |
425 | 424 | ||
426 | if ((err = snd_cs4231_mixer(chip)) < 0) | 425 | err = snd_wss_mixer(chip); |
426 | if (err < 0) | ||
427 | return err; | 427 | return err; |
428 | 428 | ||
429 | #else /* CS4236 */ | 429 | #else /* CS4236 */ |
430 | if ((err = snd_cs4236_create(card, | 430 | err = snd_cs4236_create(card, |
431 | port[dev], | 431 | port[dev], cport[dev], |
432 | cport[dev], | 432 | irq[dev], dma1[dev], dma2[dev], |
433 | irq[dev], | 433 | WSS_HW_DETECT, 0, &chip); |
434 | dma1[dev], | 434 | if (err < 0) |
435 | dma2[dev], | ||
436 | CS4231_HW_DETECT, | ||
437 | 0, | ||
438 | &chip)) < 0) | ||
439 | return err; | 435 | return err; |
440 | acard->chip = chip; | 436 | acard->chip = chip; |
441 | 437 | ||
442 | if ((err = snd_cs4236_pcm(chip, 0, &pcm)) < 0) | 438 | err = snd_cs4236_pcm(chip, 0, &pcm); |
439 | if (err < 0) | ||
443 | return err; | 440 | return err; |
444 | 441 | ||
445 | if ((err = snd_cs4236_mixer(chip)) < 0) | 442 | err = snd_cs4236_mixer(chip); |
443 | if (err < 0) | ||
446 | return err; | 444 | return err; |
447 | #endif | 445 | #endif |
448 | strcpy(card->driver, pcm->name); | 446 | strcpy(card->driver, pcm->name); |
@@ -455,7 +453,8 @@ static int __devinit snd_cs423x_probe(struct snd_card *card, int dev) | |||
455 | if (dma2[dev] >= 0) | 453 | if (dma2[dev] >= 0) |
456 | sprintf(card->longname + strlen(card->longname), "&%d", dma2[dev]); | 454 | sprintf(card->longname + strlen(card->longname), "&%d", dma2[dev]); |
457 | 455 | ||
458 | if ((err = snd_cs4231_timer(chip, 0, NULL)) < 0) | 456 | err = snd_wss_timer(chip, 0, NULL); |
457 | if (err < 0) | ||
459 | return err; | 458 | return err; |
460 | 459 | ||
461 | if (fm_port[dev] > 0 && fm_port[dev] != SNDRV_AUTO_PORT) { | 460 | if (fm_port[dev] > 0 && fm_port[dev] != SNDRV_AUTO_PORT) { |