2005-10-03 06:23:52

by Peter Zubaj

[permalink] [raw]
Subject: Re: [Alsa-devel] Re: [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.

AFAIK this was fixed in CVS. Two cards have same model id (one has AC97, one not).

Fix:

http://sourceforge.net/mailarchive/forum.php?thread_id=8360485&forum_id=33141

Peter Zubaj

>-----P?vodn? spr?va-----
>Od: Dave Jones [mailto:[email protected]]
>Odoslan?: 3. okt?bra 2005 1:28
>Komu: Linux Kernel Mailing List
>K?pia: [email protected]; [email protected]; [email protected]
>Predmet: [Alsa-devel] Re: [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.
>
>
>On Tue, Sep 13, 2005 at 12:07:43PM -0700, Linux Kernel wrote:
>> tree b885c7a937061624c7f7e34444122b96cced5c16
>> parent 1b44c28dc180f4d0ea109e1fe4339b3403c2d530
>> author James Courtier-Dutton <[email protected]> Sat, 10 Sep 2005 10:24:10 +0200
>> committer Jaroslav Kysela <[email protected]> Mon, 12 Sep 2005 10:48:32 +0200
>>
>> [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.
>>
>> EMU10K1/EMU10K2 driver
>> The card does not have an AC97 chip.
>> .subsystem = 0x80611102
>>
>> Signed-off-by: James Courtier-Dutton <[email protected]>
>>
>> sound/pci/emu10k1/emu10k1_main.c | 5 ++---
>> 1 files changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
>> --- a/sound/pci/emu10k1/emu10k1_main.c
>> +++ b/sound/pci/emu10k1/emu10k1_main.c
>> @@ -754,12 +754,11 @@ static emu_chip_details_t emu_chip_detai
>> .emu10k1_chip = 1,
>> .ac97_chip = 1,
>> .sblive51 = 1} ,
>> - /* Tested by alsa bugtrack user "hus" 12th Sept 2005 */
>> + /* Tested by alsa bugtrack user "hus" bug #1297 12th Aug 2005 */
>> {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80611102,
>> - .driver = "EMU10K1", .name = "SBLive! Player 5.1 [SB0060]",
>> + .driver = "EMU10K1", .name = "SBLive! Platinum 5.1 [SB0060]",
>> .id = "Live",
>> .emu10k1_chip = 1,
>> - .ac97_chip = 1,
>> .sblive51 = 1} ,
>> {.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80511102,
>> .driver = "EMU10K1", .name = "SBLive! Value [CT4850]",
>
>That last line change reverts..
>
>tree efc4e418c80bf61beb2e1cfd1b2db405b471111f
>parent 9970dce56686d7b71310388025d8925d3d29e6ec
>author Takashi Iwai <[email protected]> Fri, 26 Aug 2005 17:26:40 +0200
>committer Jaroslav Kysela <[email protected]> Tue, 30 Aug 2005 08:47:46 +0200
>
>[ALSA] emu10k1 - Add missing ac97 support on SBLive! Player 5.1
>
>EMU10K1/EMU10K2 driver
>Added the missing ac97 support on SBLive! Player 5.1.
>
>And makes peoples volume sliders disappear, which tends to upset folks.
>See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=169152
>for reference.
>
>Signed-off-by: Dave Jones <[email protected]>
>
>--- linux-2.6.13/sound/pci/emu10k1/emu10k1_main.c~ 2005-10-02 21:26:40.000000000 -0400
>+++ linux-2.6.13/sound/pci/emu10k1/emu10k1_main.c 2005-10-02 21:26:57.000000000 -0400
>@@ -759,6 +759,7 @@ static emu_chip_details_t emu_chip_detai
>.driver = "EMU10K1", .name = "SBLive! Platinum 5.1 [SB0060]",
>.id = "Live",
>.emu10k1_chip = 1,
>+ .ac97_chip = 1,
>.sblive51 = 1} ,
>{.vendor = 0x1102, .device = 0x0002, .subsystem = 0x80511102,
>.driver = "EMU10K1", .name = "SBLive! Value [CT4850]",
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by:
>Power Architecture Resource Center: Free content, downloads, discussions,
>and more. http://solutions.newsforge.com/ibmarch.tmpl
>_______________________________________________
>Alsa-devel mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/alsa-devel



Aktivujte si neobmedzenu mailovu schranku na http://www.pobox.sk!



2005-10-04 00:54:47

by Dave Jones

[permalink] [raw]
Subject: Re: [Alsa-devel] Re: [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.

On Mon, Oct 03, 2005 at 08:23:28AM +0200, Peter Zubaj wrote:
> AFAIK this was fixed in CVS. Two cards have same model id (one has AC97, one not).
>
> Fix:
>
> http://sourceforge.net/mailarchive/forum.php?thread_id=8360485&forum_id=33141
>

>From the look of that patch, this will just print
"emu10k1: AC97 is optional on this board Proceeding without ac97 mixers..."
and do nothing about actually making things work for people again,
or even to suggest what they can do to work around this situation
when their volume control breaks. At the least this sounds like it
needs to mention a module parameter to force ac97 support.

What actually happens if we set ac97_chip=1 on the boards that
don't have it ? Is it purely a cosmetic thing, showing some
sliders that do nothing?

Dave

2005-10-04 06:40:16

by Peter Zubaj

[permalink] [raw]
Subject: Re: Re: [Alsa-devel] Re: [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.


If ac97_chip=1 and ac97 doesn't exists - driver will refuse to load.
If ac97_chip=2 and ac97 doesn't exists - driver should ignore ac97

But I don't know if this is correct (I am not author of patch and I not tested it).
if message is printed then there is
goto no_ac97; /* FIXME: get rid of ugly gotos.. */
this will skip ac97 mixer creation (if ac97 is not there this will fail and driver refuses to load)
But I don't know if snd_ac97_bus will fail if there is no ac97 codec (I think - not, and this is not correct), then test should be done on snd_ac97_mixer and not on snd_ac97_bus creation.

Peter Zubaj

>-----P?vodn? spr?va-----
>Od: Dave Jones [mailto:[email protected]]
>Odoslan?: 4. okt?bra 2005 0:54
>Komu: Peter Zubaj
>K?pia: [email protected]; [email protected]; Linux Kernel Mailing List; [email protected]
>Predmet: Re: [Alsa-devel] Re: [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.
>
>
>On Mon, Oct 03, 2005 at 08:23:28AM +0200, Peter Zubaj wrote:
>> AFAIK this was fixed in CVS. Two cards have same model id (one has AC97, one not).
>>
>> Fix:
>>
>> http://sourceforge.net/mailarchive/forum.php?thread_id=8360485&forum_id=33141
>>
>
>From the look of that patch, this will just print
>"emu10k1: AC97 is optional on this board Proceeding without ac97 mixers..."
>and do nothing about actually making things work for people again,
>or even to suggest what they can do to work around this situation
>when their volume control breaks. At the least this sounds like it
>needs to mention a module parameter to force ac97 support.
>
>What actually happens if we set ac97_chip=1 on the boards that
>don't have it ? Is it purely a cosmetic thing, showing some
>sliders that do nothing?
>
>Dave
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by:
>Power Architecture Resource Center: Free content, downloads, discussions,
>and more. http://solutions.newsforge.com/ibmarch.tmpl
>_______________________________________________
>Alsa-devel mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/alsa-devel



Aktivujte si neobmedzenu mailovu schranku na http://www.pobox.sk!


2005-10-04 10:51:06

by Takashi Iwai

[permalink] [raw]
Subject: Re: [Alsa-devel] Re: [ALSA] snd-emu10k1: ALSA bug#1297: Fix a error recognising the SB Live Platinum.

At Tue, 04 Oct 2005 08:39:36 +0200,
Peter Zubaj wrote:
>
>
> If ac97_chip=1 and ac97 doesn't exists - driver will refuse to load.
> If ac97_chip=2 and ac97 doesn't exists - driver should ignore ac97
>
> But I don't know if this is correct (I am not author of patch and I not tested it).
> if message is printed then there is
> goto no_ac97; /* FIXME: get rid of ugly gotos.. */
> this will skip ac97 mixer creation (if ac97 is not there this will fail and driver refuses to load)
> But I don't know if snd_ac97_bus will fail if there is no ac97 codec (I think - not, and this is not correct), then test should be done on snd_ac97_mixer and not on snd_ac97_bus creation.

You're right. The additional patch below fixes it.


Takashi


--- linux/sound/pci/emu10k1/emumixer.c 29 Sep 2005 17:59:43 -0000 1.38
+++ linux/sound/pci/emu10k1/emumixer.c 4 Oct 2005 10:48:42 -0000
@@ -802,21 +802,21 @@
.read = snd_emu10k1_ac97_read,
};

- if ((err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus)) < 0) {
- if (emu->card_capabilities->ac97_chip == 1)
- return err;
- snd_printd(KERN_INFO "emu10k1: AC97 is optional on this board\n");
- snd_printd(KERN_INFO" Proceeding without ac97 mixers...\n");
- goto no_ac97; /* FIXME: get rid of ugly gotos.. */
- }
+ if ((err = snd_ac97_bus(emu->card, 0, &ops, NULL, &pbus)) < 0)
+ return err;
pbus->no_vra = 1; /* we don't need VRA */

memset(&ac97, 0, sizeof(ac97));
ac97.private_data = emu;
ac97.private_free = snd_emu10k1_mixer_free_ac97;
ac97.scaps = AC97_SCAP_NO_SPDIF;
- if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0)
- return err;
+ if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0) {
+ if (emu->card_capabilities->ac97_chip == 1)
+ return err;
+ snd_printd(KERN_INFO "emu10k1: AC97 is optional on this board\n");
+ snd_printd(KERN_INFO" Proceeding without ac97 mixers...\n");
+ goto no_ac97; /* FIXME: get rid of ugly gotos.. */
+ }
if (emu->audigy) {
/* set master volume to 0 dB */
snd_ac97_write(emu->ac97, AC97_MASTER, 0x0000);