aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/cs423x/cs4236.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/isa/cs423x/cs4236.c')
-rw-r--r--sound/isa/cs423x/cs4236.c51
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
136struct snd_card_cs4236 { 136struct 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) {