Commit 8dca7ffe authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ALSA: sb - Fix wrong assertions
  ALSA: aw2 - Fix Oops at initialization
parents 945754a1 3e14b50d
...@@ -925,7 +925,7 @@ static unsigned char als4000_saved_regs[] = { ...@@ -925,7 +925,7 @@ static unsigned char als4000_saved_regs[] = {
static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs) static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
{ {
unsigned char *val = chip->saved_regs; unsigned char *val = chip->saved_regs;
snd_assert(num_regs > ARRAY_SIZE(chip->saved_regs), return); snd_assert(num_regs <= ARRAY_SIZE(chip->saved_regs), return);
for (; num_regs; num_regs--) for (; num_regs; num_regs--)
*val++ = snd_sbmixer_read(chip, *regs++); *val++ = snd_sbmixer_read(chip, *regs++);
} }
...@@ -933,7 +933,7 @@ static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs) ...@@ -933,7 +933,7 @@ static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
static void restore_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs) static void restore_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
{ {
unsigned char *val = chip->saved_regs; unsigned char *val = chip->saved_regs;
snd_assert(num_regs > ARRAY_SIZE(chip->saved_regs), return); snd_assert(num_regs <= ARRAY_SIZE(chip->saved_regs), return);
for (; num_regs; num_regs--) for (; num_regs; num_regs--)
snd_sbmixer_write(chip, *regs++, *val++); snd_sbmixer_write(chip, *regs++, *val++);
} }
......
...@@ -316,6 +316,8 @@ static int __devinit snd_aw2_create(struct snd_card *card, ...@@ -316,6 +316,8 @@ static int __devinit snd_aw2_create(struct snd_card *card,
return -ENOMEM; return -ENOMEM;
} }
/* (2) initialization of the chip hardware */
snd_aw2_saa7146_setup(&chip->saa7146, chip->iobase_virt);
if (request_irq(pci->irq, snd_aw2_saa7146_interrupt, if (request_irq(pci->irq, snd_aw2_saa7146_interrupt,
IRQF_SHARED, "Audiowerk2", chip)) { IRQF_SHARED, "Audiowerk2", chip)) {
...@@ -329,8 +331,6 @@ static int __devinit snd_aw2_create(struct snd_card *card, ...@@ -329,8 +331,6 @@ static int __devinit snd_aw2_create(struct snd_card *card,
} }
chip->irq = pci->irq; chip->irq = pci->irq;
/* (2) initialization of the chip hardware */
snd_aw2_saa7146_setup(&chip->saa7146, chip->iobase_virt);
err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops);
if (err < 0) { if (err < 0) {
free_irq(chip->irq, (void *)chip); free_irq(chip->irq, (void *)chip);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment