openvortex-dev
[Top][All Lists]
Advanced

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

[Openvortex-dev] Re: au88x0 modem


From: Raymond
Subject: [Openvortex-dev] Re: au88x0 modem
Date: Mon, 19 Sep 2005 23:32:50 +0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.7.10) Gecko/20050811 Fedora/1.7.10-1.1.1.legacy

Philipp Matthias Hahn wrote:
Hello!

On Fri, Sep 16, 2005 at 09:25:24PM +0300, Sasha Khapyorsky wrote:

On 10:46 Fri 16 Sep     , Philipp Matthias Hahn wrote:

2. GPIO

Probably we are lucky and au88x0 implements it in AC97 way, try to write
mc97 registers via /proc (for this you need build drivers in debug mode,
'--with-debug=detect' is ok):
# echo 42 ffff > /proc/asound/card0/codec97#0/mc97#1-1+regs
# echo 42 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs
# echo 54 1 > /proc/asound/card0/codec97#0/mc97#1-1+regs

Sorry, I did echo those values and read mc97#1-1+regs, but no values
changed.

Even 0x42 register? Are you with debug version of drivers
( ./configure --with-debug=detect )?


Sorry, yes. The is ALSA from linux-2.6.13.2 with CONFIG_SND_DEBUG=y,
which is equivalent to --with-debug=detect.
I attached a new dmesg with an additional patch, which prints out every
vortex_{read,write}.

ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
PCI: setting IRQ 10 as level-triggered
ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> 
IRQ 10
Vortex: init.... <3>ALSA sound/core/control.c:324: control 3:0:0:Playback PCM 
advanced processing:0 is already present
done.
vortex_codec_read  0 7c :8384
vortex_codec_read  0 7e :7605
vortex_codec_write 0 00 :0000
vortex_codec_read  0 00 :6940
vortex_codec_read  0 7c :8384
vortex_codec_read  0 7e :7605
vortex_codec_write 0 1c :8a05
vortex_codec_read  0 1c :8a05
vortex_codec_read  0 7c :8384
vortex_codec_read  0 7e :7605
vortex_codec_write 0 1c :8a06
vortex_codec_read  0 1c :8a06
vortex_codec_read  0 00 :6940
vortex_codec_read  0 28 :0000
vortex_codec_write 0 26 :0000
vortex_codec_write 0 00 :0000
vortex_codec_write 0 26 :0000
vortex_codec_write 0 20 :0000
vortex_codec_read  0 26 :000f
vortex_codec_read  0 02 :8000
vortex_codec_read  0 02 :8000
vortex_codec_write 0 02 :0000
vortex_codec_read  0 02 :0000
vortex_codec_write 0 02 :8000
vortex_codec_read  0 02 :8000
vortex_codec_write 0 02 :8000
vortex_codec_write 0 02 :a0a0
vortex_codec_read  0 02 :9f9f
vortex_codec_read  0 02 :9f1f
vortex_codec_write 0 02 :9090
vortex_codec_read  0 02 :9090
vortex_codec_read  0 02 :9010
vortex_codec_read  0 02 :9010
vortex_codec_write 0 02 :9f1f
vortex_codec_read  0 06 :9f00
vortex_codec_read  0 06 :8000
vortex_codec_write 0 06 :0000
vortex_codec_read  0 06 :0000
vortex_codec_write 0 06 :8000
vortex_codec_read  0 06 :8000
vortex_codec_write 0 06 :8000
vortex_codec_write 0 06 :a0a0
vortex_codec_read  0 06 :a09f
vortex_codec_read  0 06 :801f
vortex_codec_write 0 06 :9090
vortex_codec_read  0 06 :9090
vortex_codec_read  0 06 :8010
vortex_codec_write 0 06 :8181
vortex_codec_read  0 06 :8181
vortex_codec_read  0 06 :8001
vortex_codec_read  0 06 :8001
vortex_codec_write 0 06 :801f
vortex_codec_read  0 0a :0000
vortex_codec_write 0 0a :8000
vortex_codec_read  0 0a :8000
vortex_codec_read  0 0a :8000
vortex_codec_write 0 0a :801e
vortex_codec_read  0 0c :8008
vortex_codec_read  0 0c :8008
vortex_codec_write 0 0c :0008
vortex_codec_read  0 0c :0008
vortex_codec_write 0 0c :8008
vortex_codec_read  0 0c :8008
vortex_codec_write 0 0c :8008
vortex_codec_write 0 0c :a0a0
vortex_codec_read  0 0c :8000
vortex_codec_read  0 0c :8000
vortex_codec_write 0 0c :9090
vortex_codec_read  0 0c :8010
vortex_codec_read  0 0c :8010
vortex_codec_write 0 0c :8181
vortex_codec_read  0 0c :8001
vortex_codec_read  0 0c :8001
vortex_codec_read  0 0c :8001
vortex_codec_write 0 0c :801f
vortex_codec_read  0 0e :8008
vortex_codec_read  0 0e :8008
vortex_codec_write 0 0e :0008
vortex_codec_read  0 0e :0008
vortex_codec_write 0 0e :8008
vortex_codec_read  0 0e :8008
vortex_codec_write 0 0e :8008
vortex_codec_write 0 0e :a0a0
vortex_codec_read  0 0e :a0a0
vortex_codec_read  0 0e :8000
vortex_codec_write 0 0e :9090
vortex_codec_read  0 0e :9090
vortex_codec_read  0 0e :8010
vortex_codec_write 0 0e :8181
vortex_codec_read  0 0e :8181
vortex_codec_read  0 0e :8001
vortex_codec_read  0 0e :8001
vortex_codec_write 0 0e :801f
vortex_codec_read  0 10 :8808
vortex_codec_read  0 10 :8808
vortex_codec_write 0 10 :0808
vortex_codec_read  0 10 :0808
vortex_codec_write 0 10 :8808
vortex_codec_read  0 10 :8808
vortex_codec_write 0 10 :8808
vortex_codec_write 0 10 :a0a0
vortex_codec_read  0 10 :a0a0
vortex_codec_read  0 10 :8000
vortex_codec_write 0 10 :9090
vortex_codec_read  0 10 :9090
vortex_codec_read  0 10 :9010
vortex_codec_read  0 10 :9010
vortex_codec_write 0 10 :9f1f
vortex_codec_read  0 12 :8808
vortex_codec_read  0 12 :8808
vortex_codec_write 0 12 :0808
vortex_codec_read  0 12 :0808
vortex_codec_write 0 12 :8808
vortex_codec_read  0 12 :8808
vortex_codec_write 0 12 :8808
vortex_codec_write 0 12 :a0a0
vortex_codec_read  0 12 :a0a0
vortex_codec_read  0 12 :8000
vortex_codec_write 0 12 :9090
vortex_codec_read  0 12 :9090
vortex_codec_read  0 12 :9010
vortex_codec_read  0 12 :9010
vortex_codec_write 0 12 :9f1f
vortex_codec_read  0 14 :8808
vortex_codec_read  0 14 :8808
vortex_codec_write 0 14 :0808
vortex_codec_read  0 14 :0808
vortex_codec_write 0 14 :8808
vortex_codec_read  0 14 :8808
vortex_codec_write 0 14 :8808
vortex_codec_write 0 14 :a0a0
vortex_codec_read  0 14 :a0a0
vortex_codec_read  0 14 :8000
vortex_codec_write 0 14 :9090
vortex_codec_read  0 14 :9090
vortex_codec_read  0 14 :9010
vortex_codec_read  0 14 :9010
vortex_codec_write 0 14 :9f1f
vortex_codec_read  0 16 :8808
vortex_codec_read  0 16 :8808
vortex_codec_write 0 16 :0808
vortex_codec_read  0 16 :0808
vortex_codec_write 0 16 :8808
vortex_codec_read  0 16 :8808
vortex_codec_write 0 16 :8808
vortex_codec_write 0 16 :a0a0
vortex_codec_read  0 16 :a0a0
vortex_codec_read  0 16 :8000
vortex_codec_write 0 16 :9090
vortex_codec_read  0 16 :9090
vortex_codec_read  0 16 :9010
vortex_codec_read  0 16 :9010
vortex_codec_write 0 16 :9f1f
vortex_codec_read  0 18 :8808
vortex_codec_write 0 18 :0808
vortex_codec_read  0 18 :0808
vortex_codec_write 0 18 :8808
vortex_codec_read  0 18 :8808
vortex_codec_write 0 18 :8808
vortex_codec_write 0 18 :a0a0
vortex_codec_read  0 18 :a0a0
vortex_codec_read  0 18 :8000
vortex_codec_write 0 18 :9090
vortex_codec_read  0 18 :9090
vortex_codec_read  0 18 :9010
vortex_codec_read  0 18 :9010
vortex_codec_write 0 18 :9f1f
vortex_codec_read  0 1c :9010
vortex_codec_write 0 1c :1010
vortex_codec_read  0 1c :1010
vortex_codec_write 0 1c :9010
vortex_codec_read  0 1c :9010
vortex_codec_write 0 1c :9010
vortex_codec_write 0 1a :0000
vortex_codec_write 0 1c :0000
vortex_codec_read  0 20 :0000
vortex_codec_write 0 20 :8000
vortex_codec_read  0 20 :8000
vortex_codec_write 0 20 :0000
vortex_codec_read  0 20 :0000
vortex_codec_write 0 20 :2000
vortex_codec_read  0 20 :2000
vortex_codec_write 0 20 :0000
vortex_codec_read  0 20 :0000
vortex_codec_write 0 20 :0200
vortex_codec_read  0 20 :0200
vortex_codec_write 0 20 :0000
vortex_codec_read  0 20 :0000
vortex_codec_write 0 20 :0100
vortex_codec_read  0 20 :0100
vortex_codec_write 0 20 :0000
vortex_codec_read  0 22 :0000
vortex_codec_write 0 22 :0707
vortex_codec_read  0 22 :0707
vortex_codec_write 0 22 :0000
vortex_codec_read  0 26 :000f
vortex_codec_write 0 26 :800f
vortex_codec_read  0 26 :800f
vortex_codec_write 0 26 :000f
vortex_codec_read  0 2a :ffff
vortex_codec_write 0 2a :ffff
vortex_codec_read  1 7c :5349
vortex_codec_read  1 7e :4c26
vortex_codec_write 1 00 :0000
vortex_codec_write 1 3c :0000
vortex_codec_read  1 00 :0000
vortex_codec_read  1 7c :5349
vortex_codec_read  1 7e :4c26
vortex_codec_write 1 1c :8a05
vortex_codec_read  1 1c :0000
vortex_codec_read  1 00 :0000


