diff options
author | 2009-09-28 11:05:18 +0200 | |
---|---|---|
committer | 2009-09-28 11:53:21 +0200 | |
commit | 87b61902ce3dec23a2d8256b9cfcf4e28786a320 (patch) | |
tree | 4d8785a7c6048386f7ff725d34260ea3cc637aad | |
parent | Linux 2.6.32-rc1 (diff) | |
download | linux-87b61902ce3dec23a2d8256b9cfcf4e28786a320.tar.gz linux-87b61902ce3dec23a2d8256b9cfcf4e28786a320.tar.bz2 linux-87b61902ce3dec23a2d8256b9cfcf4e28786a320.zip |
sound: oxygen: do not try to restore nonexistent EEPROM
On cards where the EEPROM was deliberately omitted, we do not need to
try to restore the EEPROM's contents.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/oxygen/oxygen_lib.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c index 9a8936e20744..c9f271419eb8 100644 --- a/sound/pci/oxygen/oxygen_lib.c +++ b/sound/pci/oxygen/oxygen_lib.c @@ -278,7 +278,11 @@ oxygen_search_pci_id(struct oxygen *chip, const struct pci_device_id ids[]) static void oxygen_restore_eeprom(struct oxygen *chip, const struct pci_device_id *id) { - if (oxygen_read_eeprom(chip, 0) != OXYGEN_EEPROM_ID) { + u16 eeprom_id; + + eeprom_id = oxygen_read_eeprom(chip, 0); + if (eeprom_id != OXYGEN_EEPROM_ID && + (eeprom_id != 0xffff || id->subdevice != 0x8788)) { /* * This function gets called only when a known card model has * been detected, i.e., we know there is a valid subsystem |