Пример #1
0
static int
sb_reset_dsp(struct resource *io)
{
    	sb_wr(io, SBDSP_RST, 3);
    	DELAY(100);
    	sb_wr(io, SBDSP_RST, 0);
    	return (sb_get_byte(io) == 0xAA)? 0 : ENXIO;
}
Пример #2
0
static void
sb_setmixer(struct resource *io, u_int port, u_int value)
{
    	u_long   flags;

    	flags = spltty();
    	sb_wr(io, SB_MIX_ADDR, (u_char) (port & 0xff)); /* Select register */
    	DELAY(10);
    	sb_wr(io, SB_MIX_DATA, (u_char) (value & 0xff));
    	DELAY(10);
    	splx(flags);
}
Пример #3
0
static int
sb_dspwr(struct sb_info *sb, u_char val)
{
    	int  i;

    	for (i = 0; i < 1000; i++) {
		if (sb_dspready(sb)) {
	    		sb_wr(sb, SBDSP_CMD, val);
	    		return 1;
		}
		if (i > 10) DELAY((i > 100)? 1000 : 10);
    	}
    	kprintf("sb_dspwr(0x%02x) timed out.\n", val);
    	return 0;
}
Пример #4
0
static int
sb_dspwr(struct resource *io, u_char val)
{
    	int  i;

    	for (i = 0; i < 1000; i++) {
		if (sb_dspready(io)) {
	    		sb_wr(io, SBDSP_CMD, val);
	    		return 1;
		}
		if (i > 10) DELAY((i > 100)? 1000 : 10);
    	}
    	printf("sb_dspwr(0x%02x) timed out.\n", val);
    	return 0;
}
Пример #5
0
Файл: sb16.c Проект: kame/kame
static int
sb_dspwr(struct sb_info *sb, u_char val)
{
    int  i;

    for (i = 0; i < 1000; i++) {
        if ((sb_rd(sb, SBDSP_STATUS) & 0x80))
            DELAY((i > 100)? 1000 : 10);
        else {
            sb_wr(sb, SBDSP_CMD, val);
            return 1;
        }
    }
    printf("sb_dspwr(0x%02x) timed out.\n", val);
    return 0;
}