for audio codec

           ac97.scaps = AC97_SCAP_NO_SPDIF;

for modem codec

          ac97.scaps = AC97_SCAP_SKIP_AUDIO;



static int __devinit snd_vortex_mixer(vortex_t * vortex)
{
    ac97_bus_t *pbus;
    ac97_template_t ac97;
    int err;
    static ac97_bus_ops_t ops = {
        .write = vortex_codec_write,
        .read = vortex_codec_read,
    };

    if ((err = snd_ac97_bus(vortex->card, 0, &ops, NULL, &pbus)) < 0)
        return err;

    memset(&ac97, 0, sizeof(ac97));
    // Intialize AC97 codec stuff.
    ac97.private_data = vortex;
    ac97.scaps = AC97_SCAP_NO_SPDIF;
    err = snd_ac97_mixer(pbus, &ac97, &vortex->codec[0]);
    vortex->isquad = ((vortex->codec[0] == NULL) ?  0 :
(vortex->codec[0]->ext_id & AC97_EI_SDAC));
#ifndef CHIP_AU8820
    /* Enable rear channels of audio codec. */
    if ( vortex->isquad )
        hwwrite(vortex->mmio, VORTEX_CODEC_EN,
            hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO1);
#endif
#ifdef CHIP_AU8810
    switch ( hwread(vortex->mmio,0x2A804)) {
    case 0x10431043:          // ASUS L8400B
        memset(&ac97, 0, sizeof(ac97));
        // Intialize MC97 codec stuff.
        ac97.private_data = vortex;
        ac97.scaps = AC97_SCAP_SKIP_AUDIO;
        ac97.num = 1;
        err = snd_ac97_mixer(pbus, &ac97, &vortex->codec[ac97.num]);
        hwwrite(vortex->mmio, VORTEX_CODEC_EN,
            hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_MODEM);
    };
#endif
    return err;
}




Doing an "echo 44 ff > ...mc97$1-1+regs" prints out the expected
        vortex_codec_write 1 44 :ffff
but the following read returns "0000"


, if value is changed (we are lucky then), you may connect line and
isten 'Hook-Off' clicks (when 0x54 is switched between 0 and 1) with
parallel phone.

I don't have the line cable with me at the moment and need to find a
analog telephone circuit until I can test that

If values are not changed there will nothing, don't try.







reply via email to

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