Date: Tue, 30 Nov 1999 12:07:59 +0900 From: tanimura@r.dl.itc.u-tokyo.ac.jp To: peter@netplex.com.au Cc: tanimura@r.dl.itc.u-tokyo.ac.jp Subject: Re: sbc and pcm Message-ID: <14403.16271.710054.81928B@rina.r.dl.itc.u-tokyo.ac.jp> In-Reply-To: In your message of "Tue, 30 Nov 1999 11:09:15 %2B0900" <14403.12747.511556.68187Y@rina.r.dl.itc.u-tokyo.ac.jp> References: <winter@jurai.net> <Pine.BSF.4.20.9911221427070.7305-100000@sasami.jurai.net> <19991122202239.5A75C1C6D@overcee.netplex.com.au> <14403.12747.511556.68187Y@rina.r.dl.itc.u-tokyo.ac.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
The following patch makes sbc_probe() to look at the vendor ID only
for AWE64. Also, any device that has a logical ID matching 0x??0080ce
should get probed.
[-- Attachment #2 --]
Index: sbc.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/sound/isa/sbc.c,v
retrieving revision 1.2
diff -u -r1.2 sbc.c
--- sbc.c 1999/11/27 06:33:27 1.2
+++ sbc.c 1999/11/30 02:46:00
@@ -86,86 +86,32 @@
static int
sbc_probe(device_t dev)
{
- u_int32_t vend_id, logical_id, vend_id2;
+ u_int32_t vend_id, logical_id;
char *s;
struct sndcard_func *func;
vend_id = isa_get_vendorid(dev);
- vend_id2 = vend_id & 0xff00ffff;
logical_id = isa_get_logicalid(dev);
s = NULL;
- switch (logical_id) {
-#if notdef
- case 0x0000630e: /* Crystal Semiconductor */
- if (vend_id2 ==0x3600630e) /* CS4236 */
- s = "CS4236";
- else if (vend_id2 ==0x3200630e) /* CS4232 */
- s = "CS4232";
- else if (vend_id2 ==0x3500630e) /* CS4236B */
- s = "CS4236B";
- break;
-#endif /* notdef */
- case 0x01008c0e: /* Creative ViBRA16C */
- if (vend_id2 == 0x70008c0e)
- s = "Creative ViBRA16C PnP";
- break;
- case 0x43008c0e: /* Creative ViBRA16X */
- if (vend_id2 == 0xf0008c0e)
- s = "Creative ViBRA16C PnP";
- break;
- case 0x31008c0e: /* Creative SB */
- if (vend_id2 == 0x26008c0e)
- s = "Creative SB16 PnP";
- else if (vend_id2 == 0x42008c0e)
- s = "Creative SB32 (CTL0042)";
- else if (vend_id2 == 0x44008c0e)
- s = "Creative SB32 (CTL0044)";
- else if (vend_id2 == 0x48008c0e)
- s = "Creative SB32 (CTL0048)";
- else if (vend_id2 == 0x49008c0e)
- s = "Creative SB32 (CTL0049)";
- else if (vend_id2 == 0xf1008c0e)
- s = "Creative SB32 (CTL00f1)";
- break;
- case 0x42008c0e: /* Creative SB AWE64 (CTL00c1) */
- if (vend_id2 == 0xc1008c0e)
- s = "Creative SB AWE64 (CTL00c1)";
- break;
- case 0x45008c0e: /* Creative SB AWE64 (CTL0045) */
- if (vend_id2 == 0xe4008c0e)
- s = "Creative SB AWE64 (CTL0045)";
- break;
-#if notdef
- case 0x01200001: /* Avance Logic */
- if (vend_id2 == 0x20009305)
- s = "Avance Logic ALS120";
- break;
- case 0x01100001: /* Avance Asound */
- if (vend_id2 == 0x10009305)
- s = "Avance Asound 110";
- break;
- case 0x68187316: /* ESS1868 */
- if (vend_id2 == 0x68007316)
- s = "ESS ES1868 Plug and Play AudioDrive";
- break;
- case 0x79187316: /* ESS1879 */
- if (vend_id2 == 0x79007316)
- s = "ESS ES1879 Plug and Play AudioDrive";
- break;
- case 0x2100a865: /* Yamaha */
- if (vend_id2 == 0x2000a865)
- s = "Yamaha OPL3-SA2/SAX Sound Board";
- break;
- case 0x80719304: /* Terratec */
- if (vend_id2 == 0x1114b250)
- s = "Terratec Soundsystem Base 1";
- break;
- case 0x0300561e: /* Gravis */
- if (vend_id2 == 0x0100561e)
- s = "Gravis UltraSound Plug & Play";
- break;
-#endif /* notdef */
+ if ((logical_id & 0x00ffffff) == 0x00008c0e) {
+ /* Creative */
+ s = "Creative SB PnP";
+ if ((vendor_id & 0x80ffffff) == 0x80008c0e) /* SB AWE64 */
+ s = "Creative SB AWE64 PnP";
+ else {
+ switch (logical_id) {
+ case 0x01008c0e: /* ViBRA16C */
+ s = "Creative ViBRA16C PnP";
+ break;
+ case 0x43008c0e: /* ViBRA16X */
+ s = "Creative ViBRA16X PnP";
+ break;
+ case 0x31008c0e: /* SB16/AWE32 */
+ s = "Creative SB16/AWE32 PnP";
+ break;
+ }
+ }
}
if (s != NULL) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14403.16271.710054.81928B>
