Lines Matching +full:auto +full:- +full:detect
1 // SPDX-License-Identifier: GPL-2.0-or-later
18 MODULE_DESCRIPTION("Yamaha DS-1 PCI");
27 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
38 MODULE_PARM_DESC(index, "Index value for the Yamaha DS-1 PCI soundcard.");
40 MODULE_PARM_DESC(id, "ID string for the Yamaha DS-1 PCI soundcard.");
42 MODULE_PARM_DESC(enable, "Enable Yamaha DS-1 soundcard.");
44 MODULE_PARM_DESC(mpu_port, "MPU-401 Port.");
46 MODULE_PARM_DESC(fm_port, "FM OPL-3 Port.");
52 MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch");
75 return -ENODEV; in snd_ymfpci_create_gameport()
77 if (chip->pci->device >= 0x0010) { /* YMF 744/754 */ in snd_ymfpci_create_gameport()
80 /* auto-detect */ in snd_ymfpci_create_gameport()
81 if (!(io_port = pci_resource_start(chip->pci, 2))) in snd_ymfpci_create_gameport()
82 return -ENODEV; in snd_ymfpci_create_gameport()
86 /* auto-detect */ in snd_ymfpci_create_gameport()
94 dev_err(chip->card->dev, in snd_ymfpci_create_gameport()
96 return -EBUSY; in snd_ymfpci_create_gameport()
105 dev_err(chip->card->dev, in snd_ymfpci_create_gameport()
107 return -EINVAL; in snd_ymfpci_create_gameport()
112 dev_err(chip->card->dev, in snd_ymfpci_create_gameport()
114 return -EBUSY; in snd_ymfpci_create_gameport()
117 chip->gameport = gp = gameport_allocate_port(); in snd_ymfpci_create_gameport()
119 dev_err(chip->card->dev, in snd_ymfpci_create_gameport()
122 return -ENOMEM; in snd_ymfpci_create_gameport()
127 gameport_set_phys(gp, "pci%s/gameport0", pci_name(chip->pci)); in snd_ymfpci_create_gameport()
128 gameport_set_dev_parent(gp, &chip->pci->dev); in snd_ymfpci_create_gameport()
129 gp->io = io_port; in snd_ymfpci_create_gameport()
132 if (chip->pci->device >= 0x0010) /* YMF 744/754 */ in snd_ymfpci_create_gameport()
133 pci_write_config_word(chip->pci, PCIR_DSXG_JOYBASE, io_port); in snd_ymfpci_create_gameport()
135 pci_write_config_word(chip->pci, PCIR_DSXG_LEGACY, legacy_ctrl | YMFPCI_LEGACY_JPEN); in snd_ymfpci_create_gameport()
136 pci_write_config_word(chip->pci, PCIR_DSXG_ELEGACY, legacy_ctrl2); in snd_ymfpci_create_gameport()
138 gameport_register_port(chip->gameport); in snd_ymfpci_create_gameport()
145 if (chip->gameport) { in snd_ymfpci_free_gameport()
146 struct resource *r = gameport_get_port_data(chip->gameport); in snd_ymfpci_free_gameport()
148 gameport_unregister_port(chip->gameport); in snd_ymfpci_free_gameport()
149 chip->gameport = NULL; in snd_ymfpci_free_gameport()
155 …int snd_ymfpci_create_gameport(struct snd_ymfpci *chip, int dev, int l, int l2) { return -ENOSYS; } in snd_ymfpci_create_gameport()
173 return -ENODEV; in snd_card_ymfpci_probe()
176 return -ENOENT; in snd_card_ymfpci_probe()
179 err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, in snd_card_ymfpci_probe()
184 switch (pci_id->device) { in snd_card_ymfpci_probe()
185 case 0x0004: str = "YMF724"; model = "DS-1"; break; in snd_card_ymfpci_probe()
186 case 0x000d: str = "YMF724F"; model = "DS-1"; break; in snd_card_ymfpci_probe()
187 case 0x000a: str = "YMF740"; model = "DS-1L"; break; in snd_card_ymfpci_probe()
188 case 0x000c: str = "YMF740C"; model = "DS-1L"; break; in snd_card_ymfpci_probe()
189 case 0x0010: str = "YMF744"; model = "DS-1S"; break; in snd_card_ymfpci_probe()
190 case 0x0012: str = "YMF754"; model = "DS-1E"; break; in snd_card_ymfpci_probe()
197 if (pci_id->device >= 0x0010) { /* YMF 744/754 */ in snd_card_ymfpci_probe()
199 /* auto-detect */ in snd_card_ymfpci_probe()
208 /* auto-detect */ in snd_card_ymfpci_probe()
260 chip->fm_res = fm_res; in snd_card_ymfpci_probe()
261 chip->mpu_res = mpu_res; in snd_card_ymfpci_probe()
262 card->private_data = chip; in snd_card_ymfpci_probe()
264 strcpy(card->driver, str); in snd_card_ymfpci_probe()
265 sprintf(card->shortname, "Yamaha %s (%s)", model, str); in snd_card_ymfpci_probe()
266 sprintf(card->longname, "%s at 0x%lx, irq %i", in snd_card_ymfpci_probe()
267 card->shortname, in snd_card_ymfpci_probe()
268 chip->reg_area_phys, in snd_card_ymfpci_probe()
269 chip->irq); in snd_card_ymfpci_probe()
282 if (chip->ac97->ext_id & AC97_EI_SDAC) { in snd_card_ymfpci_probe()
295 if (chip->mpu_res) { in snd_card_ymfpci_probe()
300 -1, &chip->rawmidi)) < 0) { in snd_card_ymfpci_probe()
301 dev_warn(card->dev, in snd_card_ymfpci_probe()
308 if (chip->fm_res) { in snd_card_ymfpci_probe()
313 dev_warn(card->dev, in snd_card_ymfpci_probe()
319 dev_err(card->dev, "cannot create opl3 hwdep\n"); in snd_card_ymfpci_probe()