Deleted Added
full compact
31c31
< * $FreeBSD: head/sys/dev/sound/isa/sb8.c 53465 1999-11-20 16:50:33Z cg $
---
> * $FreeBSD: head/sys/dev/sound/isa/sb8.c 53553 1999-11-22 06:07:49Z tanimura $
36a37,38
> #include "sbc.h"
>
38a41
> #include <dev/sound/chip.h>
1261,1279d1263
< case 0x43008c0e: /* CTL0043 */
< case 0x01008c0e: /* CTL0001 */
< s = "Vibra16X";
< break;
<
< case 0x31008c0e: /* CTL0031 */
< case 0x41008c0e: /* CTL0041 */
< case 0x42008c0e: /* CTL0042 */
< s = "SB16 PnP";
< break;
<
< case 0x44008c0e: /* CTL0044 */
< s = "Creative SB AWE64 Gold";
< break;
<
< case 0x45008c0e: /* CTL0045 */
< s = "Creative AWE64 PnP";
< break;
<
1302c1286
< return 0;
---
> return (0);
1344a1329,1389
> #if NSBC > 0
> #define DESCSTR " PCM Audio"
> static int
> sbsbc_probe(device_t dev)
> {
> char *s = NULL;
> struct sndcard_func *func;
>
> /* The parent device has already been probed. */
>
> func = device_get_ivars(dev);
> if (func == NULL || func->func != SCF_PCM)
> return (ENXIO);
>
> s = "SB PCM Audio";
>
> device_set_desc(dev, s);
> return 0;
> }
>
> static int
> sbsbc_attach(device_t dev)
> {
> struct sb_info *sb;
> u_int32_t vend_id;
> device_t sbc;
>
> sbc = device_get_parent(dev);
> vend_id = isa_get_vendorid(sbc);
> sb = (struct sb_info *)malloc(sizeof *sb, M_DEVBUF, M_NOWAIT);
> if (!sb) return ENXIO;
> bzero(sb, sizeof *sb);
>
> switch(vend_id) {
> case 0xf0008c0e:
> case 0x10019305:
> case 0x20019305:
> /* XXX add here the vend_id for other vibra16X cards... */
> sb->bd_flags = BD_F_SB16X;
> }
> return sb_doattach(dev, sb);
> }
>
> static device_method_t sbsbc_methods[] = {
> /* Device interface */
> DEVMETHOD(device_probe, sbsbc_probe),
> DEVMETHOD(device_attach, sbsbc_attach),
>
> { 0, 0 }
> };
>
> static driver_t sbsbc_driver = {
> "pcm",
> sbsbc_methods,
> sizeof(snddev_info),
> };
>
> DRIVER_MODULE(sbsbc, sbc, sbsbc_driver, pcm_devclass, 0, 0);
>
> #endif /* NSBC > 0 */
>