es137x.c (8c437e077b07e7083aae266260e600519fd32325) | es137x.c (851a904af5cd8e3633e18f70af19c49672a5f729) |
---|---|
1/*- 2 * Support the ENSONIQ AudioPCI board and Creative Labs SoundBlaster PCI 3 * boards based on the ES1370, ES1371 and ES1373 chips. 4 * 5 * Copyright (c) 1999 Russell Cattelan <cattelan@thebarn.com> 6 * Copyright (c) 1999 Cameron Grant <cg@freebsd.org> 7 * Copyright (c) 1998 by Joachim Kuebart. All rights reserved. 8 * --- 1346 unchanged lines hidden (view full) --- 1355 devid = pci_get_devid(dev); 1356 revid = pci_get_revid(dev); 1357 es = pcm_getdevinfo(dev); 1358 if ((devid == ES1371_PCI_ID && revid == ES1371REV_ES1373_8) || 1359 (devid == ES1371_PCI_ID && revid == ES1371REV_CT5880_A) || 1360 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_C) || 1361 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_D) || 1362 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_E)) { | 1/*- 2 * Support the ENSONIQ AudioPCI board and Creative Labs SoundBlaster PCI 3 * boards based on the ES1370, ES1371 and ES1373 chips. 4 * 5 * Copyright (c) 1999 Russell Cattelan <cattelan@thebarn.com> 6 * Copyright (c) 1999 Cameron Grant <cg@freebsd.org> 7 * Copyright (c) 1998 by Joachim Kuebart. All rights reserved. 8 * --- 1346 unchanged lines hidden (view full) --- 1355 devid = pci_get_devid(dev); 1356 revid = pci_get_revid(dev); 1357 es = pcm_getdevinfo(dev); 1358 if ((devid == ES1371_PCI_ID && revid == ES1371REV_ES1373_8) || 1359 (devid == ES1371_PCI_ID && revid == ES1371REV_CT5880_A) || 1360 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_C) || 1361 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_D) || 1362 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_E)) { |
1363 /* XXX: an user should be able to set this with a control tool, 1364 if not done before 7.0-RELEASE, this needs to be converted 1365 to a device specific sysctl "dev.pcm.X.yyy" via 1366 device_get_sysctl_*() as discussed on multimedia@ in msg-id 1367 <861wujij2q.fsf@xps.des.no> */ |
|
1363 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1364 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), | 1368 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1369 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), |
1365 OID_AUTO, "spdif_enabled", | 1370 OID_AUTO, "_spdif_enabled", |
1366 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1367 sysctl_es137x_spdif_enable, "I", 1368 "Enable S/PDIF output on primary playback channel"); 1369 } else if (devid == ES1370_PCI_ID) { 1370 /* 1371 * Enable fixed rate sysctl if both DAC2 / ADC enabled. 1372 */ 1373 if (es->ch[ES_DAC2].channel != NULL && es->ch[ES_ADC].channel != NULL) { | 1371 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1372 sysctl_es137x_spdif_enable, "I", 1373 "Enable S/PDIF output on primary playback channel"); 1374 } else if (devid == ES1370_PCI_ID) { 1375 /* 1376 * Enable fixed rate sysctl if both DAC2 / ADC enabled. 1377 */ 1378 if (es->ch[ES_DAC2].channel != NULL && es->ch[ES_ADC].channel != NULL) { |
1379 /* XXX: an user should be able to set this with a control tool, 1380 if not done before 7.0-RELEASE, this needs to be converted 1381 to a device specific sysctl "dev.pcm.X.yyy" via 1382 device_get_sysctl_*() as discussed on multimedia@ in msg-id 1383 <861wujij2q.fsf@xps.des.no> */ |
|
1374 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1375 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), | 1384 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1385 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), |
1376 OID_AUTO, "fixed_rate", | 1386 OID_AUTO, "_fixed_rate", |
1377 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1378 sysctl_es137x_fixed_rate, "I", 1379 "Enable fixed rate playback/recording"); 1380 } 1381 /* 1382 * Enable single pcm mixer sysctl if both DAC1/2 enabled. 1383 */ 1384 if (es->ch[ES_DAC1].channel != NULL && es->ch[ES_DAC2].channel != NULL) { | 1387 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1388 sysctl_es137x_fixed_rate, "I", 1389 "Enable fixed rate playback/recording"); 1390 } 1391 /* 1392 * Enable single pcm mixer sysctl if both DAC1/2 enabled. 1393 */ 1394 if (es->ch[ES_DAC1].channel != NULL && es->ch[ES_DAC2].channel != NULL) { |
1395 /* XXX: an user should be able to set this with a control tool, 1396 if not done before 7.0-RELEASE, this needs to be converted 1397 to a device specific sysctl "dev.pcm.X.yyy" via 1398 device_get_sysctl_*() as discussed on multimedia@ in msg-id 1399 <861wujij2q.fsf@xps.des.no> */ |
|
1385 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1386 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), | 1400 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1401 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), |
1387 OID_AUTO, "single_pcm_mixer", | 1402 OID_AUTO, "_single_pcm_mixer", |
1388 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1389 sysctl_es137x_single_pcm_mixer, "I", 1390 "Single PCM mixer controller for both DAC1/DAC2"); 1391 } 1392 } 1393 if (resource_int_value(device_get_name(dev), 1394 device_get_unit(dev), "latency_timer", &r) == 0 && 1395 !(r < 0 || r > 255)) 1396 pci_write_config(dev, PCIR_LATTIMER, r, 1); | 1403 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1404 sysctl_es137x_single_pcm_mixer, "I", 1405 "Single PCM mixer controller for both DAC1/DAC2"); 1406 } 1407 } 1408 if (resource_int_value(device_get_name(dev), 1409 device_get_unit(dev), "latency_timer", &r) == 0 && 1410 !(r < 0 || r > 255)) 1411 pci_write_config(dev, PCIR_LATTIMER, r, 1); |
1412 /* XXX: this needs to be converted to a device specific sysctl 1413 "dev.pcm.X.yyy" via device_get_sysctl_*() as discussed on 1414 multimedia@ in msg-id <861wujij2q.fsf@xps.des.no> */ |
|
1397 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1398 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), 1399 OID_AUTO, "latency_timer", 1400 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1401 sysctl_es137x_latency_timer, "I", 1402 "PCI Latency Timer configuration"); 1403#endif /* SND_DYNSYSCTL */ 1404} --- 208 unchanged lines hidden --- | 1415 SYSCTL_ADD_PROC(snd_sysctl_tree(dev), 1416 SYSCTL_CHILDREN(snd_sysctl_tree_top(dev)), 1417 OID_AUTO, "latency_timer", 1418 CTLTYPE_INT | CTLFLAG_RW, dev, sizeof(dev), 1419 sysctl_es137x_latency_timer, "I", 1420 "PCI Latency Timer configuration"); 1421#endif /* SND_DYNSYSCTL */ 1422} --- 208 unchanged lines hidden --- |