Lines Matching +full:chip +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0-or-later
4 card-als100.c - driver for Avance Logic ALS100 based soundcards.
5 Copyright (C) 1999-2000 by Massimo Piccioni <dafastidio@libero.it>
6 Copyright (C) 1999-2002 by Massimo Piccioni <dafastidio@libero.it>
10 Generalised for soundcards based on DT-0196 and ALS-007 chips
30 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
31 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ variable
43 module_param_array(id, charp, NULL, 0444);
44 MODULE_PARM_DESC(id, "ID string for Avance Logic based soundcard.");
48 MODULE_ALIAS("snd-dt019x");
54 struct snd_sb *chip; member
59 { .id = "RWB1688",
62 /* DT0196 / ALS-007 */
63 { .id = "ALS0007",
66 /* ALS100 - PRO16PNP */
67 { .id = "ALS0001",
70 /* ALS110 - MF1000 - Digimate 3D Sound */
71 { .id = "ALS0110",
75 { .id = "ALS0120",
79 { .id = "ALS0200",
83 { .id = "ALS0200",
87 { .id = "RTL3000",
90 { .id = "" } /* end */
97 const struct pnp_card_device_id *id) in snd_card_als100_pnp() argument
102 acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); in snd_card_als100_pnp()
103 if (acard->dev == NULL) in snd_card_als100_pnp()
104 return -ENODEV; in snd_card_als100_pnp()
106 acard->devmpu = pnp_request_card_device(card, id->devs[1].id, acard->dev); in snd_card_als100_pnp()
107 acard->devopl = pnp_request_card_device(card, id->devs[2].id, acard->dev); in snd_card_als100_pnp()
109 pdev = acard->dev; in snd_card_als100_pnp()
113 dev_err(&pdev->dev, "AUDIO pnp configure failure\n"); in snd_card_als100_pnp()
117 if (id->driver_data == SB_HW_DT019X) in snd_card_als100_pnp()
125 pdev = acard->devmpu; in snd_card_als100_pnp()
136 dev_err(&pdev->dev, "MPU401 pnp configure failure, skipping\n"); in snd_card_als100_pnp()
138 acard->devmpu = NULL; in snd_card_als100_pnp()
139 mpu_port[dev] = -1; in snd_card_als100_pnp()
142 pdev = acard->devopl; in snd_card_als100_pnp()
152 dev_err(&pdev->dev, "OPL3 pnp configure failure, skipping\n"); in snd_card_als100_pnp()
154 acard->devopl = NULL; in snd_card_als100_pnp()
155 fm_port[dev] = -1; in snd_card_als100_pnp()
166 struct snd_sb *chip; in snd_card_als100_probe() local
171 error = snd_devm_card_new(&pcard->card->dev, in snd_card_als100_probe()
172 index[dev], id[dev], THIS_MODULE, in snd_card_als100_probe()
176 acard = card->private_data; in snd_card_als100_probe()
182 if (pid->driver_data == SB_HW_DT019X) in snd_card_als100_probe()
183 dma16[dev] = -1; in snd_card_als100_probe()
188 pid->driver_data, in snd_card_als100_probe()
189 &chip); in snd_card_als100_probe()
192 acard->chip = chip; in snd_card_als100_probe()
194 if (pid->driver_data == SB_HW_DT019X) { in snd_card_als100_probe()
195 strcpy(card->driver, "DT-019X"); in snd_card_als100_probe()
196 strcpy(card->shortname, "Diamond Tech. DT-019X"); in snd_card_als100_probe()
197 snprintf(card->longname, sizeof(card->longname), in snd_card_als100_probe()
198 "Diamond Tech. DT-019X, %s at 0x%lx, irq %d, dma %d", in snd_card_als100_probe()
199 chip->name, chip->port, irq[dev], dma8[dev]); in snd_card_als100_probe()
201 strcpy(card->driver, "ALS100"); in snd_card_als100_probe()
202 strcpy(card->shortname, "Avance Logic ALS100"); in snd_card_als100_probe()
203 snprintf(card->longname, sizeof(card->longname), in snd_card_als100_probe()
205 chip->name, chip->port, irq[dev], dma8[dev], in snd_card_als100_probe()
209 error = snd_sb16dsp_pcm(chip, 0); in snd_card_als100_probe()
213 error = snd_sbmixer_new(chip); in snd_card_als100_probe()
221 mpu_irq[dev] = -1; in snd_card_als100_probe()
223 if (pid->driver_data == SB_HW_DT019X) in snd_card_als100_probe()
231 dev_err(card->dev, "no MPU-401 device at 0x%lx\n", mpu_port[dev]); in snd_card_als100_probe()
238 dev_err(card->dev, "no OPL device at 0x%lx-0x%lx\n", in snd_card_als100_probe()
260 const struct pnp_card_device_id *id) in snd_als100_pnp_detect() argument
268 res = snd_card_als100_probe(dev, card, id); in snd_als100_pnp_detect()
275 return -ENODEV; in snd_als100_pnp_detect()
282 struct snd_card_als100 *acard = card->private_data; in snd_als100_pnp_suspend()
283 struct snd_sb *chip = acard->chip; in snd_als100_pnp_suspend() local
286 snd_sbmixer_suspend(chip); in snd_als100_pnp_suspend()
293 struct snd_card_als100 *acard = card->private_data; in snd_als100_pnp_resume()
294 struct snd_sb *chip = acard->chip; in snd_als100_pnp_resume() local
296 snd_sbdsp_reset(chip); in snd_als100_pnp_resume()
297 snd_sbmixer_resume(chip); in snd_als100_pnp_resume()
327 return -ENODEV; in alsa_card_als100_init()