openvortex-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openvortex-dev] Re: Re: [ALSA - driver 0001138]: errors when inst


From: Raymond
Subject: Re: [Openvortex-dev] Re: Re: [ALSA - driver 0001138]: errors when installing au8820 modules
Date: Tue, 28 Jun 2005 15:50:54 +0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.7.7) Gecko/20050504 Fedora/1.7.7-1.1.2.legacy

Igor Kovalenko wrote:
Raymond wrote:
Igor Kovalenko wrote:

Well, I've not stated the problem clearly enough.
Once set, volume stays as it should. The problem is that
PCM volume is:
1% - at lowest audible level
25% - at about 50% audible level
49% - at about max audible level
51% - at lowest audible level
75% - at about 50% audible level
99% - at about max audible level
- that is what I described as low-high-low-high.
On the other hand, Master volume behaves as expected.



What is the value of comment.range of 'PCM Playback Volume' in
/etc/asound.state for your STAC9704 (au8820) ?


According to 9704SPEC.pdf, it should be '0-31' ( 5 bits ) for STAC9704
PCM Out volume.



        control.21 {
                comment.access 'read write'
                comment.type INTEGER
                comment.count 2
                comment.range '0 - 63'
                iface MIXER
                name 'PCM Playback Volume'
                value.0 21
                value.1 21
        }

Do you mean AC97 is incorrectly reporting 0...63 range?



Try the following patch to log the read/write of ac97 and post the
system log using dmesg. (loading au8820 and alsactl restore)


alsa-driver-1.0.9b/alsa-kernel/pci/au88x0/au88x0_core.c
@@ -2520,6 +2515,7 @@
        vortex_t *card = (vortex_t *) codec->private_data;
        unsigned int lifeboat = 0;

+       printk(KERN_INFO "ac97 write %.2x : %.4x\n",addr,data);
        /* wait for transactions to clear */
        while (!(hwread(card->mmio, VORTEX_CODEC_CTRL) & 0x100)) {
                udelay(100);
@@ -2567,6 +2563,7 @@
                }
        } while ((data & VORTEX_CODEC_ADDMASK) !=
                 (addr << VORTEX_CODEC_ADDSHIFT));
+       printk(KERN_INFO "ac97 read  %.2x : %.4x\n",addr,data &
VORTEX_CODEC_DATMASK);

        /* return data. */
        return (u16) (data & VORTEX_CODEC_DATMASK);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]