mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-20 02:38:43 +00:00
Add support for ASound Gold card using the ALS120
chipset (a vibra 16x clone) Identified automatically by its PnP ID Approved by: Luigi
This commit is contained in:
parent
b5fcc9783f
commit
229cf3c335
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=47536
@ -1271,9 +1271,10 @@ ess1868_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
/*
|
/*
|
||||||
* A driver for some SB16pnp and compatibles...
|
* A driver for some SB16pnp and compatibles...
|
||||||
*
|
*
|
||||||
* Avance Asound 100 -- 0x01009305
|
* Avance Asound 100 -- 0x01009305
|
||||||
* Avance Logic ALS100+ -- 0x10019305
|
* Avance Logic ALS100+ -- 0x10019305
|
||||||
* xxx -- 0x2b008c0e
|
* Avance Logic ASound Gold ALS120 -- 0x20019305
|
||||||
|
* xxx -- 0x2b008c0e
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1311,6 +1312,8 @@ sb16pnp_probe(u_long csn, u_long vend_id)
|
|||||||
s = "Avance Asound 100" ;
|
s = "Avance Asound 100" ;
|
||||||
else if (vend_id == 0x10019305)
|
else if (vend_id == 0x10019305)
|
||||||
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
||||||
|
else if (vend_id == 0x20019305)
|
||||||
|
s = "Avance Logic ALS120" ; /* Vibra16X-class */
|
||||||
if (s) {
|
if (s) {
|
||||||
struct pnp_cinfo d;
|
struct pnp_cinfo d;
|
||||||
read_pnp_parms(&d, 0);
|
read_pnp_parms(&d, 0);
|
||||||
@ -1348,7 +1351,8 @@ sb16pnp_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
||||||
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
||||||
|
|
||||||
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e) {
|
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e
|
||||||
|
|| vend_id == 0x20019305) {
|
||||||
/*
|
/*
|
||||||
* XXX please add here the vend_id for other vibra16X cards...
|
* XXX please add here the vend_id for other vibra16X cards...
|
||||||
* And remember, must change tmp_d, not
|
* And remember, must change tmp_d, not
|
||||||
|
@ -1271,9 +1271,10 @@ ess1868_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
/*
|
/*
|
||||||
* A driver for some SB16pnp and compatibles...
|
* A driver for some SB16pnp and compatibles...
|
||||||
*
|
*
|
||||||
* Avance Asound 100 -- 0x01009305
|
* Avance Asound 100 -- 0x01009305
|
||||||
* Avance Logic ALS100+ -- 0x10019305
|
* Avance Logic ALS100+ -- 0x10019305
|
||||||
* xxx -- 0x2b008c0e
|
* Avance Logic ASound Gold ALS120 -- 0x20019305
|
||||||
|
* xxx -- 0x2b008c0e
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1311,6 +1312,8 @@ sb16pnp_probe(u_long csn, u_long vend_id)
|
|||||||
s = "Avance Asound 100" ;
|
s = "Avance Asound 100" ;
|
||||||
else if (vend_id == 0x10019305)
|
else if (vend_id == 0x10019305)
|
||||||
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
||||||
|
else if (vend_id == 0x20019305)
|
||||||
|
s = "Avance Logic ALS120" ; /* Vibra16X-class */
|
||||||
if (s) {
|
if (s) {
|
||||||
struct pnp_cinfo d;
|
struct pnp_cinfo d;
|
||||||
read_pnp_parms(&d, 0);
|
read_pnp_parms(&d, 0);
|
||||||
@ -1348,7 +1351,8 @@ sb16pnp_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
||||||
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
||||||
|
|
||||||
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e) {
|
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e
|
||||||
|
|| vend_id == 0x20019305) {
|
||||||
/*
|
/*
|
||||||
* XXX please add here the vend_id for other vibra16X cards...
|
* XXX please add here the vend_id for other vibra16X cards...
|
||||||
* And remember, must change tmp_d, not
|
* And remember, must change tmp_d, not
|
||||||
|
@ -1271,9 +1271,10 @@ ess1868_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
/*
|
/*
|
||||||
* A driver for some SB16pnp and compatibles...
|
* A driver for some SB16pnp and compatibles...
|
||||||
*
|
*
|
||||||
* Avance Asound 100 -- 0x01009305
|
* Avance Asound 100 -- 0x01009305
|
||||||
* Avance Logic ALS100+ -- 0x10019305
|
* Avance Logic ALS100+ -- 0x10019305
|
||||||
* xxx -- 0x2b008c0e
|
* Avance Logic ASound Gold ALS120 -- 0x20019305
|
||||||
|
* xxx -- 0x2b008c0e
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1311,6 +1312,8 @@ sb16pnp_probe(u_long csn, u_long vend_id)
|
|||||||
s = "Avance Asound 100" ;
|
s = "Avance Asound 100" ;
|
||||||
else if (vend_id == 0x10019305)
|
else if (vend_id == 0x10019305)
|
||||||
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
||||||
|
else if (vend_id == 0x20019305)
|
||||||
|
s = "Avance Logic ALS120" ; /* Vibra16X-class */
|
||||||
if (s) {
|
if (s) {
|
||||||
struct pnp_cinfo d;
|
struct pnp_cinfo d;
|
||||||
read_pnp_parms(&d, 0);
|
read_pnp_parms(&d, 0);
|
||||||
@ -1348,7 +1351,8 @@ sb16pnp_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
||||||
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
||||||
|
|
||||||
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e) {
|
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e
|
||||||
|
|| vend_id == 0x20019305) {
|
||||||
/*
|
/*
|
||||||
* XXX please add here the vend_id for other vibra16X cards...
|
* XXX please add here the vend_id for other vibra16X cards...
|
||||||
* And remember, must change tmp_d, not
|
* And remember, must change tmp_d, not
|
||||||
|
@ -1271,9 +1271,10 @@ ess1868_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
/*
|
/*
|
||||||
* A driver for some SB16pnp and compatibles...
|
* A driver for some SB16pnp and compatibles...
|
||||||
*
|
*
|
||||||
* Avance Asound 100 -- 0x01009305
|
* Avance Asound 100 -- 0x01009305
|
||||||
* Avance Logic ALS100+ -- 0x10019305
|
* Avance Logic ALS100+ -- 0x10019305
|
||||||
* xxx -- 0x2b008c0e
|
* Avance Logic ASound Gold ALS120 -- 0x20019305
|
||||||
|
* xxx -- 0x2b008c0e
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1311,6 +1312,8 @@ sb16pnp_probe(u_long csn, u_long vend_id)
|
|||||||
s = "Avance Asound 100" ;
|
s = "Avance Asound 100" ;
|
||||||
else if (vend_id == 0x10019305)
|
else if (vend_id == 0x10019305)
|
||||||
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
||||||
|
else if (vend_id == 0x20019305)
|
||||||
|
s = "Avance Logic ALS120" ; /* Vibra16X-class */
|
||||||
if (s) {
|
if (s) {
|
||||||
struct pnp_cinfo d;
|
struct pnp_cinfo d;
|
||||||
read_pnp_parms(&d, 0);
|
read_pnp_parms(&d, 0);
|
||||||
@ -1348,7 +1351,8 @@ sb16pnp_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
||||||
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
||||||
|
|
||||||
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e) {
|
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e
|
||||||
|
|| vend_id == 0x20019305) {
|
||||||
/*
|
/*
|
||||||
* XXX please add here the vend_id for other vibra16X cards...
|
* XXX please add here the vend_id for other vibra16X cards...
|
||||||
* And remember, must change tmp_d, not
|
* And remember, must change tmp_d, not
|
||||||
|
@ -77,12 +77,6 @@ COMMENTS:
|
|||||||
|
|
||||||
device pcm0 at isa ? port 0x52C ...
|
device pcm0 at isa ? port 0x52C ...
|
||||||
|
|
||||||
Actual product: Turtle Beach Malibu soundcard (CS4237). The pnp
|
|
||||||
config here is adjusted to leave dma 3 clear for lpr use:
|
|
||||||
|
|
||||||
pnp 1 0 os irq0 15 irq1 0 drq0 1 drq1 0 port0 1332
|
|
||||||
|
|
||||||
That line is in my /boot/kernel.conf (C. Robey, 3/24/99)
|
|
||||||
|
|
||||||
--------------------------
|
--------------------------
|
||||||
CHIPSET:
|
CHIPSET:
|
||||||
@ -215,11 +209,14 @@ COMMENTS:
|
|||||||
|
|
||||||
--------------------------
|
--------------------------
|
||||||
CHIPSET:
|
CHIPSET:
|
||||||
ALS100, ALS110, ...
|
ALS100, ALS110, ALS120, ...
|
||||||
Avance Asound 100: PnP id 0x01009305
|
Avance Asound 100: PnP id 0x01009305
|
||||||
|
Avance Asound 100+: PnP id 0x10019305
|
||||||
|
Avance Logic ALS120: PnP id 0x20019305
|
||||||
|
|
||||||
MANUFACTURER:
|
MANUFACTURER:
|
||||||
Realtek (also Avance Asound and possibly other names)
|
Realtek (also Avance Asound and possibly other names)
|
||||||
|
Asound Gold (AS007) has an ALS120
|
||||||
|
|
||||||
|
|
||||||
DOCUMENTATION:
|
DOCUMENTATION:
|
||||||
|
@ -1271,9 +1271,10 @@ ess1868_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
/*
|
/*
|
||||||
* A driver for some SB16pnp and compatibles...
|
* A driver for some SB16pnp and compatibles...
|
||||||
*
|
*
|
||||||
* Avance Asound 100 -- 0x01009305
|
* Avance Asound 100 -- 0x01009305
|
||||||
* Avance Logic ALS100+ -- 0x10019305
|
* Avance Logic ALS100+ -- 0x10019305
|
||||||
* xxx -- 0x2b008c0e
|
* Avance Logic ASound Gold ALS120 -- 0x20019305
|
||||||
|
* xxx -- 0x2b008c0e
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1311,6 +1312,8 @@ sb16pnp_probe(u_long csn, u_long vend_id)
|
|||||||
s = "Avance Asound 100" ;
|
s = "Avance Asound 100" ;
|
||||||
else if (vend_id == 0x10019305)
|
else if (vend_id == 0x10019305)
|
||||||
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
s = "Avance Logic 100+" ; /* Vibra16X-class */
|
||||||
|
else if (vend_id == 0x20019305)
|
||||||
|
s = "Avance Logic ALS120" ; /* Vibra16X-class */
|
||||||
if (s) {
|
if (s) {
|
||||||
struct pnp_cinfo d;
|
struct pnp_cinfo d;
|
||||||
read_pnp_parms(&d, 0);
|
read_pnp_parms(&d, 0);
|
||||||
@ -1348,7 +1351,8 @@ sb16pnp_attach(u_long csn, u_long vend_id, char *name,
|
|||||||
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
pcm_info[dev->id_unit] = tmp_d; /* pcm_info[] will be reinitialized after */
|
||||||
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
snddev_last_probed->probe(dev); /* not really necessary but doesn't harm */
|
||||||
|
|
||||||
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e) {
|
if (vend_id == 0x10019305 || vend_id == 0xf0008c0e
|
||||||
|
|| vend_id == 0x20019305) {
|
||||||
/*
|
/*
|
||||||
* XXX please add here the vend_id for other vibra16X cards...
|
* XXX please add here the vend_id for other vibra16X cards...
|
||||||
* And remember, must change tmp_d, not
|
* And remember, must change tmp_d, not
|
||||||
|
Loading…
Reference in New Issue
Block a user