diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/emu10k1/emu10k1_main.c | 5 | ||||
-rw-r--r-- | sound/pci/emu10k1/emumixer.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index e87e8427f25f..e9cd8e054f25 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c | |||
@@ -756,9 +756,12 @@ static emu_chip_details_t emu_chip_details[] = { | |||
756 | .sblive51 = 1} , | 756 | .sblive51 = 1} , |
757 | /* Tested by alsa bugtrack user "hus" bug #1297 12th Aug 2005 */ | 757 | /* Tested by alsa bugtrack user "hus" bug #1297 12th Aug 2005 */ |
758 | {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80611102, | 758 | {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80611102, |
759 | .driver = "EMU10K1", .name = "SBLive! Platinum 5.1 [SB0060]", | 759 | .driver = "EMU10K1", .name = "SBLive 5.1 [SB0060]", |
760 | .id = "Live", | 760 | .id = "Live", |
761 | .emu10k1_chip = 1, | 761 | .emu10k1_chip = 1, |
762 | .ac97_chip = 2, /* ac97 is optional; both SBLive 5.1 and platinum | ||
763 | * share the same IDs! | ||
764 | */ | ||
762 | .sblive51 = 1} , | 765 | .sblive51 = 1} , |
763 | {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80511102, | 766 | {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80511102, |
764 | .driver = "EMU10K1", .name = "SBLive! Value [CT4850]", | 767 | .driver = "EMU10K1", .name = "SBLive! Value [CT4850]", |
diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index d71a72e84bcc..6994f90bb83a 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c | |||
@@ -802,8 +802,13 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, | |||
802 | .read = snd_emu10k1_ac97_read, | 802 | .read = snd_emu10k1_ac97_read, |
803 | }; | 803 | }; |
804 | 804 | ||
805 | if ((err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus)) < 0) | 805 | if ((err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus)) < 0) { |
806 | return err; | 806 | if (emu->card_capabilities->ac97_chip == 1) |
807 | return err; | ||
808 | snd_printd(KERN_INFO "emu10k1: AC97 is optional on this board\n"); | ||
809 | snd_printd(KERN_INFO" Proceeding without ac97 mixers...\n"); | ||
810 | goto no_ac97; /* FIXME: get rid of ugly gotos.. */ | ||
811 | } | ||
807 | pbus->no_vra = 1; /* we don't need VRA */ | 812 | pbus->no_vra = 1; /* we don't need VRA */ |
808 | 813 | ||
809 | memset(&ac97, 0, sizeof(ac97)); | 814 | memset(&ac97, 0, sizeof(ac97)); |
@@ -836,6 +841,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, | |||
836 | for (; *c; c++) | 841 | for (; *c; c++) |
837 | remove_ctl(card, *c); | 842 | remove_ctl(card, *c); |
838 | } else { | 843 | } else { |
844 | no_ac97: | ||
839 | if (emu->card_capabilities->ecard) | 845 | if (emu->card_capabilities->ecard) |
840 | strcpy(emu->card->mixername, "EMU APS"); | 846 | strcpy(emu->card->mixername, "EMU APS"); |
841 | else if (emu->audigy) | 847 | else if (emu->audigy) |