* [PATCH] EMU10K1 joystick bug
@ 2001-05-30 2:08 Brian Gerst
0 siblings, 0 replies; only message in thread
From: Brian Gerst @ 2001-05-30 2:08 UTC (permalink / raw)
To: rsousa; +Cc: Alan Cox, Linux kernel mailing list
[-- Attachment #1: Type: text/plain, Size: 187 bytes --]
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
[-- Attachment #2: diff-emu10k1joy --]
[-- Type: text/plain, Size: 1277 bytes --]
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,
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2001-05-30 2:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-05-30 2:08 [PATCH] EMU10K1 joystick bug Brian Gerst
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox