diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-10-26 23:51:43 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-10-26 23:51:43 +0200 |
commit | d22665702226e9c40bc331098559e3d55e7cd43d (patch) | |
tree | 6e92734c9835dc9e064b20182624939f3486d28d /sound/pci/via82xx.c | |
parent | 5cdf745ebae0f5bcf9b798d8fd5cb57add592cc1 (diff) | |
parent | dde7ad8dee274763c8958769779aea8c993c950e (diff) | |
download | linux-3.10-d22665702226e9c40bc331098559e3d55e7cd43d.tar.gz linux-3.10-d22665702226e9c40bc331098559e3d55e7cd43d.tar.bz2 linux-3.10-d22665702226e9c40bc331098559e3d55e7cd43d.zip |
Merge branch 'topic/misc' into for-linus
Diffstat (limited to 'sound/pci/via82xx.c')
-rw-r--r-- | sound/pci/via82xx.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index f03fd620a2a..c3656fffdb5 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -1175,6 +1175,7 @@ static int snd_via82xx_pcm_open(struct via82xx *chip, struct viadev *viadev, struct snd_pcm_runtime *runtime = substream->runtime; int err; struct via_rate_lock *ratep; + bool use_src = false; runtime->hw = snd_via82xx_hw; @@ -1196,6 +1197,7 @@ static int snd_via82xx_pcm_open(struct via82xx *chip, struct viadev *viadev, SNDRV_PCM_RATE_8000_48000); runtime->hw.rate_min = 8000; runtime->hw.rate_max = 48000; + use_src = true; } else if (! ratep->rate) { int idx = viadev->direction ? AC97_RATES_ADC : AC97_RATES_FRONT_DAC; runtime->hw.rates = chip->ac97->rates[idx]; @@ -1212,6 +1214,12 @@ static int snd_via82xx_pcm_open(struct via82xx *chip, struct viadev *viadev, if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) return err; + if (use_src) { + err = snd_pcm_hw_rule_noresample(runtime, 48000); + if (err < 0) + return err; + } + runtime->private_data = viadev; viadev->substream = substream; @@ -2068,8 +2076,9 @@ static int __devinit snd_via686_init_misc(struct via82xx *chip) pci_write_config_byte(chip->pci, VIA_PNP_CONTROL, legacy_cfg); if (chip->mpu_res) { if (snd_mpu401_uart_new(chip->card, 0, MPU401_HW_VIA686A, - mpu_port, MPU401_INFO_INTEGRATED, - chip->irq, 0, &chip->rmidi) < 0) { + mpu_port, MPU401_INFO_INTEGRATED | + MPU401_INFO_IRQ_HOOK, -1, + &chip->rmidi) < 0) { printk(KERN_WARNING "unable to initialize MPU-401" " at 0x%lx, skipping\n", mpu_port); legacy &= ~VIA_FUNC_ENABLE_MIDI; |