From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754637AbZICGRV (ORCPT ); Thu, 3 Sep 2009 02:17:21 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754538AbZICGRU (ORCPT ); Thu, 3 Sep 2009 02:17:20 -0400 Received: from cantor2.suse.de ([195.135.220.15]:36643 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754582AbZICGRS (ORCPT ); Thu, 3 Sep 2009 02:17:18 -0400 Date: Thu, 03 Sep 2009 08:17:20 +0200 Message-ID: From: Takashi Iwai To: Linus Torvalds Cc: Andrew Morton , linux-kernel@vger.kernel.org Subject: [GIT PULL] sound (pci/oxygen) fixes User-Agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.7 Emacs/23.1 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Linus, please pull sound driver fixes for v2.6.31-rc8 from: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git fix/oxygen containing the following two (regression) fixes for PCI oxygen driver. Very local, thus pretty safe to apply. Thanks! Takashi === Clemens Ladisch (2): sound: oxygen: fix MCLK rate for 192 kHz playback sound: oxygen: handle cards with missing EEPROM --- sound/pci/oxygen/oxygen_lib.c | 3 +++ sound/pci/oxygen/oxygen_pcm.c | 2 ++ 2 files changed, 5 insertions(+), 0 deletions(-) diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c index 312251d..9a8936e 100644 --- a/sound/pci/oxygen/oxygen_lib.c +++ b/sound/pci/oxygen/oxygen_lib.c @@ -260,6 +260,9 @@ oxygen_search_pci_id(struct oxygen *chip, const struct pci_device_id ids[]) * chip didn't if the first EEPROM word was overwritten. */ subdevice = oxygen_read_eeprom(chip, 2); + /* use default ID if EEPROM is missing */ + if (subdevice == 0xffff) + subdevice = 0x8788; /* * We use only the subsystem device ID for searching because it is * unique even without the subsystem vendor ID, which may have been diff --git a/sound/pci/oxygen/oxygen_pcm.c b/sound/pci/oxygen/oxygen_pcm.c index 3b5ca70..ef2345d 100644 --- a/sound/pci/oxygen/oxygen_pcm.c +++ b/sound/pci/oxygen/oxygen_pcm.c @@ -469,9 +469,11 @@ static int oxygen_multich_hw_params(struct snd_pcm_substream *substream, oxygen_write16_masked(chip, OXYGEN_I2S_MULTICH_FORMAT, oxygen_rate(hw_params) | chip->model.dac_i2s_format | + oxygen_i2s_mclk(hw_params) | oxygen_i2s_bits(hw_params), OXYGEN_I2S_RATE_MASK | OXYGEN_I2S_FORMAT_MASK | + OXYGEN_I2S_MCLK_MASK | OXYGEN_I2S_BITS_MASK); oxygen_update_dac_routing(chip); oxygen_update_spdif_source(chip);