| From 92653453c3015c083b9fe0ad48261c6b2267d482 Mon Sep 17 00:00:00 2001 |
| From: Clemens Ladisch <clemens@ladisch.de> |
| Date: Wed, 2 Sep 2009 18:25:39 +0200 |
| Subject: sound: oxygen: handle cards with missing EEPROM |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Clemens Ladisch <clemens@ladisch.de> |
| |
| commit 92653453c3015c083b9fe0ad48261c6b2267d482 upstream. |
| |
| The card model detection code introduced in 2.6.30 that tries to work |
| around partially broken EEPROM contents by reading the EEPROM directly |
| does not handle cards where the EEPROM has been omitted. In this case, |
| we have to use the default ID to allow the driver to load. |
| |
| Signed-off-by: Clemens Ladisch <clemens@ladisch.de> |
| Reported-and-tested-by: Ozan Çağlayan <ozan@pardus.org.tr> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| sound/pci/oxygen/oxygen_lib.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- 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 |
| * 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 |