[PATCH] EMU10K1 joystick bug

From: Brian Gerst (bgerst@didntduck.org)
Date: Tue May 29 2001 - 21:08:06 EST


The EMU10K1 driver currently disables the joystick port on module load
and unload. This patch preserves the HCFG_JOYENABLE bit when the HCFG
register is modified.

-- 

Brian Gerst

diff -urN linux-2.4.5/drivers/sound/emu10k1/main.c linux/drivers/sound/emu10k1/main.c --- linux-2.4.5/drivers/sound/emu10k1/main.c Sat May 26 09:41:32 2001 +++ linux/drivers/sound/emu10k1/main.c Tue May 29 21:17:06 2001 @@ -363,10 +363,11 @@ static int __devinit hw_init(struct emu10k1_card *card) { int nCh; - u32 pagecount; /* tmp */ + u32 pagecount, tmp; /* Disable audio and lock cache */ - emu10k1_writefn0(card, HCFG, HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE); + tmp = emu10k1_readfn0(card, HCFG) & HCFG_JOYENABLE; + emu10k1_writefn0(card, HCFG, tmp | HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE); /* Reset recording buffers */ sblive_writeptr_tag(card, 0, @@ -557,6 +558,7 @@ static void __devinit emu10k1_exit(struct emu10k1_card *card) { int ch; + u32 tmp; emu10k1_writefn0(card, INTE, 0); @@ -574,7 +576,8 @@ } /* Disable audio and lock cache */ - emu10k1_writefn0(card, HCFG, HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE); + tmp = emu10k1_readfn0(card, HCFG) & HCFG_JOYENABLE; + emu10k1_writefn0(card, HCFG, tmp | HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE); sblive_writeptr_tag(card, 0, PTB, 0,

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu May 31 2001 - 21:00:43 EST