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: Sat, 17 Sep 2005 11:52:15 +0800
User-agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.7.8) Gecko/20050603 Fedora/1.7.8-1.1.1.legacy

Manuel Jander wrote:
Hi,


The easy way is to create a PCM device "modem" on au8810


DMA -> FIFO -> SRC -> MIXIN --------> MIXOUT -> MC97(Modem Out)
                        |
                        +-----------> MIXOUT -> EQ -> AC97(Audio Left)

                                Modem Speaker  On or Off

                                  +-> MIXOUT -> EQ -> AC97(Audio Right)
                                  |
DMA <- FIFO <- SRC <- MIXOUT <- MIXIN <-------- MC97(Modem IN)


or


DMA -> FIFO -> SRC -> MC97(modem) (Playback)

DMA <- FIFO <- SRC <- MC97(modem) (Capture)



Remove the samplerate converter, it does not make any sense on a modem.

AC-link requried 48kHz , is it controlled by the modem application ?

Do we need to implement snd_vortex_modem_hw_params() ?

You will only loose signal precision with the samplerate converter
anyway, and there are very few of them.

When comparing au8810 and au8830, vortex_fifo_init() fail at 17th FIFO.

au8810 seem to has only 16 FIFO and 16 SRC.

http://lists.nongnu.org/archive/html/openvortex-dev/2004-03/msg00039.html


A direct route from the fifo to the modem codec will do it and the modem
signal device will run at the codec native samplerate without any
precision loss.


What is the format of the PCM ? (16bits signed/unsigned)

DMA -> FIFO -> MC97(modem) (Playback)

DMA <- FIFO <- MC97(modem) (Capture)


What is the difference between modem application and audio application ?


Nothing. The only modem extra functionality is the ability to switch the
modem line off/on hook. It just sends and captures QAM modulated
signals.


What feature do SI3036 support ? (Data/Fax/speaker phone/Voice Modem)

May be we can add a simple dialer in vortex control panel to make a voice call ?

http://alsa.opensrc.org/au88x0


Do the modem application open two PCM streams (one for playback and the other for capture )?


Yes, it should be full duplex. This will require 2 DMA's.


Do we need different playback_ops for the wavetable ?


diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_pcm.c modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_pcm.c --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_pcm.c 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_pcm.c 2005-09-16 23:19:55.000000000 +0800
@@ -525,11 +580,19 @@
        VORTEX_PCM_TYPE(pcm) = idx;
        pcm->private_data = chip;
        /* set operators */
-       snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK,
-                       &snd_vortex_playback_ops);
-       if (idx == VORTEX_PCM_ADB)
-               snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
-                               &snd_vortex_playback_ops);
+       switch (idx) {
+#ifdef CHIP_AU8810
+       case VORTEX_PCM_MODEM:
+ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_vortex_modem_playback_ops); + snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_vortex_modem_capture_ops);
+               break;
+#endif
+       case VORTEX_PCM_ADB:
+               snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, 
&snd_vortex_playback_ops);
+       default:
+ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_vortex_playback_ops);
+               break;
+       };
        
        /* pre-allocation of Scatter-Gather buffers */
        



Where is the class SND_PCM_CLASS_MODEM specificed in the driver ?


At least i did not.


How do the modem application know which device of the sound card is a modem ?







reply via email to

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