* [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
@ 2005-03-16 5:21 Lee Revell
2005-03-16 5:27 ` Lee Revell
2005-03-17 14:11 ` [PATCH] emu10k1: fix misc oopses Thierry Vignaud
0 siblings, 2 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-16 5:21 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 586 bytes --]
The P16V patch unconditionally checks the IPR2 register in the interrupt
handler resulting in infinite loop and system lockup on any non Audigy2
cards. I really hate checking emu->is_audigy and emu->revision in a
fast path like the IRQ handler but I don't see another way.
Also, don't bother allocating/freeing the DMA buffer for P16V unless
it's really present.
This is a critical fix and should trigger an immediate rc2 release IMO.
Currently any emu10k1 users other than Audigy 2 will lock up hard as
soon as they play any sound.
Signed-Off-By: Lee Revell <rlrevell@joe-job.com>
[-- Attachment #2: sblive-p16v-fixes.patch --]
[-- Type: text/x-patch, Size: 3313 bytes --]
Index: alsa/alsa-kernel/pci/emu10k1/emu10k1.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emu10k1.c,v
retrieving revision 1.32
diff -u -r1.32 emu10k1.c
--- alsa/alsa-kernel/pci/emu10k1/emu10k1.c 13 Mar 2005 12:17:08 -0000 1.32
+++ alsa/alsa-kernel/pci/emu10k1/emu10k1.c 16 Mar 2005 05:15:06 -0000
@@ -140,9 +140,11 @@
return err;
}
/* This stores the periods table. */
- if(snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), 1024, &emu->p16v_buffer) < 0) {
- snd_p16v_free(emu);
- return -ENOMEM;
+ if (emu->audigy && emu->revision == 4) { /* P16V */
+ if(snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), 1024, &emu->p16v_buffer) < 0) {
+ snd_p16v_free(emu);
+ return -ENOMEM;
+ }
}
if ((err = snd_emu10k1_mixer(emu)) < 0) {
Index: alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c,v
retrieving revision 1.44
diff -u -r1.44 emu10k1_main.c
--- alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c 13 Mar 2005 12:17:08 -0000 1.44
+++ alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c 16 Mar 2005 05:15:07 -0000
@@ -600,7 +600,8 @@
if (emu->port)
pci_release_regions(emu->pci);
pci_disable_device(emu->pci);
- snd_p16v_free(emu);
+ if (emu->audigy && emu->revision == 4) /* P16V */
+ snd_p16v_free(emu);
kfree(emu);
return 0;
}
Index: alsa/alsa-kernel/pci/emu10k1/irq.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/irq.c,v
retrieving revision 1.13
diff -u -r1.13 irq.c
--- alsa/alsa-kernel/pci/emu10k1/irq.c 13 Mar 2005 12:17:10 -0000 1.13
+++ alsa/alsa-kernel/pci/emu10k1/irq.c 16 Mar 2005 05:15:07 -0000
@@ -149,7 +149,7 @@
}
if (status) {
unsigned int bits;
- //snd_printk(KERN_ERR "emu10k1: unhandled interrupt: 0x%08x\n", status);
+ snd_printk(KERN_ERR "emu10k1: unhandled interrupt: 0x%08x\n", status);
//make sure any interrupts we don't handle are disabled:
bits = INTE_FXDSPENABLE |
INTE_PCIERRORENABLE |
@@ -170,19 +170,20 @@
}
outl(orig_status, emu->port + IPR); /* ack all */
}
- while ((status2 = inl(emu->port + IPR2)) != 0) {
- u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */
- emu10k1_voice_t *pvoice = &(emu->p16v_voices[0]);
- orig_status2 = status2;
- if(status2 & mask) {
- if(pvoice->use) {
- snd_pcm_period_elapsed(pvoice->epcm->substream);
- } else {
- snd_printk(KERN_ERR "p16v: status: 0x%08x, mask=0x%08x, pvoice=%p, use=%d\n", status2, mask, pvoice, pvoice->use);
+ if (emu->audigy && emu->revision == 4) { /* P16V */
+ while ((status2 = inl(emu->port + IPR2)) != 0) {
+ u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */
+ emu10k1_voice_t *pvoice = &(emu->p16v_voices[0]);
+ orig_status2 = status2;
+ if(status2 & mask) {
+ if(pvoice->use) {
+ snd_pcm_period_elapsed(pvoice->epcm->substream);
+ } else {
+ snd_printk(KERN_ERR "p16v: status: 0x%08x, mask=0x%08x, pvoice=%p, use=%d\n", status2, mask, pvoice, pvoice->use);
+ }
}
+ outl(orig_status2, emu->port + IPR2); /* ack all */
}
- outl(orig_status2, emu->port + IPR2); /* ack all */
}
-
return IRQ_RETVAL(handled);
}
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-16 5:21 [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards Lee Revell
@ 2005-03-16 5:27 ` Lee Revell
2005-03-16 21:28 ` James Courtier-Dutton
2005-03-17 14:11 ` [PATCH] emu10k1: fix misc oopses Thierry Vignaud
1 sibling, 1 reply; 15+ messages in thread
From: Lee Revell @ 2005-03-16 5:27 UTC (permalink / raw)
To: alsa-devel; +Cc: James Courtier-Dutton
On Wed, 2005-03-16 at 00:21 -0500, Lee Revell wrote:
> The P16V patch unconditionally checks the IPR2 register in the interrupt
> handler resulting in infinite loop and system lockup on any non Audigy2
> cards. I really hate checking emu->is_audigy and emu->revision in a
> fast path like the IRQ handler but I don't see another way.
>
> Also, don't bother allocating/freeing the DMA buffer for P16V unless
> it's really present.
Oh, one more thing: this patch restores the "unhandled interrupt"
printk() that was commented out by the P16V patch. I am sure this was
useful for development but seems like a bad idea for production.
James, were you still getting unhandled interrupts with the version of
the patch that was merged?
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-16 5:27 ` Lee Revell
@ 2005-03-16 21:28 ` James Courtier-Dutton
2005-03-17 15:53 ` Lee Revell
0 siblings, 1 reply; 15+ messages in thread
From: James Courtier-Dutton @ 2005-03-16 21:28 UTC (permalink / raw)
To: Lee Revell; +Cc: alsa-devel
Lee Revell wrote:
> On Wed, 2005-03-16 at 00:21 -0500, Lee Revell wrote:
>
>>The P16V patch unconditionally checks the IPR2 register in the interrupt
>>handler resulting in infinite loop and system lockup on any non Audigy2
>>cards. I really hate checking emu->is_audigy and emu->revision in a
>>fast path like the IRQ handler but I don't see another way.
>>
>>Also, don't bother allocating/freeing the DMA buffer for P16V unless
>>it's really present.
>
>
> Oh, one more thing: this patch restores the "unhandled interrupt"
> printk() that was commented out by the P16V patch. I am sure this was
> useful for development but seems like a bad idea for production.
>
> James, were you still getting unhandled interrupts with the version of
> the patch that was merged?
>
> Lee
>
Thank you for fixing the bug.
The "unhandled interrupt" should be commented out. It is used for
reverse engineering certain features.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-16 21:28 ` James Courtier-Dutton
@ 2005-03-17 15:53 ` Lee Revell
2005-03-17 15:58 ` Takashi Iwai
2005-03-18 19:52 ` James Courtier-Dutton
0 siblings, 2 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-17 15:53 UTC (permalink / raw)
To: James Courtier-Dutton; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 290 bytes --]
On Wed, 2005-03-16 at 21:28 +0000, James Courtier-Dutton wrote:
> Thank you for fixing the bug.
> The "unhandled interrupt" should be commented out. It is used for
> reverse engineering certain features.
>
OK, updated patch attached.
Please apply to CVS ASAP, this is a bad bug!
Lee
[-- Attachment #2: sblive-p16v-fixes-2.patch --]
[-- Type: text/x-patch, Size: 2978 bytes --]
Index: alsa/alsa-kernel/pci/emu10k1/emu10k1.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emu10k1.c,v
retrieving revision 1.32
diff -u -r1.32 emu10k1.c
--- alsa/alsa-kernel/pci/emu10k1/emu10k1.c 13 Mar 2005 12:17:08 -0000 1.32
+++ alsa/alsa-kernel/pci/emu10k1/emu10k1.c 16 Mar 2005 05:15:06 -0000
@@ -140,9 +140,11 @@
return err;
}
/* This stores the periods table. */
- if(snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), 1024, &emu->p16v_buffer) < 0) {
- snd_p16v_free(emu);
- return -ENOMEM;
+ if (emu->audigy && emu->revision == 4) { /* P16V */
+ if(snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(pci), 1024, &emu->p16v_buffer) < 0) {
+ snd_p16v_free(emu);
+ return -ENOMEM;
+ }
}
if ((err = snd_emu10k1_mixer(emu)) < 0) {
Index: alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c,v
retrieving revision 1.44
diff -u -r1.44 emu10k1_main.c
--- alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c 13 Mar 2005 12:17:08 -0000 1.44
+++ alsa/alsa-kernel/pci/emu10k1/emu10k1_main.c 16 Mar 2005 05:15:07 -0000
@@ -600,7 +600,8 @@
if (emu->port)
pci_release_regions(emu->pci);
pci_disable_device(emu->pci);
- snd_p16v_free(emu);
+ if (emu->audigy && emu->revision == 4) /* P16V */
+ snd_p16v_free(emu);
kfree(emu);
return 0;
}
Index: alsa/alsa-kernel/pci/emu10k1/irq.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/irq.c,v
retrieving revision 1.13
diff -u -r1.13 irq.c
--- alsa/alsa-kernel/pci/emu10k1/irq.c 13 Mar 2005 12:17:10 -0000 1.13
+++ alsa/alsa-kernel/pci/emu10k1/irq.c 16 Mar 2005 05:15:07 -0000
@@ -170,19 +170,20 @@
}
outl(orig_status, emu->port + IPR); /* ack all */
}
- while ((status2 = inl(emu->port + IPR2)) != 0) {
- u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */
- emu10k1_voice_t *pvoice = &(emu->p16v_voices[0]);
- orig_status2 = status2;
- if(status2 & mask) {
- if(pvoice->use) {
- snd_pcm_period_elapsed(pvoice->epcm->substream);
- } else {
- snd_printk(KERN_ERR "p16v: status: 0x%08x, mask=0x%08x, pvoice=%p, use=%d\n", status2, mask, pvoice, pvoice->use);
+ if (emu->audigy && emu->revision == 4) { /* P16V */
+ while ((status2 = inl(emu->port + IPR2)) != 0) {
+ u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */
+ emu10k1_voice_t *pvoice = &(emu->p16v_voices[0]);
+ orig_status2 = status2;
+ if(status2 & mask) {
+ if(pvoice->use) {
+ snd_pcm_period_elapsed(pvoice->epcm->substream);
+ } else {
+ snd_printk(KERN_ERR "p16v: status: 0x%08x, mask=0x%08x, pvoice=%p, use=%d\n", status2, mask, pvoice, pvoice->use);
+ }
}
+ outl(orig_status2, emu->port + IPR2); /* ack all */
}
- outl(orig_status2, emu->port + IPR2); /* ack all */
}
-
return IRQ_RETVAL(handled);
}
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-17 15:53 ` Lee Revell
@ 2005-03-17 15:58 ` Takashi Iwai
2005-03-17 16:00 ` Lee Revell
2005-03-17 16:20 ` Lee Revell
2005-03-18 19:52 ` James Courtier-Dutton
1 sibling, 2 replies; 15+ messages in thread
From: Takashi Iwai @ 2005-03-17 15:58 UTC (permalink / raw)
To: Lee Revell; +Cc: James Courtier-Dutton, alsa-devel
At Thu, 17 Mar 2005 10:53:32 -0500,
Lee Revell wrote:
>
> On Wed, 2005-03-16 at 21:28 +0000, James Courtier-Dutton wrote:
> > Thank you for fixing the bug.
> > The "unhandled interrupt" should be commented out. It is used for
> > reverse engineering certain features.
> >
>
> OK, updated patch attached.
Already applied the older one except but the change to printk.
(Is that identical with the new one, right?)
Thanks.
Takashi
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-17 15:58 ` Takashi Iwai
@ 2005-03-17 16:00 ` Lee Revell
2005-03-17 16:20 ` Lee Revell
1 sibling, 0 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-17 16:00 UTC (permalink / raw)
To: Takashi Iwai; +Cc: James Courtier-Dutton, alsa-devel
On Thu, 2005-03-17 at 16:58 +0100, Takashi Iwai wrote:
> At Thu, 17 Mar 2005 10:53:32 -0500,
> Lee Revell wrote:
> >
> > On Wed, 2005-03-16 at 21:28 +0000, James Courtier-Dutton wrote:
> > > Thank you for fixing the bug.
> > > The "unhandled interrupt" should be commented out. It is used for
> > > reverse engineering certain features.
> > >
> >
> > OK, updated patch attached.
>
> Already applied the older one except but the change to printk.
> (Is that identical with the new one, right?)
Yes, that's the only change.
Thanks, I didn't see it on the CVS commit list.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-17 15:58 ` Takashi Iwai
2005-03-17 16:00 ` Lee Revell
@ 2005-03-17 16:20 ` Lee Revell
2005-03-17 16:41 ` Takashi Iwai
1 sibling, 1 reply; 15+ messages in thread
From: Lee Revell @ 2005-03-17 16:20 UTC (permalink / raw)
To: Takashi Iwai; +Cc: James Courtier-Dutton, alsa-devel
On Thu, 2005-03-17 at 16:58 +0100, Takashi Iwai wrote:
> Already applied the older one except but the change to printk.
> (Is that identical with the new one, right?)
Are you sure you committed it? I still haven't seen the CVS commit
message. And there does not seem to be a list delay since I got the
commit message for the "misc oopses" patch immediately.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-17 16:20 ` Lee Revell
@ 2005-03-17 16:41 ` Takashi Iwai
2005-03-17 16:48 ` Lee Revell
0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2005-03-17 16:41 UTC (permalink / raw)
To: Lee Revell; +Cc: James Courtier-Dutton, alsa-devel
At Thu, 17 Mar 2005 11:20:59 -0500,
Lee Revell wrote:
>
> On Thu, 2005-03-17 at 16:58 +0100, Takashi Iwai wrote:
> > Already applied the older one except but the change to printk.
> > (Is that identical with the new one, right?)
>
> Are you sure you committed it? I still haven't seen the CVS commit
> message. And there does not seem to be a list delay since I got the
> commit message for the "misc oopses" patch immediately.
Don't worry. The CVS-commit message order is sometimes screwed.
Takashi
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-17 16:41 ` Takashi Iwai
@ 2005-03-17 16:48 ` Lee Revell
0 siblings, 0 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-17 16:48 UTC (permalink / raw)
To: Takashi Iwai; +Cc: James Courtier-Dutton, alsa-devel
On Thu, 2005-03-17 at 17:41 +0100, Takashi Iwai wrote:
> At Thu, 17 Mar 2005 11:20:59 -0500,
> Lee Revell wrote:
> >
> > On Thu, 2005-03-17 at 16:58 +0100, Takashi Iwai wrote:
> > > Already applied the older one except but the change to printk.
> > > (Is that identical with the new one, right?)
> >
> > Are you sure you committed it? I still haven't seen the CVS commit
> > message. And there does not seem to be a list delay since I got the
> > commit message for the "misc oopses" patch immediately.
>
> Don't worry. The CVS-commit message order is sometimes screwed.
>
OK, now I see it.
Anyway, the CVS commit list is still way more reliable than waiting for
sourceforge CVS...
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-17 15:53 ` Lee Revell
2005-03-17 15:58 ` Takashi Iwai
@ 2005-03-18 19:52 ` James Courtier-Dutton
2005-03-18 19:54 ` Lee Revell
2005-03-18 19:56 ` Lee Revell
1 sibling, 2 replies; 15+ messages in thread
From: James Courtier-Dutton @ 2005-03-18 19:52 UTC (permalink / raw)
To: Lee Revell; +Cc: alsa-devel
Lee Revell wrote:
> On Wed, 2005-03-16 at 21:28 +0000, James Courtier-Dutton wrote:
>
>>Thank you for fixing the bug.
>>The "unhandled interrupt" should be commented out. It is used for
>>reverse engineering certain features.
>>
>
>
> OK, updated patch attached.
>
> Please apply to CVS ASAP, this is a bad bug!
>
> Lee
>
>
I think that this "bad bug" will also effect Audigy 1 cards.
Does that new if statement in the irq handler correctly exclude Audigy 1
cards ?
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-18 19:52 ` James Courtier-Dutton
@ 2005-03-18 19:54 ` Lee Revell
2005-03-18 19:56 ` Lee Revell
1 sibling, 0 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-18 19:54 UTC (permalink / raw)
To: James Courtier-Dutton; +Cc: alsa-devel
On Fri, 2005-03-18 at 19:52 +0000, James Courtier-Dutton wrote:
> Lee Revell wrote:
> > On Wed, 2005-03-16 at 21:28 +0000, James Courtier-Dutton wrote:
> >
> >>Thank you for fixing the bug.
> >>The "unhandled interrupt" should be commented out. It is used for
> >>reverse engineering certain features.
> >>
> >
> >
> > OK, updated patch attached.
> >
> > Please apply to CVS ASAP, this is a bad bug!
> >
> > Lee
> >
> >
>
> I think that this "bad bug" will also effect Audigy 1 cards.
> Does that new if statement in the irq handler correctly exclude Audigy 1
> cards ?
>
Yes it uses the same logic you used to detect the P16V, if (emu->audigy
&& emu->revision==4) IIRC.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards
2005-03-18 19:52 ` James Courtier-Dutton
2005-03-18 19:54 ` Lee Revell
@ 2005-03-18 19:56 ` Lee Revell
1 sibling, 0 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-18 19:56 UTC (permalink / raw)
To: James Courtier-Dutton; +Cc: alsa-devel
On Fri, 2005-03-18 at 19:52 +0000, James Courtier-Dutton wrote:
> Lee Revell wrote:
> > On Wed, 2005-03-16 at 21:28 +0000, James Courtier-Dutton wrote:
> >
> >>Thank you for fixing the bug.
> >>The "unhandled interrupt" should be commented out. It is used for
> >>reverse engineering certain features.
> >>
> >
> >
> > OK, updated patch attached.
> >
> > Please apply to CVS ASAP, this is a bad bug!
> >
> > Lee
> >
> >
>
> I think that this "bad bug" will also effect Audigy 1 cards.
> Does that new if statement in the irq handler correctly exclude Audigy 1
> cards ?
>
Also pzad once said he suspected the Audigy1 card also has a P16V.
Might be worth a try. But I have no Audigy1 hardware.
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] emu10k1: fix misc oopses
2005-03-16 5:21 [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards Lee Revell
2005-03-16 5:27 ` Lee Revell
@ 2005-03-17 14:11 ` Thierry Vignaud
2005-03-17 15:02 ` Lee Revell
2005-03-17 16:01 ` Takashi Iwai
1 sibling, 2 replies; 15+ messages in thread
From: Thierry Vignaud @ 2005-03-17 14:11 UTC (permalink / raw)
To: Lee Revell; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 733 bytes --]
Lee Revell <rlrevell@joe-job.com> writes:
> The P16V patch unconditionally checks the IPR2 register in the
> interrupt handler resulting in infinite loop and system lockup on
> any non Audigy2 cards. I really hate checking emu->is_audigy and
> emu->revision in a fast path like the IRQ handler but I don't see
> another way.
>
> Also, don't bother allocating/freeing the DMA buffer for P16V unless
> it's really present.
>
> This is a critical fix and should trigger an immediate rc2 release
> IMO. Currently any emu10k1 users other than Audigy 2 will lock up
> hard as soon as they play any sound.
>
> Signed-Off-By: Lee Revell <rlrevell@joe-job.com>
fix more oopses:
Signed-Off-By: Arnaud Patard <apatard@mandrakesoft.com>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: alsa2.diff --]
[-- Type: text/x-patch, Size: 1562 bytes --]
Index: emumixer.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/emu10k1/emumixer.c,v
retrieving revision 1.32
diff -u -r1.32 emumixer.c
--- emumixer.c 13 Mar 2005 12:17:09 -0000 1.32
+++ emumixer.c 16 Mar 2005 17:10:10 -0000
@@ -482,9 +482,13 @@
change = 1;
}
}
- if (change && mix->epcm->voices[ch])
- update_emu10k1_fxrt(emu, mix->epcm->voices[ch]->number,
- &mix->send_routing[0][0]);
+
+ if (change && mix->epcm) {
+ if (mix->epcm->voices[ch]) {
+ update_emu10k1_fxrt(emu, mix->epcm->voices[ch]->number,
+ &mix->send_routing[0][0]);
+ }
+ }
spin_unlock_irqrestore(&emu->reg_lock, flags);
return change;
}
@@ -544,9 +548,12 @@
change = 1;
}
}
- if (change && mix->epcm->voices[ch])
- update_emu10k1_send_volume(emu, mix->epcm->voices[ch]->number,
- &mix->send_volume[0][0]);
+ if (change && mix->epcm) {
+ if (mix->epcm->voices[ch]) {
+ update_emu10k1_send_volume(emu, mix->epcm->voices[ch]->number,
+ &mix->send_volume[0][0]);
+ }
+ }
spin_unlock_irqrestore(&emu->reg_lock, flags);
return change;
}
@@ -600,8 +607,11 @@
mix->attn[0] = val;
change = 1;
}
- if (change && mix->epcm->voices[ch])
- snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[ch]->number, mix->attn[0]);
+ if (change && mix->epcm) {
+ if (mix->epcm->voices[ch]) {
+ snd_emu10k1_ptr_write(emu, VTFT_VOLUMETARGET, mix->epcm->voices[ch]->number, mix->attn[0]);
+ }
+ }
spin_unlock_irqrestore(&emu->reg_lock, flags);
return change;
}
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH] emu10k1: fix misc oopses
2005-03-17 14:11 ` [PATCH] emu10k1: fix misc oopses Thierry Vignaud
@ 2005-03-17 15:02 ` Lee Revell
2005-03-17 16:01 ` Takashi Iwai
1 sibling, 0 replies; 15+ messages in thread
From: Lee Revell @ 2005-03-17 15:02 UTC (permalink / raw)
To: Thierry Vignaud; +Cc: alsa-devel
On Thu, 2005-03-17 at 15:11 +0100, Thierry Vignaud wrote:
> Lee Revell <rlrevell@joe-job.com> writes:
>
> > The P16V patch unconditionally checks the IPR2 register in the
> > interrupt handler resulting in infinite loop and system lockup on
> > any non Audigy2 cards. I really hate checking emu->is_audigy and
> > emu->revision in a fast path like the IRQ handler but I don't see
> > another way.
> >
> > Also, don't bother allocating/freeing the DMA buffer for P16V unless
> > it's really present.
> >
> > This is a critical fix and should trigger an immediate rc2 release
> > IMO. Currently any emu10k1 users other than Audigy 2 will lock up
> > hard as soon as they play any sound.
> >
> > Signed-Off-By: Lee Revell <rlrevell@joe-job.com>
>
> fix more oopses:
>
> Signed-Off-By: Arnaud Patard <apatard@mandrakesoft.com>
OK, those are clearly my fault.
Sounds like this could also fix OSDL bug 4282:
http://bugme.osdl.org/show_bug.cgi?id=4282
Lee
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] emu10k1: fix misc oopses
2005-03-17 14:11 ` [PATCH] emu10k1: fix misc oopses Thierry Vignaud
2005-03-17 15:02 ` Lee Revell
@ 2005-03-17 16:01 ` Takashi Iwai
1 sibling, 0 replies; 15+ messages in thread
From: Takashi Iwai @ 2005-03-17 16:01 UTC (permalink / raw)
To: Thierry Vignaud; +Cc: Lee Revell, alsa-devel
At Thu, 17 Mar 2005 15:11:19 +0100,
Thierry Vignaud wrote:
>
> [1 <text/plain (7bit)>]
> Lee Revell <rlrevell@joe-job.com> writes:
>
> > The P16V patch unconditionally checks the IPR2 register in the
> > interrupt handler resulting in infinite loop and system lockup on
> > any non Audigy2 cards. I really hate checking emu->is_audigy and
> > emu->revision in a fast path like the IRQ handler but I don't see
> > another way.
> >
> > Also, don't bother allocating/freeing the DMA buffer for P16V unless
> > it's really present.
> >
> > This is a critical fix and should trigger an immediate rc2 release
> > IMO. Currently any emu10k1 users other than Audigy 2 will lock up
> > hard as soon as they play any sound.
> >
> > Signed-Off-By: Lee Revell <rlrevell@joe-job.com>
>
> fix more oopses:
>
> Signed-Off-By: Arnaud Patard <apatard@mandrakesoft.com>
Thanks. Applied now.
Takashi
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2005-03-18 19:56 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-16 5:21 [PATCH] emu10k1: fix P16V breakage for non Audigy2 cards Lee Revell
2005-03-16 5:27 ` Lee Revell
2005-03-16 21:28 ` James Courtier-Dutton
2005-03-17 15:53 ` Lee Revell
2005-03-17 15:58 ` Takashi Iwai
2005-03-17 16:00 ` Lee Revell
2005-03-17 16:20 ` Lee Revell
2005-03-17 16:41 ` Takashi Iwai
2005-03-17 16:48 ` Lee Revell
2005-03-18 19:52 ` James Courtier-Dutton
2005-03-18 19:54 ` Lee Revell
2005-03-18 19:56 ` Lee Revell
2005-03-17 14:11 ` [PATCH] emu10k1: fix misc oopses Thierry Vignaud
2005-03-17 15:02 ` Lee Revell
2005-03-17 16:01 ` Takashi Iwai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.