ChangeSet 1.2181.25.20, 2005/03/22 09:07:30+01:00, [EMAIL PROTECTED]

        [ALSA] fix misc oopses
        
        EMU10K1/EMU10K2 driver
        Fix Oops with Multi-channel (EFX) mixer controls.
        
        Signed-off-by: Arnaud Patard <[EMAIL PROTECTED]>
        Signed-off-by: Takashi Iwai <[EMAIL PROTECTED]>



 emumixer.c |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)


diff -Nru a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c
--- a/sound/pci/emu10k1/emumixer.c      2005-03-30 16:13:25 -08:00
+++ b/sound/pci/emu10k1/emumixer.c      2005-03-30 16:13:25 -08:00
@@ -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;
 }
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to