Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/sound/isa/mss.c
Show First 20 Lines • Show All 1,320 Lines • ▼ Show 20 Lines | mss->io_base = bus_alloc_resource_anywhere(dev, SYS_RES_IOPORT, | ||||
tmpx = tmp = io_rd(mss, 3); | tmpx = tmp = io_rd(mss, 3); | ||||
if (tmp == 0xff) { /* Bus float */ | if (tmp == 0xff) { /* Bus float */ | ||||
BVDDB(printf("I/O addr inactive (%x), try pseudo_mss\n", tmp)); | BVDDB(printf("I/O addr inactive (%x), try pseudo_mss\n", tmp)); | ||||
device_set_flags(dev, flags & ~DV_F_TRUE_MSS); | device_set_flags(dev, flags & ~DV_F_TRUE_MSS); | ||||
goto mss_probe_end; | goto mss_probe_end; | ||||
} | } | ||||
tmp &= 0x3f; | tmp &= 0x3f; | ||||
if (!(tmp == 0x04 || tmp == 0x0f || tmp == 0x00 || tmp == 0x05)) { | if (!(tmp == 0x04 || tmp == 0x0f || tmp == 0x00 || tmp == 0x05)) { | ||||
BVDDB(printf("No MSS signature detected on port 0x%lx (0x%x)\n", | BVDDB(printf("No MSS signature detected on port 0x%jx (0x%x)\n", | ||||
rman_get_start(mss->io_base), tmpx)); | rman_get_start(mss->io_base), tmpx)); | ||||
goto no; | goto no; | ||||
} | } | ||||
#ifdef PC98 | #ifdef PC98 | ||||
if (irq > 12) { | if (irq > 12) { | ||||
#else | #else | ||||
if (irq > 11) { | if (irq > 11) { | ||||
#endif | #endif | ||||
▲ Show 20 Lines • Show All 424 Lines • ▼ Show 20 Lines | #endif | ||||
goto no; | goto no; | ||||
} | } | ||||
if (pdma != rdma) | if (pdma != rdma) | ||||
snprintf(status2, SND_STATUSLEN, ":%d", rdma); | snprintf(status2, SND_STATUSLEN, ":%d", rdma); | ||||
else | else | ||||
status2[0] = '\0'; | status2[0] = '\0'; | ||||
snprintf(status, SND_STATUSLEN, "at io 0x%lx irq %ld drq %d%s bufsz %u", | snprintf(status, SND_STATUSLEN, "at io 0x%jx irq %jd drq %d%s bufsz %u", | ||||
rman_get_start(mss->io_base), rman_get_start(mss->irq), pdma, status2, mss->bufsize); | rman_get_start(mss->io_base), rman_get_start(mss->irq), pdma, status2, mss->bufsize); | ||||
if (pcm_register(dev, mss, 1, 1)) goto no; | if (pcm_register(dev, mss, 1, 1)) goto no; | ||||
pcm_addchan(dev, PCMDIR_REC, &msschan_class, mss); | pcm_addchan(dev, PCMDIR_REC, &msschan_class, mss); | ||||
pcm_addchan(dev, PCMDIR_PLAY, &msschan_class, mss); | pcm_addchan(dev, PCMDIR_PLAY, &msschan_class, mss); | ||||
pcm_setstatus(dev, status); | pcm_setstatus(dev, status); | ||||
return 0; | return 0; | ||||
▲ Show 20 Lines • Show All 542 Lines • Show Last 20 Lines |