linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / sound / pci / ymfpci / ymfpci_main.c
index a55b5fd..a1aa74b 100644 (file)
@@ -536,30 +536,15 @@ static void snd_ymfpci_pcm_init_voice(struct snd_ymfpci_pcm *ypcm, unsigned int
                        }
                }
                if (ypcm->output_rear) {
-                       if (!ypcm->swap_rear) {
-                               if (use_left) {
-                                       bank->eff2_gain =
-                                       bank->eff2_gain_end = vol_left;
-                               }
-                               if (use_right) {
-                                       bank->eff3_gain =
-                                       bank->eff3_gain_end = vol_right;
-                               }
-                       } else {
-                               /* The SPDIF out channels seem to be swapped, so we have
-                                * to swap them here, too.  The rear analog out channels
-                                * will be wrong, but otherwise AC3 would not work.
-                                */
-                               if (use_left) {
-                                       bank->eff3_gain =
-                                       bank->eff3_gain_end = vol_left;
-                               }
-                               if (use_right) {
-                                       bank->eff2_gain =
-                                       bank->eff2_gain_end = vol_right;
-                               }
-                       }
-                }
+                       if (use_left) {
+                               bank->eff2_gain =
+                               bank->eff2_gain_end = vol_left;
+                       }
+                       if (use_right) {
+                               bank->eff3_gain =
+                               bank->eff3_gain_end = vol_right;
+                       }
+               }
        }
 }
 
@@ -909,7 +894,6 @@ static int snd_ymfpci_playback_open(struct snd_pcm_substream *substream)
        ypcm = runtime->private_data;
        ypcm->output_front = 1;
        ypcm->output_rear = chip->mode_dup4ch ? 1 : 0;
-       ypcm->swap_rear = chip->rear_swap;
        spin_lock_irq(&chip->reg_lock);
        if (ypcm->output_rear) {
                ymfpci_open_extension(chip);
@@ -1750,7 +1734,7 @@ static void snd_ymfpci_mixer_free_ac97(struct snd_ac97 *ac97)
        chip->ac97 = NULL;
 }
 
-int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rear_swap)
+int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch)
 {
        struct snd_ac97_template ac97;
        struct snd_kcontrol *kctl;
@@ -1762,7 +1746,6 @@ int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rea
                .read = snd_ymfpci_codec_read,
        };
 
-       chip->rear_swap = rear_swap;
        if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus)) < 0)
                return err;
        chip->ac97_bus->private_free = snd_ymfpci_mixer_free_ac97_bus;
@@ -1919,7 +1902,7 @@ static int __devinit snd_ymfpci_proc_init(struct snd_card *card, struct snd_ymfp
        struct snd_info_entry *entry;
        
        if (! snd_card_proc_new(card, "ymfpci", &entry))
-               snd_info_set_text_ops(entry, chip, snd_ymfpci_proc_read);
+               snd_info_set_text_ops(entry, chip, 1024, snd_ymfpci_proc_read);
        return 0;
 }
 
@@ -2288,7 +2271,7 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
                snd_ymfpci_free(chip);
                return -EBUSY;
        }
-       if (request_irq(pci->irq, snd_ymfpci_interrupt, IRQF_DISABLED|IRQF_SHARED, "YMFPCI", (void *) chip)) {
+       if (request_irq(pci->irq, snd_ymfpci_interrupt, SA_INTERRUPT|SA_SHIRQ, "YMFPCI", (void *) chip)) {
                snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
                snd_ymfpci_free(chip);
                return -EBUSY;
@@ -2310,7 +2293,6 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
                return -EIO;
        }
 
-       chip->rear_swap = 1;
        if ((err = snd_ymfpci_ac3_init(chip)) < 0) {
                snd_ymfpci_free(chip);
                return err;