* Mo' better modem support @ 2005-09-05 17:48 Takashi Iwai 2005-09-05 23:29 ` Sasha Khapyorsky 2005-09-06 8:37 ` Mo' better modem support Raymond 0 siblings, 2 replies; 88+ messages in thread From: Takashi Iwai @ 2005-09-05 17:48 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel Hi, I've played a bit the ac97 modem yesterday, and found out the following problems: 1. Off-Hook switch needs manually turned on Shall we add a hook in pcm.modem definition for this control? 2. All controls have index 1, thus the appearance on alsamixer looks strange 3. There is no way to detect the modem driver from sysfs or so. Espeically, hda-intel driver supports both audio and modem by a single driver, and the modem support doesn't appear even on proc file explicitly. Well, 2 is a minor problem, and we can live with that. But others should be improved... Any ideas? Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-05 17:48 Mo' better modem support Takashi Iwai @ 2005-09-05 23:29 ` Sasha Khapyorsky 2005-09-06 13:29 ` Takashi Iwai 2005-09-06 8:37 ` Mo' better modem support Raymond 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-05 23:29 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 19:48 Mon 05 Sep , Takashi Iwai wrote: > > I've played a bit the ac97 modem yesterday, Great! > and found out the > following problems: > > 1. Off-Hook switch needs manually turned on Yes. I think that it is ok, this should be controlled separately from PCM. For instance for Caller ID polling we will need to run capturing with CID switch 'on' and Off-Hook switch 'off'. Other example is typical dialer (auto-dialer or so), this will turn 'Off-hook' switch 'on', start playback (to send DTMFs), stop playback and leave line with 'Off-hook' is 'on'. > Shall we add a hook in pcm.modem definition for this control? If we really need to auto-"Hoof-Off" we may separate it to logically different pcm devices (like pcm.modem, pcm.phoneline or so) and then add hook to one of them. ( But really, who will use it? Specialized phone oriented application (like dialer, voice machine or softmodem) will control DAA specific switches explicitly anyway. And for simple scripting amixer + aplay should be good enough. ) > 2. All controls have index 1, thus the appearance on alsamixer looks > strange Will see it (no modems near me). > 3. There is no way to detect the modem driver from sysfs or so. There is no some "standard" way to define softmodem in Linuxi - remember this "winmodem is not modem", and this is correct. What we actually have in hardware (and in ALSA) is not modem, it is simplified sound codec + Data Access Arrangement (DAA) (aka Telephone Line Interface Circuit). And the "real" modem (which performs modulation/demodulation) is user-space application (like proprietary 'slmodem') that uses the standard ALSA api to communicate with this sound device. ( don't mention here binary-only kernel modem drivers provided by some vendors. ) > Espeically, hda-intel driver supports both audio and modem by a > single driver, and the modem support doesn't appear even on proc > file explicitly. Agree, 'proc' files will be helpful with MFG too. Actually I've planned to do it, but don't have HDA hardware now. Testers? (BTW one more reason why it will be helpful: existed HDA modem driver has just one (known) vendor ID, but I guess there will be more same chip based modems with different vendor IDs. If we will show this info somewhere in proc files it will simplify IDs addition) > Well, 2 is a minor problem, and we can live with that. > But others should be improved... > > > Any ideas? Some more things for your list: 4. Unsupported Conexant modem codecs (AC97 and HDA). 5. Lack of incoming call notifications. 6. Lack of free softmodem software. '5' may be related to '3', but I think this is more generic problem: is there "standard" telephony interface (or just used by nobody 'include/linux/telephony.h')? Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-05 23:29 ` Sasha Khapyorsky @ 2005-09-06 13:29 ` Takashi Iwai 2005-09-07 16:03 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Takashi Iwai @ 2005-09-06 13:29 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Tue, 06 Sep 2005 02:29:51 +0300, Sasha Khapyorsky wrote: > > > and found out the > > following problems: > > > > 1. Off-Hook switch needs manually turned on > > Yes. I think that it is ok, this should be controlled separately from > PCM. For instance for Caller ID polling we will need to run capturing > with CID switch 'on' and Off-Hook switch 'off'. Other example is typical > dialer (auto-dialer or so), this will turn 'Off-hook' switch 'on', start > playback (to send DTMFs), stop playback and leave line with 'Off-hook' > is 'on'. > > > Shall we add a hook in pcm.modem definition for this control? > > If we really need to auto-"Hoof-Off" we may separate it to logically > different pcm devices (like pcm.modem, pcm.phoneline or so) and then add > hook to one of them. Sounds reasonable. > ( But really, who will use it? Specialized phone oriented application > (like dialer, voice machine or softmodem) will control DAA specific > switches explicitly anyway. And for simple scripting amixer + aplay > should be good enough. ) I don't know how many its demand is. But, I guess 99% is only the modem, and adding this hook to pcm.modem would suffice, right? All what I want among these is just an easy-to-use set up. > > 2. All controls have index 1, thus the appearance on alsamixer looks > > strange > > Will see it (no modems near me). This is because ac97.num=1. It's correct from the driver's POV, but a bit nasty from user's POV. > > 3. There is no way to detect the modem driver from sysfs or so. > > There is no some "standard" way to define softmodem in Linuxi - remember > this "winmodem is not modem", and this is correct. What we actually have > in hardware (and in ALSA) is not modem, it is simplified sound codec + > Data Access Arrangement (DAA) (aka Telephone Line Interface Circuit). > And the "real" modem (which performs modulation/demodulation) is > user-space application (like proprietary 'slmodem') that uses the > standard ALSA api to communicate with this sound device. > > ( don't mention here binary-only kernel modem drivers provided by some > vendors. ) Yes, I agree. Let's reword it as "softmodem codec", then. The purpose of these devices are different from "audio", so definitely we need some distinction, which is visible from outside. > > Espeically, hda-intel driver supports both audio and modem by a > > single driver, and the modem support doesn't appear even on proc > > file explicitly. > > Agree, 'proc' files will be helpful with MFG too. Actually I've planned > to do it, but don't have HDA hardware now. Testers? > > (BTW one more reason why it will be helpful: existed HDA modem driver > has just one (known) vendor ID, but I guess there will be more same chip > based modems with different vendor IDs. If we will show this info > somewhere in proc files it will simplify IDs addition) I think it's another variable of hda_proc.c for MFG. Currently it shows only the AFG trees. What I thought is a universal proc or sysfs interface indicating modem codecs. Main purpose is the auto-detection of available devices by the installer. In the case of PCI, it can be detected by the PCI class id. But HDA-modem, currently it's not possible to know before the driver is loaded... > > Well, 2 is a minor problem, and we can live with that. > > But others should be improved... > > > > > > Any ideas? > > Some more things for your list: > > 4. Unsupported Conexant modem codecs (AC97 and HDA). Yep. That'll be really nice to have (iff conexant gives us the h/w detail... :) > 5. Lack of incoming call notifications. > 6. Lack of free softmodem software. Yeah :) This would be a legally tough negotiation... > '5' may be related to '3', but I think this is more generic problem: > is there "standard" telephony interface (or just used by nobody > 'include/linux/telephony.h')? AFAIK, only ixj (and ixj-pcmcia) driver uses this interface. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-06 13:29 ` Takashi Iwai @ 2005-09-07 16:03 ` Sasha Khapyorsky 2005-09-11 16:36 ` [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty Sasha Khapyorsky ` (3 more replies) 0 siblings, 4 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-07 16:03 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel, Jacques.Goldberg, marvstod [ I CC: to linmodems people ] On 15:29 Tue 06 Sep , Takashi Iwai wrote: > At Tue, 06 Sep 2005 02:29:51 +0300, > Sasha Khapyorsky wrote: > > > > > and found out the > > > following problems: > > > > > > 1. Off-Hook switch needs manually turned on > > > > Yes. I think that it is ok, this should be controlled separately from > > PCM. For instance for Caller ID polling we will need to run capturing > > with CID switch 'on' and Off-Hook switch 'off'. Other example is typical > > dialer (auto-dialer or so), this will turn 'Off-hook' switch 'on', start > > playback (to send DTMFs), stop playback and leave line with 'Off-hook' > > is 'on'. > > > > > Shall we add a hook in pcm.modem definition for this control? > > > > If we really need to auto-"Hoof-Off" we may separate it to logically > > different pcm devices (like pcm.modem, pcm.phoneline or so) and then add > > hook to one of them. > > Sounds reasonable. I will prepare patch this weekend or so (want to test it first). > > ( But really, who will use it? Specialized phone oriented application > > (like dialer, voice machine or softmodem) will control DAA specific > > switches explicitly anyway. And for simple scripting amixer + aplay > > should be good enough. ) > > I don't know how many its demand is. But, I guess 99% is only the > modem, and adding this hook to pcm.modem would suffice, right? No, the modem application needs explicit "Hook-Off" control, just as was in my example it may poll the line for Caller ID detection with "Hook-Off" turned off (and few more usage cases). But OTOH it is not big deal to handle this control explicitly even with auto-"Hook-Off"ed device or to use alternative "raw" device - can live with it. > All what I want among these is just an easy-to-use set up. > > > > 2. All controls have index 1, thus the appearance on alsamixer looks > > > strange > > > > Will see it (no modems near me). > > This is because ac97.num=1. It's correct from the driver's POV, > but a bit nasty from user's POV. > > > > 3. There is no way to detect the modem driver from sysfs or so. > > > > There is no some "standard" way to define softmodem in Linuxi - remember > > this "winmodem is not modem", and this is correct. What we actually have > > in hardware (and in ALSA) is not modem, it is simplified sound codec + > > Data Access Arrangement (DAA) (aka Telephone Line Interface Circuit). > > And the "real" modem (which performs modulation/demodulation) is > > user-space application (like proprietary 'slmodem') that uses the > > standard ALSA api to communicate with this sound device. > > > > ( don't mention here binary-only kernel modem drivers provided by some > > vendors. ) > > Yes, I agree. Let's reword it as "softmodem codec", then. > The purpose of these devices are different from "audio", Not fully agree. The purpose is different on level of "what we are going to do with it" - user-decision. We may just play sounds with softmodem codec (voice machine is example) and probably to use sound card for data modulations (as done by 'soundmodem' iirc). Technically there is same purpose - to play and record sounds. > so definitely > we need some distinction, which is visible from outside. Agree that we need some distinction (probably cosmetic) to simplify usage, just because "typical" application will use audio and modem devices for different purposes, but "raw" level I would prefer to save as is. BTW how about SND_PCM_CLASS_? It is not used today, but it may serve our purpose. > > > > Espeically, hda-intel driver supports both audio and modem by a > > > single driver, and the modem support doesn't appear even on proc > > > file explicitly. > > > > Agree, 'proc' files will be helpful with MFG too. Actually I've planned > > to do it, but don't have HDA hardware now. Testers? > > > > (BTW one more reason why it will be helpful: existed HDA modem driver > > has just one (known) vendor ID, but I guess there will be more same chip > > based modems with different vendor IDs. If we will show this info > > somewhere in proc files it will simplify IDs addition) > > I think it's another variable of hda_proc.c for MFG. Currently it > shows only the AFG trees. > > What I thought is a universal proc or sysfs interface indicating modem > codecs. Good idea. > Main purpose is the auto-detection of available devices by > the installer. In the case of PCI, it can be detected by the PCI > class id. Generally it is not very good method. Even if PCI class ID is defined correctly it is hard to know kind of modem: hardware/"real", winmodem/"controless" or softmodem. (BTW what "correctly" should be there? PCI_CLASS_COMMUNICATION_MODEM? - then serial driver will try to initialize it as serial port, but there is no serial port.) > But HDA-modem, currently it's not possible to know before > the driver is loaded... Yes, and same problem exists with come AC97 devices (ALi M5451 for example) - modem detection is not user-friendly procedure (linmodems people know this very well). What we may do is to load the driver according to PCI IDs and then check appropriate info with "universal modem indicating" interface above. Agree with it. Will see as well. > > > Well, 2 is a minor problem, and we can live with that. > > > But others should be improved... > > > > > > > > > Any ideas? > > > > Some more things for your list: > > > > 4. Unsupported Conexant modem codecs (AC97 and HDA). > > Yep. That'll be really nice to have (iff conexant gives us the h/w > detail... :) > > > 5. Lack of incoming call notifications. > > 6. Lack of free softmodem software. > > Yeah :) This would be a legally tough negotiation... Sure :) . But I don't think about negotiations (too hard imho), probably we could to develop one (or at least to try). Sasha. > > > '5' may be related to '3', but I think this is more generic problem: > > is there "standard" telephony interface (or just used by nobody > > 'include/linux/telephony.h')? > > AFAIK, only ixj (and ixj-pcmcia) driver uses this interface. > > > Takashi > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty 2005-09-07 16:03 ` Sasha Khapyorsky @ 2005-09-11 16:36 ` Sasha Khapyorsky 2005-09-12 10:37 ` Takashi Iwai 2005-09-12 0:27 ` [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] Sasha Khapyorsky ` (2 subsequent siblings) 3 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-11 16:36 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel, perex This fix prevents segfaulting then hooks list is empty. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Index: alsa-lib/src/pcm/pcm_hooks.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_hooks.c,v retrieving revision 1.38 diff -u -p -r1.38 pcm_hooks.c --- alsa-lib/src/pcm/pcm_hooks.c 23 May 2005 09:03:18 -0000 1.38 +++ alsa-lib/src/pcm/pcm_hooks.c 11 Sep 2005 14:17:29 -0000 @@ -469,7 +469,7 @@ int _snd_pcm_hooks_open(snd_pcm_t **pcmp return err; } if (!hooks) - return 0; + goto _done; snd_config_for_each(i, next, hooks) { snd_config_t *n = snd_config_iterator_entry(i); const char *str; @@ -488,6 +488,7 @@ int _snd_pcm_hooks_open(snd_pcm_t **pcmp return err; } } + _done: *pcmp = rpcm; return 0; } ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty 2005-09-11 16:36 ` [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty Sasha Khapyorsky @ 2005-09-12 10:37 ` Takashi Iwai 0 siblings, 0 replies; 88+ messages in thread From: Takashi Iwai @ 2005-09-12 10:37 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel, perex At Sun, 11 Sep 2005 19:36:45 +0300, Sasha Khapyorsky wrote: > > > This fix prevents segfaulting then hooks list is empty. > > Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Applied to CVS. Thanks. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-07 16:03 ` Sasha Khapyorsky 2005-09-11 16:36 ` [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty Sasha Khapyorsky @ 2005-09-12 0:27 ` Sasha Khapyorsky 2005-09-12 10:38 ` Takashi Iwai 2005-09-12 17:05 ` [conf patch] modem config for HDA-Intel Sasha Khapyorsky 2005-09-13 0:18 ` [patch] "empty" generic mfg-only codec Sasha Khapyorsky 3 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-12 0:27 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 19:03 Wed 07 Sep , Sasha Khapyorsky wrote: > > > > > > If we really need to auto-"Hoof-Off" we may separate it to logically > > > different pcm devices (like pcm.modem, pcm.phoneline or so) and then add > > > hook to one of them. > > > > Sounds reasonable. > > I will prepare patch this weekend or so (want to test it first). There is the patch (actually beginning). This defines two PCMs: "phoneline" is renamed old-style modem and "modem" is pcm with auto-"Hook-Off". Sasha. This defines two modem related pcm devices: "phoneline" is driver's pcm reference, with "modem" the line will be "Hook-Off"ed automatically. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Index: alsa-lib/src/conf/alsa.conf =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/conf/alsa.conf,v retrieving revision 1.19 diff -u -p -r1.19 alsa.conf --- alsa-lib/src/conf/alsa.conf 27 Jan 2005 15:45:05 -0000 1.19 +++ alsa-lib/src/conf/alsa.conf 11 Sep 2005 23:52:34 -0000 @@ -251,6 +251,7 @@ pcm.surround71 cards.pcm.surround71 pcm.iec958 cards.pcm.iec958 pcm.spdif cards.pcm.iec958 pcm.modem cards.pcm.modem +pcm.phoneline cards.pcm.phoneline pcm.default cards.pcm.default pcm.dmix cards.pcm.dmix Index: alsa-lib/src/conf/pcm/modem.conf =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/conf/pcm/modem.conf,v retrieving revision 1.1 diff -u -p -r1.1 modem.conf --- alsa-lib/src/conf/pcm/modem.conf 12 Jul 2004 16:21:30 -0000 1.1 +++ alsa-lib/src/conf/pcm/modem.conf 11 Sep 2005 23:52:34 -0000 @@ -1,8 +1,8 @@ # -# Modem output +# "raw" modem - phoneline # -pcm.!modem { +pcm.!phoneline { @args [ CARD DEV ] @args.CARD { type string @@ -45,3 +45,60 @@ pcm.!modem { ] } } + +# +# "autohooked" modem +# + +pcm.!modem { + @args [ CARD DEV ] + @args.CARD { + type string + default { + @func getenv + vars [ + ALSA_MODEM_CARD + ALSA_PCM_CARD + ALSA_CARD + ] + default { + @func refer + name defaults.pcm.modem.card + } + } + } + @args.DEV { + type integer + default { + @func igetenv + vars [ + ALSA_MODEM_DEVICE + ] + default { + @func refer + name defaults.pcm.modem.device + } + } + } + type hooks + slave { + pcm { + @func concat + strings [ + "cards.pcm.phoneline:CARD=" $CARD ",DEV=" $DEV + ] + } + } + hooks.0 { + type ctl_elems + hook_args [ + { + name "Off-hook Switch" + preserve true + value "on" + lock false + optional true + } + ] + } +} ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-12 0:27 ` [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] Sasha Khapyorsky @ 2005-09-12 10:38 ` Takashi Iwai 2005-09-12 17:49 ` Takashi Iwai 0 siblings, 1 reply; 88+ messages in thread From: Takashi Iwai @ 2005-09-12 10:38 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Mon, 12 Sep 2005 03:27:46 +0300, Sasha Khapyorsky wrote: > > On 19:03 Wed 07 Sep , Sasha Khapyorsky wrote: > > > > > > > > If we really need to auto-"Hoof-Off" we may separate it to logically > > > > different pcm devices (like pcm.modem, pcm.phoneline or so) and then add > > > > hook to one of them. > > > > > > Sounds reasonable. > > > > I will prepare patch this weekend or so (want to test it first). > > There is the patch (actually beginning). This defines two PCMs: > "phoneline" is renamed old-style modem and "modem" is pcm with > auto-"Hook-Off". > > Sasha. > > > This defines two modem related pcm devices: "phoneline" is driver's pcm > reference, with "modem" the line will be "Hook-Off"ed automatically. > > Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Applied. Thanks. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-12 10:38 ` Takashi Iwai @ 2005-09-12 17:49 ` Takashi Iwai 2005-09-12 22:10 ` Sasha Khapyorsky 2005-09-13 0:45 ` [patch] no templated index for mc97 controls Sasha Khapyorsky 0 siblings, 2 replies; 88+ messages in thread From: Takashi Iwai @ 2005-09-12 17:49 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Mon, 12 Sep 2005 12:38:13 +0200, I wrote: > > At Mon, 12 Sep 2005 03:27:46 +0300, > Sasha Khapyorsky wrote: > > > > On 19:03 Wed 07 Sep , Sasha Khapyorsky wrote: > > > > > > > > > > If we really need to auto-"Hoof-Off" we may separate it to logically > > > > > different pcm devices (like pcm.modem, pcm.phoneline or so) and then add > > > > > hook to one of them. > > > > > > > > Sounds reasonable. > > > > > > I will prepare patch this weekend or so (want to test it first). > > > > There is the patch (actually beginning). This defines two PCMs: > > "phoneline" is renamed old-style modem and "modem" is pcm with > > auto-"Hook-Off". > > > > Sasha. > > > > > > This defines two modem related pcm devices: "phoneline" is driver's pcm > > reference, with "modem" the line will be "Hook-Off"ed automatically. > > > > Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> > > Applied. Thanks. Well, I found that this might not work (still not tested, though) since the controls are usually defined with index 1, as noted in my earlier post. (It's because the modem codec is in ac97.num=1) But I think we should fix the driver side rather than this configuration. The index should be zero because it's the only one. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-12 17:49 ` Takashi Iwai @ 2005-09-12 22:10 ` Sasha Khapyorsky 2005-09-13 9:34 ` Takashi Iwai 2005-09-13 0:45 ` [patch] no templated index for mc97 controls Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-12 22:10 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 19:49 Mon 12 Sep , Takashi Iwai wrote: > > > > Applied. Thanks. > > Well, I found that this might not work (still not tested, though) > since the controls are usually defined with index 1, as noted in my > earlier post. (It's because the modem codec is in ac97.num=1) And card index is usually 1 as well (first card is excluded in drivers). Sasha. > > But I think we should fix the driver side rather than this > configuration. The index should be zero because it's the only one. > > > Takashi > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-12 22:10 ` Sasha Khapyorsky @ 2005-09-13 9:34 ` Takashi Iwai 2005-09-13 14:35 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Takashi Iwai @ 2005-09-13 9:34 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Tue, 13 Sep 2005 01:10:18 +0300, Sasha Khapyorsky wrote: > > On 19:49 Mon 12 Sep , Takashi Iwai wrote: > > > > > > Applied. Thanks. > > > > Well, I found that this might not work (still not tested, though) > > since the controls are usually defined with index 1, as noted in my > > earlier post. (It's because the modem codec is in ac97.num=1) > > And card index is usually 1 as well (first card is excluded in drivers). It's irrelevant. The hook PCM opens the corresponding control device. The card number is obtained from snd_pcm_info_get_card(). i.e. it assumes that the slave PCM is a hw. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-13 9:34 ` Takashi Iwai @ 2005-09-13 14:35 ` Sasha Khapyorsky 2005-09-13 12:43 ` Takashi Iwai 0 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 14:35 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 11:34 Tue 13 Sep , Takashi Iwai wrote: > At Tue, 13 Sep 2005 01:10:18 +0300, > Sasha Khapyorsky wrote: > > > > On 19:49 Mon 12 Sep , Takashi Iwai wrote: > > > > > > > > Applied. Thanks. > > > > > > Well, I found that this might not work (still not tested, though) > > > since the controls are usually defined with index 1, as noted in my > > > earlier post. (It's because the modem codec is in ac97.num=1) > > > > And card index is usually 1 as well (first card is excluded in drivers). > > It's irrelevant. The hook PCM opens the corresponding control > device. The card number is obtained from snd_pcm_info_get_card(). > i.e. it assumes that the slave PCM is a hw. Hmm, why does it work then (tested) in both old and new variants? Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-13 14:35 ` Sasha Khapyorsky @ 2005-09-13 12:43 ` Takashi Iwai 2005-09-13 15:36 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Takashi Iwai @ 2005-09-13 12:43 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Tue, 13 Sep 2005 17:35:21 +0300, Sasha Khapyorsky wrote: > > On 11:34 Tue 13 Sep , Takashi Iwai wrote: > > At Tue, 13 Sep 2005 01:10:18 +0300, > > Sasha Khapyorsky wrote: > > > > > > On 19:49 Mon 12 Sep , Takashi Iwai wrote: > > > > > > > > > > Applied. Thanks. > > > > > > > > Well, I found that this might not work (still not tested, though) > > > > since the controls are usually defined with index 1, as noted in my > > > > earlier post. (It's because the modem codec is in ac97.num=1) > > > > > > And card index is usually 1 as well (first card is excluded in drivers). > > > > It's irrelevant. The hook PCM opens the corresponding control > > device. The card number is obtained from snd_pcm_info_get_card(). > > i.e. it assumes that the slave PCM is a hw. > > Hmm, why does it work then (tested) in both old and new variants? Do you mean that the modem with hooks works even without your changes of ac97_* in the driver? It would be ridiculous. Possibly, the modem codec was found in ac97.num=0? What I mentioned above is that pcm hook finds the correct control handle regardless of the card index. But each control element is not. A non-zero index of each hooked control element must be defined explicitly in hook configuration. Ditto for device and subdevice. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-13 12:43 ` Takashi Iwai @ 2005-09-13 15:36 ` Sasha Khapyorsky 2005-09-13 17:27 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 15:36 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 14:43 Tue 13 Sep , Takashi Iwai wrote: > > Do you mean that the modem with hooks works even without your changes > of ac97_* in the driver? Yes and with new changes as well. > It would be ridiculous. Possibly, the > modem codec was found in ac97.num=0? No, ac97.num = 1 (it is "standard" ICH3 with dual audio+modem ac97): # ls /proc/asound/Modem/codec97#0/ mc97#1-1 mc97#1-1+regs (opposite ac97_read/write would not work, primary/secondary codec access is addressed by ac97.num) > What I mentioned above is that pcm hook finds the correct control > handle regardless of the card index. But each control element is > not. A non-zero index of each hooked control element must be > defined explicitly in hook configuration. Ditto for device and > subdevice. I understand your arguments, and this part seems ok. What I think happens here is that non-zero index is lost somewhere: # amixer -c 1 controls numid=1,iface=MIXER,name='Off-hook Switch' No 'index' is shown there. I'll dig a little. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] 2005-09-13 15:36 ` Sasha Khapyorsky @ 2005-09-13 17:27 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 17:27 UTC (permalink / raw) To: Takashi Iwai, alsa-devel On 18:36 Tue 13 Sep , Sasha Khapyorsky wrote: > > What I think happens here is that non-zero index is lost somewhere: > > # amixer -c 1 controls > numid=1,iface=MIXER,name='Off-hook Switch' > > No 'index' is shown there. I'll dig a little. I've used outdated version for comparing where 'Off-hook' control was done in intel8x0m.c with index '0'. With recent version all is as expected. Sorry about noise. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* [patch] no templated index for mc97 controls 2005-09-12 17:49 ` Takashi Iwai 2005-09-12 22:10 ` Sasha Khapyorsky @ 2005-09-13 0:45 ` Sasha Khapyorsky 2005-09-13 1:06 ` [patch] no templated index for si3036 modem controls Sasha Khapyorsky 2005-09-13 10:24 ` [patch] no templated index for mc97 controls Takashi Iwai 1 sibling, 2 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 0:45 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 19:49 Mon 12 Sep , Takashi Iwai wrote: > > But I think we should fix the driver side rather than this > configuration. The index should be zero because it's the only one. Like in the patch below? (please don't say that you fixed it already :) ). Sasha. No index is templated for mdoem controls. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Index: alsa-kernel/pci/ac97/ac97_codec.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_codec.c,v retrieving revision 1.197 diff -u -p -r1.197 ac97_codec.c --- alsa-kernel/pci/ac97/ac97_codec.c 9 Sep 2005 13:21:46 -0000 1.197 +++ alsa-kernel/pci/ac97/ac97_codec.c 13 Sep 2005 00:18:43 -0000 @@ -1557,7 +1557,7 @@ static int snd_ac97_modem_build(snd_card /* build modem switches */ for (idx = 0; idx < ARRAY_SIZE(snd_ac97_controls_modem_switches); idx++) - if ((err = snd_ctl_add(card, snd_ac97_cnew(&snd_ac97_controls_modem_switches[idx], ac97))) < 0) + if ((err = snd_ctl_add(card, snd_ctl_new1(&snd_ac97_controls_modem_switches[idx], ac97))) < 0) return err; /* build chip specific controls */ ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* [patch] no templated index for si3036 modem controls 2005-09-13 0:45 ` [patch] no templated index for mc97 controls Sasha Khapyorsky @ 2005-09-13 1:06 ` Sasha Khapyorsky 2005-09-13 10:24 ` [patch] no templated index for mc97 controls Takashi Iwai 1 sibling, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 1:06 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel On 03:45 Tue 13 Sep , Sasha Khapyorsky wrote: > > No index is templated for mdoem controls. And same for si3036 specific controls. Sasha. No index is templated for si3036 modem controls. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Index: alsa-kernel/pci/ac97/ac97_patch.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/ac97/ac97_patch.c,v retrieving revision 1.96 diff -u -p -r1.96 ac97_patch.c --- alsa-kernel/pci/ac97/ac97_patch.c 2 Sep 2005 13:03:07 -0000 1.96 +++ alsa-kernel/pci/ac97/ac97_patch.c 13 Sep 2005 00:22:45 -0000 @@ -2752,7 +2752,11 @@ AC97_DOUBLE("Modem Speaker Volume", 0x5c static int patch_si3036_specific(ac97_t * ac97) { - return patch_build_controls(ac97, snd_ac97_controls_si3036, ARRAY_SIZE(snd_ac97_controls_si3036)); + int idx, err; + for (idx = 0; idx < ARRAY_SIZE(snd_ac97_controls_si3036); idx++) + if ((err = snd_ctl_add(ac97->bus->card, snd_ctl_new1(&snd_ac97_controls_si3036[idx], ac97))) < 0) + return err; + return 0; } static struct snd_ac97_build_ops patch_si3036_ops = { ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [patch] no templated index for mc97 controls 2005-09-13 0:45 ` [patch] no templated index for mc97 controls Sasha Khapyorsky 2005-09-13 1:06 ` [patch] no templated index for si3036 modem controls Sasha Khapyorsky @ 2005-09-13 10:24 ` Takashi Iwai 1 sibling, 0 replies; 88+ messages in thread From: Takashi Iwai @ 2005-09-13 10:24 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Tue, 13 Sep 2005 03:45:59 +0300, Sasha Khapyorsky wrote: > > On 19:49 Mon 12 Sep , Takashi Iwai wrote: > > > > But I think we should fix the driver side rather than this > > configuration. The index should be zero because it's the only one. > > Like in the patch below? Exactly. > (please don't say that you fixed it already :) ). You are faster ;) Thanks! Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* [conf patch] modem config for HDA-Intel 2005-09-07 16:03 ` Sasha Khapyorsky 2005-09-11 16:36 ` [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty Sasha Khapyorsky 2005-09-12 0:27 ` [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] Sasha Khapyorsky @ 2005-09-12 17:05 ` Sasha Khapyorsky 2005-09-12 15:08 ` Takashi Iwai 2005-09-13 0:18 ` [patch] "empty" generic mfg-only codec Sasha Khapyorsky 3 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-12 17:05 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel Takashi, This is modem related configuration for HDA-Intel (device 6). Not tested. Sasha. "modem" pcm device for HDA-Intel card. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Index: alsa-lib/src/conf/cards/HDA-Intel.conf =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/conf/cards/HDA-Intel.conf,v retrieving revision 1.4 diff -u -p -r1.4 HDA-Intel.conf --- alsa-lib/src/conf/cards/HDA-Intel.conf 24 Feb 2005 10:19:23 -0000 1.4 +++ alsa-lib/src/conf/cards/HDA-Intel.conf 12 Sep 2005 14:13:13 -0000 @@ -126,3 +126,15 @@ HDA-Intel.pcm.iec958.0 { } } } + +<confdir:pcm/modem.conf> + +HDA-Intel.pcm.modem.0 { + @args [ CARD ] + @args.CARD { + type string + } + type hw + card $CARD + device 6 +} ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [conf patch] modem config for HDA-Intel 2005-09-12 17:05 ` [conf patch] modem config for HDA-Intel Sasha Khapyorsky @ 2005-09-12 15:08 ` Takashi Iwai 0 siblings, 0 replies; 88+ messages in thread From: Takashi Iwai @ 2005-09-12 15:08 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Mon, 12 Sep 2005 20:05:28 +0300, Sasha Khapyorsky wrote: > > Takashi, > > This is modem related configuration for HDA-Intel (device 6). > > Not tested. > > Sasha. Hehe, I already fixed on CVS ;) Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* [patch] "empty" generic mfg-only codec 2005-09-07 16:03 ` Sasha Khapyorsky ` (2 preceding siblings ...) 2005-09-12 17:05 ` [conf patch] modem config for HDA-Intel Sasha Khapyorsky @ 2005-09-13 0:18 ` Sasha Khapyorsky 2005-09-13 10:26 ` Takashi Iwai 3 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 0:18 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel Takashi, This patch allows generic creation for mfg-only codecs, so some basic codec info (like vendor_id) will be shown from proc file. Not tested. Sasha. This creates "empty" hda generic for unknown MFG-only codecs. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Index: alsa-kernel/pci/hda/hda_generic.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/hda/hda_generic.c,v retrieving revision 1.8 diff -u -p -r1.8 hda_generic.c --- alsa-kernel/pci/hda/hda_generic.c 9 Sep 2005 13:21:47 -0000 1.8 +++ alsa-kernel/pci/hda/hda_generic.c 12 Sep 2005 22:49:23 -0000 @@ -881,10 +881,8 @@ int snd_hda_parse_generic_codec(struct h struct hda_gspec *spec; int err; - if(!codec->afg) { - snd_printdd("hda_generic: no generic modem yet\n"); - return -ENODEV; - } + if(!codec->afg) + return 0; spec = kzalloc(sizeof(*spec), GFP_KERNEL); if (spec == NULL) { ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [patch] "empty" generic mfg-only codec 2005-09-13 0:18 ` [patch] "empty" generic mfg-only codec Sasha Khapyorsky @ 2005-09-13 10:26 ` Takashi Iwai 0 siblings, 0 replies; 88+ messages in thread From: Takashi Iwai @ 2005-09-13 10:26 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel At Tue, 13 Sep 2005 03:18:47 +0300, Sasha Khapyorsky wrote: > > Takashi, > > This patch allows generic creation for mfg-only codecs, so some basic > codec info (like vendor_id) will be shown from proc file. > > Not tested. > > Sasha. > > > This creates "empty" hda generic for unknown MFG-only codecs. > > Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> It's on CVS now. Thanks. Takashi ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-05 17:48 Mo' better modem support Takashi Iwai 2005-09-05 23:29 ` Sasha Khapyorsky @ 2005-09-06 8:37 ` Raymond 2005-09-06 14:29 ` Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-06 8:37 UTC (permalink / raw) To: alsa-devel; +Cc: openvortex-dev ASUS L8400B notebook equipped with au8810 chip and there is a Win9x Aureal audio/modem driver for the notebook http://usa.asus.com/download/notebook/nb-l8400b.htm Is this kind of softmodem supported by ALSA ? http://www.tomshardware.com/mobile/20010202/l8400b-09.html Takashi Iwai wrote: > Hi, > > I've played a bit the ac97 modem yesterday, and found out the > following problems: > > 1. Off-Hook switch needs manually turned on > > Shall we add a hook in pcm.modem definition for this control? > > 2. All controls have index 1, thus the appearance on alsamixer looks > strange > > 3. There is no way to detect the modem driver from sysfs or so. > > Espeically, hda-intel driver supports both audio and modem by a > single driver, and the modem support doesn't appear even on proc > file explicitly. > > Well, 2 is a minor problem, and we can live with that. > But others should be improved... > > > Any ideas? > > Takashi > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-06 8:37 ` Mo' better modem support Raymond @ 2005-09-06 14:29 ` Sasha Khapyorsky 2005-09-06 13:19 ` Raymond 2005-09-07 0:42 ` Raymond 0 siblings, 2 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-06 14:29 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, openvortex-dev On 16:37 Tue 06 Sep , Raymond wrote: > > ASUS L8400B notebook equipped with au8810 chip and there is a Win9x > Aureal audio/modem driver for the notebook Not sure, but seems there is not softmodem, but old controlless modem (aka winmodem). Not supported and it is not like sound device. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-06 14:29 ` Sasha Khapyorsky @ 2005-09-06 13:19 ` Raymond 2005-09-06 20:43 ` Sasha Khapyorsky 2005-09-07 0:42 ` Raymond 1 sibling, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-06 13:19 UTC (permalink / raw) To: alsa-devel Sasha Khapyorsky wrote: > On 16:37 Tue 06 Sep , Raymond wrote: > >>ASUS L8400B notebook equipped with au8810 chip and there is a Win9x >>Aureal audio/modem driver for the notebook > > > Not sure, but seems there is not softmodem, but old controlless modem > (aka winmodem). Not supported and it is not like sound device. > http://www.3dsoundsurge.com/press/pr127.html Telephony Support: A hardware accelerated soft modem approach reduces total system cost as well as provides high reliability in the most demanding of applications. PC99 compliant telephony including D3cold wake is provided via the AC'97 interface. Both integrated AMC'97 as well as separate MC'97 CODECs are supported. Notebook Features: The AU8810 readily supports notebook applications by providing necessary features such as PCI CLKRUN# support, dual AC'97 CODEC operation, hardware volume control, low static power consumption, and aggressive power management techniques. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-06 13:19 ` Raymond @ 2005-09-06 20:43 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-06 20:43 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel On 21:19 Tue 06 Sep , Raymond wrote: > > http://www.3dsoundsurge.com/press/pr127.html > > Telephony Support: > > A hardware accelerated soft modem approach reduces total > system cost as well as provides high reliability in the most demanding > of applications. PC99 compliant telephony including D3cold wake is > provided via the AC'97 interface. Both integrated AMC'97 as well as > separate MC'97 CODECs > are supported. Yes, looks like pure AC97 softmodem. What is your 'lspci -nv'. Is there data sheet? Sasha. > > Notebook Features: > > The AU8810 readily supports notebook applications by > providing necessary features such as PCI CLKRUN# support, dual AC'97 > CODEC operation, hardware volume control, low static power consumption, > and aggressive power management techniques. > > > > > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices > Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/alsa-devel ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-06 14:29 ` Sasha Khapyorsky 2005-09-06 13:19 ` Raymond @ 2005-09-07 0:42 ` Raymond 2005-09-07 6:44 ` Philipp Matthias Hahn 1 sibling, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-07 0:42 UTC (permalink / raw) To: alsa-devel; +Cc: rbrancaleoni, pmhahn, Manuel Jander > Sasha Khapyorsky wrote: > > Raymond wrote: > > > > ASUS L8400B notebook equipped with au8810 chip and there is a Win9x > > Aureal audio/modem driver for the notebook > Not sure, but seems there is not softmodem, but old controlless modem > (aka winmodem). Not supported and it is not like sound device. Audio Chip Aureal Vortex 8810 Modem 56k, Aureal Softmodem http://www.tomshardware.com/mobile/20010202/l8400b-15.html It seem to me that it use Motorola SM56 > > > > http://www.3dsoundsurge.com/press/pr127.html > > > > Telephony Support: > > > > A hardware accelerated soft modem approach reduces total > > system cost as well as provides high reliability in the most > > demanding of applications. PC99 compliant telephony including > > D3cold wake is provided via the AC'97 interface. Both integrated > > AMC'97 as well as separate MC'97 CODECs are supported. > > Yes, looks like pure AC97 softmodem. What is your 'lspci -nv'. Is there data sheet? I don't have any l8400b or Aureal modem. May be Philipp Matthias Hahn and Raffaele Brancaleoni can answer your question. In FCC equipment list, there are two Aureal PCI modems Soundcom V90 PCI Audio/Modem Combo Card VCOM V90 PCI modem card. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-07 0:42 ` Raymond @ 2005-09-07 6:44 ` Philipp Matthias Hahn 2005-09-07 10:05 ` Raymond ` (2 more replies) 0 siblings, 3 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-07 6:44 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, rbrancaleoni, Manuel Jander Hello! On Wed, Sep 07, 2005 at 08:42:25AM +0800, Raymond wrote: > > Yes, looks like pure AC97 softmodem. What is your 'lspci -nv'. Is > there data sheet? > > I don't have any l8400b or Aureal modem. > > May be Philipp Matthias Hahn and Raffaele Brancaleoni can answer your > question. Yes, I still have it and use it: $ lspci -s 0:6.0 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 03) walker:~# lspci -nv -s 0:6.0 0000:00:06.0 0401: 12eb:0003 (rev 03) Subsystem: 1043:1043 Flags: bus master, medium devsel, latency 32, IRQ 255 Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] I/O ports at fce0 [size=8] I/O ports at fce8 [size=8] Capabilities: [dc] Power Management version 2 If you need something else (data, testing, etc), just ask. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-07 6:44 ` Philipp Matthias Hahn @ 2005-09-07 10:05 ` Raymond 2005-09-07 13:15 ` Philipp Matthias Hahn 2005-09-07 16:10 ` Sasha Khapyorsky 2005-09-07 16:33 ` Sasha Khapyorsky 2005-09-09 16:17 ` Raymond 2 siblings, 2 replies; 88+ messages in thread From: Raymond @ 2005-09-07 10:05 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel, Manuel Jander, Sasha Khapyorsky Philipp Matthias Hahn wrote: > Hello! > > On Wed, Sep 07, 2005 at 08:42:25AM +0800, Raymond wrote: > >>>Yes, looks like pure AC97 softmodem. What is your 'lspci -nv'. Is >> >>there data sheet? >> >>I don't have any l8400b or Aureal modem. >> >>May be Philipp Matthias Hahn and Raffaele Brancaleoni can answer your >>question. > > > Yes, I still have it and use it: > > $ lspci -s 0:6.0 > 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 03) > walker:~# lspci -nv -s 0:6.0 > 0000:00:06.0 0401: 12eb:0003 (rev 03) > Subsystem: 1043:1043 > Flags: bus master, medium devsel, latency 32, IRQ 255 > Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] > I/O ports at fce0 [size=8] > I/O ports at fce8 [size=8] > Capabilities: [dc] Power Management version 2 > > If you need something else (data, testing, etc), just ask. > > BYtE > Philipp It seem to me that it's not AC97 modem. Do ALSA support softmodem with Silicon DAA ? Aureal Vortex 8810. - Aureal Enhanced Motorola Softmodem with Silicon DAA support. http://www.msi.com.tw/program/products/mainboard/mbd/pro_mbd_detail.php?UID=117 You need to identify the chips on your modem daugther card. (Most likely a Silicon DAA Si30xx ) ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-07 10:05 ` Raymond @ 2005-09-07 13:15 ` Philipp Matthias Hahn 2005-09-07 17:16 ` Sasha Khapyorsky 2005-09-07 16:10 ` Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-07 13:15 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, Manuel Jander, Sasha Khapyorsky Hello! On Wed, Sep 07, 2005 at 06:05:37PM +0800, Raymond wrote: > Philipp Matthias Hahn wrote: > >$ lspci -s 0:6.0 > >0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 > >Vortex Digital Audio Processor (rev 03) ... > It seem to me that it's not AC97 modem. > > Do ALSA support softmodem with Silicon DAA ? > > Aureal Vortex 8810. > - Aureal Enhanced Motorola Softmodem with Silicon DAA support. ... > You need to identify the chips on your modem daugther card. > (Most likely a Silicon DAA Si30xx ) I just disassembled my Laptop and found 2 chips on the MDC. The labeling is very hard to read, so I'm not 100% sure. Mine looks very similar to http://www6.tomshardware.com/mobile/20010126/notebooks-06.html but the labeling of the left chip ist different: ST3014-[KX]S [59S][59S]27BAAA23 The right one reads: MOT6269353 [59S][59S]50BAAA10 BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-07 13:15 ` Philipp Matthias Hahn @ 2005-09-07 17:16 ` Sasha Khapyorsky 2005-09-08 16:10 ` Raymond 0 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-07 17:16 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: Raymond, alsa-devel, Manuel Jander On 15:15 Wed 07 Sep , Philipp Matthias Hahn wrote: > > I just disassembled my Laptop and found 2 chips on the MDC. The labeling > is very hard to read, so I'm not 100% sure. The modems are manufactured by different vendors, so labeling may be very different (and in many cases useless :)). > Mine looks very similar to > http://www6.tomshardware.com/mobile/20010126/notebooks-06.html but the > labeling of the left chip ist different: > > ST3014-[KX]S Probably "SI3014", if I remember correctly such DAA was with modems (supported). > [59S][59S]27BAAA23 > > The right one reads: > > MOT6269353 > [59S][59S]50BAAA10 And this is Motorola... something.. I think there is good chances. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-07 17:16 ` Sasha Khapyorsky @ 2005-09-08 16:10 ` Raymond 0 siblings, 0 replies; 88+ messages in thread From: Raymond @ 2005-09-08 16:10 UTC (permalink / raw) To: pmhahn Cc: Sasha Khapyorsky, alsa-devel, Manuel Jander, openvortex-dev, rbrancaleoni Sasha Khapyorsky wrote: > On 15:15 Wed 07 Sep , Philipp Matthias Hahn wrote: > >>I just disassembled my Laptop and found 2 chips on the MDC. The labeling >>is very hard to read, so I'm not 100% sure. > > > The modems are manufactured by different vendors, so labeling may be > very different (and in many cases useless :)). > > >>Mine looks very similar to >>http://www6.tomshardware.com/mobile/20010126/notebooks-06.html but the >>labeling of the left chip ist different: >> >>ST3014-[KX]S > > > Probably "SI3014", if I remember correctly such DAA was with modems > (supported). > How many pins on this chip and is it square/rectangle ? http://www.silabs.com/tgwWebApp/public/web_content/products/Wireline/en/Si3036-8.htm It seem that MOT6269353 is link with au8810 ? > >>[59S][59S]27BAAA23 >> >>The right one reads: >> >>MOT6269353 >>[59S][59S]50BAAA10 > > > And this is Motorola... something.. I think there is good chances. > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-07 10:05 ` Raymond 2005-09-07 13:15 ` Philipp Matthias Hahn @ 2005-09-07 16:10 ` Sasha Khapyorsky 2005-09-09 15:36 ` Raymond 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-07 16:10 UTC (permalink / raw) To: Raymond; +Cc: Philipp Matthias Hahn, alsa-devel, Manuel Jander On 18:05 Wed 07 Sep , Raymond wrote: > > It seem to me that it's not AC97 modem. > > Do ALSA support softmodem with Silicon DAA ? Yes, Si30xx codecs with Silicon DAA. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-07 16:10 ` Sasha Khapyorsky @ 2005-09-09 15:36 ` Raymond 2005-09-10 14:49 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-09 15:36 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: Takashi Iwai, alsa-devel Sasha Khapyorsky wrote: > On 18:05 Wed 07 Sep , Raymond wrote: > >>It seem to me that it's not AC97 modem. >> >>Do ALSA support softmodem with Silicon DAA ? > > > Yes, Si30xx codecs with Silicon DAA. > Do ALSA support Motorola SM56 MOT6269353 with Silicon DAA Si3014 ? It seem that au8810 is connected to MOT6269353 on MDC of ASUS L8400B notebook. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-09 15:36 ` Raymond @ 2005-09-10 14:49 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-10 14:49 UTC (permalink / raw) To: Raymond; +Cc: Takashi Iwai, alsa-devel On 23:36 Fri 09 Sep , Raymond wrote: > > Do ALSA support Motorola SM56 MOT6269353 with Silicon DAA Si3014 ? I guess that SM56 MOT6269353 is customized edition of Si3036, if so it is supported. > It seem that au8810 is connected to MOT6269353 on MDC of ASUS L8400B > notebook. Yes, very possible and it looks like AC97 link. And if au8810 data sheet is available we may to add support for this modem. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: Mo' better modem support 2005-09-07 6:44 ` Philipp Matthias Hahn 2005-09-07 10:05 ` Raymond @ 2005-09-07 16:33 ` Sasha Khapyorsky 2005-09-09 16:17 ` Raymond 2 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-07 16:33 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: Raymond, alsa-devel, rbrancaleoni, Manuel Jander On 08:44 Wed 07 Sep , Philipp Matthias Hahn wrote: > > Yes, I still have it and use it: > > $ lspci -s 0:6.0 > 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 03) > walker:~# lspci -nv -s 0:6.0 > 0000:00:06.0 0401: 12eb:0003 (rev 03) > Subsystem: 1043:1043 > Flags: bus master, medium devsel, latency 32, IRQ 255 > Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] > I/O ports at fce0 [size=8] > I/O ports at fce8 [size=8] > Capabilities: [dc] Power Management version 2 > > If you need something else (data, testing, etc), just ask. Do you know is there data sheet available? The driver in pci/au88x0 looks like AC97 for all supported ships. Sasha. ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-07 6:44 ` Philipp Matthias Hahn 2005-09-07 10:05 ` Raymond 2005-09-07 16:33 ` Sasha Khapyorsky @ 2005-09-09 16:17 ` Raymond 2005-09-11 12:45 ` Philipp Matthias Hahn 2 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-09 16:17 UTC (permalink / raw) To: pmhahn; +Cc: alsa-devel Philipp Matthias Hahn wrote: > Hello! > > > Yes, I still have it and use it: > > $ lspci -s 0:6.0 > 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 03) > walker:~# lspci -nv -s 0:6.0 > 0000:00:06.0 0401: 12eb:0003 (rev 03) > Subsystem: 1043:1043 > Flags: bus master, medium devsel, latency 32, IRQ 255 > Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] > I/O ports at fce0 [size=8] > I/O ports at fce8 [size=8] > Capabilities: [dc] Power Management version 2 > > If you need something else (data, testing, etc), just ask. > > BYtE > Philipp Would you post result of cat /proc/asound/au8810/codec97#0/ac97#0-0+regs Are you able to use the modem in Win9x/NT4/W2K/DOS ? What is the feature available ? 1) Data/Fax only 2) Data/Fax/TAM (Telephone answering machine) 3) Data/Fax/TAM/Speakerphone ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-09 16:17 ` Raymond @ 2005-09-11 12:45 ` Philipp Matthias Hahn 2005-09-12 16:36 ` Raymond 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-11 12:45 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel Hello! On Sat, Sep 10, 2005 at 12:17:40AM +0800, Raymond wrote: > Would you post result of > cat /proc/asound/au8810/codec97#0/ac97#0-0+regs 0:00 = 6940 0:02 = 0303 0:04 = 8000 0:06 = 801f 0:08 = ffff 0:0a = 9f1f 0:0c = 801f 0:0e = 881f 0:10 = 9f1f 0:12 = 9f1f 0:14 = 9f1f 0:16 = 9f1f 0:18 = 0707 0:1a = 9818 0:1c = 0000 0:1e = 0000 0:20 = 0000 0:22 = 0808 0:24 = 0000 0:26 = 000f 0:28 = ffff 0:2a = ffff 0:2c = ffff 0:2e = ffff 0:30 = ffff 0:32 = ffff 0:34 = ffff 0:36 = ffff 0:38 = ffff 0:3a = ffff 0:3c = 0000 0:3e = 0000 0:40 = 0000 0:42 = 0000 0:44 = 0000 0:46 = 0000 0:48 = 0000 0:4a = 0000 0:4c = 0000 0:4e = 0000 0:50 = 0000 0:52 = 0000 0:54 = 0000 0:56 = 0000 0:58 = 0000 0:5a = 0000 0:5c = 0000 0:5e = 0000 0:60 = 0000 0:62 = 0000 0:64 = 0000 0:66 = 0000 0:68 = 0000 0:6a = 0000 0:6c = 0000 0:6e = 0000 0:70 = 0000 0:72 = 0000 0:74 = 0000 0:76 = 0000 0:78 = 0000 0:7a = 0000 0:7c = 8384 0:7e = 7605 > Are you able to use the modem in Win9x/NT4/W2K/DOS ? Yes, I once used the modem with Windows98. But it's a long time ago, since I now use Linux all the time. > What is the feature available ? > 1) Data/Fax only > 2) Data/Fax/TAM (Telephone answering machine) > 3) Data/Fax/TAM/Speakerphon Don't know. Never used Windows much. But if you have an easy-to-install and easy-to-use test application for Windows, I'm willing to test it. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-11 12:45 ` Philipp Matthias Hahn @ 2005-09-12 16:36 ` Raymond 2005-09-13 0:09 ` au88x0 modem [was: Re: Mo' better modem support] Sasha Khapyorsky 2005-09-13 9:22 ` Mo' better modem support Philipp Matthias Hahn 0 siblings, 2 replies; 88+ messages in thread From: Raymond @ 2005-09-12 16:36 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel, Sasha Khapyorsky Philipp Matthias Hahn wrote: > Hello! > > On Sat, Sep 10, 2005 at 12:17:40AM +0800, Raymond wrote: > >>Would you post result of >>cat /proc/asound/au8810/codec97#0/ac97#0-0+regs > > > 0:00 = 6940 > 0:02 = 0303 > 0:04 = 8000 > 0:06 = 801f > 0:08 = ffff > 0:0a = 9f1f > 0:0c = 801f > 0:0e = 881f > 0:10 = 9f1f > 0:12 = 9f1f > 0:14 = 9f1f > 0:16 = 9f1f > 0:18 = 0707 > 0:1a = 9818 > 0:1c = 0000 > 0:1e = 0000 > 0:20 = 0000 > 0:22 = 0808 > 0:24 = 0000 > 0:26 = 000f > 0:28 = ffff > 0:2a = ffff > 0:2c = ffff > 0:2e = ffff > 0:30 = ffff > 0:32 = ffff > 0:34 = ffff > 0:36 = ffff > 0:38 = ffff > 0:3a = ffff > 0:3c = 0000 > 0:3e = 0000 > 0:40 = 0000 > 0:42 = 0000 > 0:44 = 0000 > 0:46 = 0000 > 0:48 = 0000 > 0:4a = 0000 > 0:4c = 0000 > 0:4e = 0000 > 0:50 = 0000 > 0:52 = 0000 > 0:54 = 0000 > 0:56 = 0000 > 0:58 = 0000 > 0:5a = 0000 > 0:5c = 0000 > 0:5e = 0000 > 0:60 = 0000 > 0:62 = 0000 > 0:64 = 0000 > 0:66 = 0000 > 0:68 = 0000 > 0:6a = 0000 > 0:6c = 0000 > 0:6e = 0000 > 0:70 = 0000 > 0:72 = 0000 > 0:74 = 0000 > 0:76 = 0000 > 0:78 = 0000 > 0:7a = 0000 > 0:7c = 8384 > 0:7e = 7605 > http://cvs.sourceforge.net/viewcvs.py/*checkout*/alsa/alsa-kernel/pci/ac97/ac97_id.h?rev=1.11 #define AC97_ID_STAC9705 0x83847605 http://cvs.sourceforge.net/viewcvs.py/*checkout*/alsa/alsa-kernel/pci/ac97/ac97_codec.c?rev=1.197 { 0x83847604, 0xffffffff, "STAC9701,3,4,5", NULL, NULL }, { 0x83847605, 0xffffffff, "STAC9704", NULL, NULL }, Is it STAC9705 ? 18-bit full-duplex audio codec with intergrated modem analog front end. http://www6.tomshardware.com/mobile/20010126/notebooks-06.html What is the usage of MOT6269353 if it already connected to STAC9705 ? > >>Are you able to use the modem in Win9x/NT4/W2K/DOS ? > > > Yes, I once used the modem with Windows98. But it's a long time ago, > since I now use Linux all the time. > Just make sure your modem are still working The cable at the top of the MiniPCI card is connected to the RJ11 Combo jack. Combo because the MDC modem card is sharing this port with the LAN. You cannot use LAN and Modem simultaneously. How to select which one use the RJ11 Combo jack ? (BIOS setup) > >>What is the feature available ? >>1) Data/Fax only >>2) Data/Fax/TAM (Telephone answering machine) >>3) Data/Fax/TAM/Speakerphon > > > Don't know. Never used Windows much. But if you have an easy-to-install > and easy-to-use test application for Windows, I'm willing to test it. > It seem to support voice, any user manual mention that it can be used for data/fax/tam/speakerphone ? ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* au88x0 modem [was: Re: Mo' better modem support] 2005-09-12 16:36 ` Raymond @ 2005-09-13 0:09 ` Sasha Khapyorsky 2005-09-13 8:55 ` Philipp Matthias Hahn 2005-09-13 9:12 ` au88x0 modem [was: Re: Mo' better modem support] Raymond 2005-09-13 9:22 ` Mo' better modem support Philipp Matthias Hahn 1 sibling, 2 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 0:09 UTC (permalink / raw) To: Raymond, pmhahn; +Cc: alsa-devel On 00:36 Tue 13 Sep , Raymond wrote: > >>cat /proc/asound/au8810/codec97#0/ac97#0-0+regs > >0:7c = 8384 > >0:7e = 7605 > Is it STAC9705 ? > > 18-bit full-duplex audio codec with intergrated modem analog front end. > > http://www6.tomshardware.com/mobile/20010126/notebooks-06.html > > What is the usage of MOT6269353 if it already connected to STAC9705 ? It is likely secondary modem-only codec (Motorola/SiLabs). Philipp, Could you try the patch below? And then look again at '/proc/asond/au8810'? This is against CVS, untested and may be dangerous because I know nothing about au8810 (somebody knows, please comment). Sasha. Index: alsa-kernel/pci/au88x0/au8810.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8810.h,v retrieving revision 1.3 diff -u -p -r1.3 au8810.h --- alsa-kernel/pci/au88x0/au8810.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8810.h 12 Sep 2005 23:35:26 -0000 @@ -171,9 +171,9 @@ #define VORTEX_CODEC_CTRL 0x29184 #define VORTEX_CODEC_EN 0x29190 #define EN_CODEC0 0x00000300 -#define EN_AC98 0x00000c00 /* Modem AC98 slots. */ +#define EN_MODEM 0x00000c00 /* Modem AC98 slots. */ #define EN_CODEC1 0x00003000 -#define EN_CODEC (EN_CODEC0 | EN_CODEC1) +#define EN_CODEC (EN_CODEC0 | EN_MODEM | EN_CODEC1) #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 Index: alsa-kernel/pci/au88x0/au8820.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8820.h,v retrieving revision 1.3 diff -u -p -r1.3 au8820.h --- alsa-kernel/pci/au88x0/au8820.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8820.h 12 Sep 2005 23:35:26 -0000 @@ -158,7 +158,10 @@ /* CODEC */ #define VORTEX_CODEC_CTRL 0x11984 #define VORTEX_CODEC_EN 0x11990 -#define EN_CODEC 0x00000300 +#define EN_CODEC0 0x00000300 +#define EN_MODEM 0x00000c00 +#define EN_CODEC1 0x00003000 +#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 #define VORTEX_CODEC_CHN 0x11880 Index: alsa-kernel/pci/au88x0/au8830.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8830.h,v retrieving revision 1.3 diff -u -p -r1.3 au8830.h --- alsa-kernel/pci/au88x0/au8830.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8830.h 12 Sep 2005 23:35:27 -0000 @@ -203,12 +203,12 @@ #define VORTEX_CODEC_SPORTCTRL 0x2918c #define VORTEX_CODEC_EN 0x29190 -#define EN_AUDIO0 0x00000300 +#define EN_CODEC0 0x00000300 #define EN_MODEM 0x00000c00 -#define EN_AUDIO1 0x00003000 +#define EN_CODEC1 0x00003000 #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 -#define EN_CODEC (EN_AUDIO1 | EN_AUDIO0) +#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) #define VORTEX_SPDIF_SMPRATE 0x29194 Index: alsa-kernel/pci/au88x0/au88x0.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0.h,v retrieving revision 1.11 diff -u -p -r1.11 au88x0.h --- alsa-kernel/pci/au88x0/au88x0.h 22 Mar 2005 08:50:55 -0000 1.11 +++ alsa-kernel/pci/au88x0/au88x0.h 12 Sep 2005 23:35:27 -0000 @@ -135,7 +135,8 @@ struct snd_vortex { snd_pcm_t *pcm[VORTEX_PCM_LAST]; snd_rawmidi_t *rmidi; /* Legacy Midi interface. */ - ac97_t *codec; + unsigned int num_of_codecs; + ac97_t *codecs[2]; /* Stream structs. */ stream_t dma_adb[NR_ADB]; Index: alsa-kernel/pci/au88x0/au88x0_core.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_core.c,v retrieving revision 1.11 diff -u -p -r1.11 au88x0_core.c --- alsa-kernel/pci/au88x0/au88x0_core.c 23 Feb 2005 11:00:31 -0000 1.11 +++ alsa-kernel/pci/au88x0/au88x0_core.c 12 Sep 2005 23:35:33 -0000 @@ -2511,6 +2511,11 @@ static void vortex_codec_init(vortex_t * /* Enable codec channels 0 and 1. */ hwwrite(vortex->mmio, VORTEX_CODEC_EN, hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); + vortex->num_of_codecs = 1; + /* nothing know about that */ + msleep(2); + if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) + vortex->num_of_codecs = 2; } static void Index: alsa-kernel/pci/au88x0/au88x0_mixer.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_mixer.c,v retrieving revision 1.5 diff -u -p -r1.5 au88x0_mixer.c --- alsa-kernel/pci/au88x0/au88x0_mixer.c 23 Mar 2005 17:04:16 -0000 1.5 +++ alsa-kernel/pci/au88x0/au88x0_mixer.c 12 Sep 2005 23:35:33 -0000 @@ -15,7 +15,7 @@ static int __devinit snd_vortex_mixer(vo { ac97_bus_t *pbus; ac97_template_t ac97; - int err; + int i, err; static ac97_bus_ops_t ops = { .write = vortex_codec_write, .read = vortex_codec_read, @@ -27,7 +27,10 @@ static int __devinit snd_vortex_mixer(vo // Intialize AC97 codec stuff. ac97.private_data = vortex; ac97.scaps = AC97_SCAP_NO_SPDIF; - err = snd_ac97_mixer(pbus, &ac97, &vortex->codec); - vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->ext_id&0x80)); + for (i = 0 ; i < vortex->num_of_codecs ; i++) { + ac97.num = i; + err = snd_ac97_mixer(pbus, &ac97, &vortex->codecs[i]); + } + vortex->isquad = ((vortex->codecs[0] == NULL) ? 0 : (vortex->codecs[0]->ext_id&0x80)); return err; } ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem [was: Re: Mo' better modem support] 2005-09-13 0:09 ` au88x0 modem [was: Re: Mo' better modem support] Sasha Khapyorsky @ 2005-09-13 8:55 ` Philipp Matthias Hahn 2005-09-13 17:35 ` Re: au88x0 modem Sasha Khapyorsky 2005-09-13 9:12 ` au88x0 modem [was: Re: Mo' better modem support] Raymond 1 sibling, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-13 8:55 UTC (permalink / raw) To: Raymond, alsa-devel [-- Attachment #1: Type: text/plain, Size: 429 bytes --] Hello! On Tue, Sep 13, 2005 at 03:09:09AM +0300, Sasha Khapyorsky wrote: > Could you try the patch below? And then look again at '/proc/asond/au8810'? See attached tar-file for a full copy of everything under /proc/asound/au8810 after applying the attached patch against ASLA from linux-2.6.13.1. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de [-- Attachment #2: au8810.tar.gz --] [-- Type: application/octet-stream, Size: 5381 bytes --] ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-13 8:55 ` Philipp Matthias Hahn @ 2005-09-13 17:35 ` Sasha Khapyorsky 2005-09-13 17:49 ` Philipp Matthias Hahn 0 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 17:35 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: Raymond, alsa-devel, openvortex-dev On 10:55 Tue 13 Sep , Philipp Matthias Hahn wrote: > > See attached tar-file for a full copy of everything under > /proc/asound/au8810 after applying the attached patch against ASLA from > linux-2.6.13.1. ac97#0-N entries are identical there for both codecs, this is because ac97_codec_read/write always accesses primary codec. Try next patch please. Sasha. --- au88x0_core.c_orig 2005-09-13 20:00:50.000000000 +0300 +++ au88x0_core.c 2005-09-13 20:05:36.000000000 +0300 @@ -2535,7 +2535,8 @@ vortex_codec_write(ac97_t * codec, unsig } /* write register */ hwwrite(card->mmio, VORTEX_CODEC_IO, - ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | + (((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | + ((0x80*codec->num) << VORTEX_CODEC_ADDSHIFT)) | ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | VORTEX_CODEC_WRITE); @@ -2560,6 +2561,7 @@ static unsigned short vortex_codec_read( } /* set up read address */ read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK); + read_addr |= (0x80*codec->num) << VORTEX_CODEC_ADDSHIFT ; hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr); /* wait for address */ ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-13 17:35 ` Re: au88x0 modem Sasha Khapyorsky @ 2005-09-13 17:49 ` Philipp Matthias Hahn 2005-09-13 21:44 ` Sasha Khapyorsky 2005-09-14 8:06 ` Raymond 0 siblings, 2 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-13 17:49 UTC (permalink / raw) To: Raymond, alsa-devel, openvortex-dev Hello! On Tue, Sep 13, 2005 at 08:35:29PM +0300, Sasha Khapyorsky wrote: > On 10:55 Tue 13 Sep , Philipp Matthias Hahn wrote: > > See attached tar-file for a full copy of everything under > > /proc/asound/au8810 after applying the attached patch against ASLA from > > linux-2.6.13.1. > > ac97#0-N entries are identical there for both codecs, this is because > ac97_codec_read/write always accesses primary codec. Try next patch > please. > > --- au88x0_core.c_orig 2005-09-13 20:00:50.000000000 +0300 > +++ au88x0_core.c 2005-09-13 20:05:36.000000000 +0300 > @@ -2535,7 +2535,8 @@ vortex_codec_write(ac97_t * codec, unsig > } > /* write register */ > hwwrite(card->mmio, VORTEX_CODEC_IO, > - ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | > + (((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | > + ((0x80*codec->num) << VORTEX_CODEC_ADDSHIFT)) | > ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | > VORTEX_CODEC_WRITE); > > @@ -2560,6 +2561,7 @@ static unsigned short vortex_codec_read( > } > /* set up read address */ > read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK); > + read_addr |= (0x80*codec->num) << VORTEX_CODEC_ADDSHIFT ; > hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr); ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 Vortex: init.... <6>done. vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived vortex: ac97 address never arrived AC'97 1 does not respond - RESET vortex: ac97 address never arrived vortex: ac97 address never arrived AC'97 1 access is not valid [0xffffffff], removing mixer. Vortex: shutdown...vortex: FATAL: ResManager: resource type 3 exhausted. vortex: FATAL: ResManager: resource type 3 exhausted. vortex_adb_delroutes: route not found! 0x24a0 src alarm vortex_adb_delroutes: route not found! 0x24a1 src alarm vortex_adb_delroutes: route not found! 0x7e88 vortex_adb_delroutes: route not found! 0x7f89 vortex: FATAL: ResManager: resource type 2 exhausted. vortex: FATAL: ResManager: resource type 2 exhausted. vortex_adb_delroutes: route not found! 0x7044 vortex_adb_delroutes: route not found! 0x7144 vortex: FATAL: ResManager: resource type 3 exhausted. vortex: FATAL: ResManager: resource type 3 exhausted. vortex_adb_delroutes: route not found! 0x2492 src alarm vortex_adb_delroutes: route not found! 0x2493 src alarm done. ACPI: PCI interrupt for device 0000:00:06.0 disabled au8810: probe of 0000:00:06.0 failed with error -5 BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-13 17:49 ` Philipp Matthias Hahn @ 2005-09-13 21:44 ` Sasha Khapyorsky 2005-09-14 7:02 ` Philipp Matthias Hahn 2005-09-14 8:06 ` Raymond 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 21:44 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel, openvortex-dev, Raymond On 19:49 Tue 13 Sep , Philipp Matthias Hahn wrote: > > ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 > Vortex: init.... <6>done. > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > AC'97 1 does not respond - RESET Understood. Could you send full 'lspci -vv' please. Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-13 21:44 ` Sasha Khapyorsky @ 2005-09-14 7:02 ` Philipp Matthias Hahn 2005-09-14 9:47 ` [Openvortex-dev] " Maarten Vanraes 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-14 7:02 UTC (permalink / raw) To: alsa-devel, openvortex-dev, Raymond Hello! On Wed, Sep 14, 2005 at 12:44:13AM +0300, Sasha Khapyorsky wrote: > On 19:49 Tue 13 Sep , Philipp Matthias Hahn wrote: > > ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 > > Vortex: init.... <6>done. > > vortex: ac97 address never arrived > > AC'97 1 does not respond - RESET > > Understood. Could you send full 'lspci -vv' please. 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 03) Subsystem: ASUSTeK Computer Inc.: Unknown device 1043 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 10 Region 0: Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] Region 1: I/O ports at fce0 [size=8] Region 2: I/O ports at fce8 [size=8] Capabilities: [dc] Power Management version 2 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA PME(D0-,D1-,D2+,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- BYtE Philipp <icq://33677863> -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [Openvortex-dev] Re: Re: au88x0 modem 2005-09-14 7:02 ` Philipp Matthias Hahn @ 2005-09-14 9:47 ` Maarten Vanraes 2005-09-14 12:47 ` Raymond 2005-09-14 21:03 ` Sasha Khapyorsky 0 siblings, 2 replies; 88+ messages in thread From: Maarten Vanraes @ 2005-09-14 9:47 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel, openvortex-dev, Raymond > Hello! > > On Wed, Sep 14, 2005 at 12:44:13AM +0300, Sasha Khapyorsky wrote: >> On 19:49 Tue 13 Sep , Philipp Matthias Hahn wrote: >> > ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKC] -> GSI 10 (level, >> low) -> IRQ 10 >> > Vortex: init.... <6>done. >> > vortex: ac97 address never arrived >> > AC'97 1 does not respond - RESET >> >> Understood. Could you send full 'lspci -vv' please. > > 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 > Vortex Digital Audio Processor (rev 03) > Subsystem: ASUSTeK Computer Inc.: Unknown device 1043 > Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- > Stepping- SERR- FastB2B- > Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- > <MAbort- >SERR- <PERR- > Interrupt: pin A routed to IRQ 10 > Region 0: Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] > Region 1: I/O ports at fce0 [size=8] > Region 2: I/O ports at fce8 [size=8] > Capabilities: [dc] Power Management version 2 > Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA > PME(D0-,D1-,D2+,D3hot+,D3cold+) > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > if it helps: mine is: 00:0c.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 02) Subsystem: Aureal Semiconductor AU8810 Vortex Digital Audio Processor Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 (500ns min, 20750ns max), cache line size 40 Interrupt: pin A routed to IRQ 169 Region 0: Memory at 00000000fdc00000 (32-bit, non-prefetchable) [size=256K] Region 1: I/O ports at dc00 [size=8] Region 2: I/O ports at cc00 [size=8] Capabilities: [dc] Power Management version 2 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA PME(D0-,D1-,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [Openvortex-dev] Re: Re: au88x0 modem 2005-09-14 9:47 ` [Openvortex-dev] " Maarten Vanraes @ 2005-09-14 12:47 ` Raymond 2005-09-14 21:03 ` Sasha Khapyorsky 1 sibling, 0 replies; 88+ messages in thread From: Raymond @ 2005-09-14 12:47 UTC (permalink / raw) To: alsa-devel Maarten Vanraes wrote: >> Hello! >> > > if it helps: mine is: > > 00:0c.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex > Digital Audio Processor (rev 02) > Subsystem: Aureal Semiconductor AU8810 Vortex Digital Audio Processor > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- > ParErr- Stepping- SERR+ FastB2B- > Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- > <TAbort- <MAbort- >SERR- <PERR- > Latency: 64 (500ns min, 20750ns max), cache line size 40 > Interrupt: pin A routed to IRQ 169 > Region 0: Memory at 00000000fdc00000 (32-bit, non-prefetchable) > [size=256K] > Region 1: I/O ports at dc00 [size=8] > Region 2: I/O ports at cc00 [size=8] > Capabilities: [dc] Power Management version 2 > Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA > PME(D0-,D1-,D2+,D3hot+,D3cold-) > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > > > http://pci-ids.ucw.cz/iii/?i=12eb0003 It would help if you can tell us the exact model of your au8810 lspci -vvn cat /proc/asound/au8810/codec97#0/ac97#0-0+regs and send the subsystem vendor id, subsystem device id and the model name of your au88x0 to the pci ids database maintainer to update /usr/src/linux/drivers/pci/pci.ids Your au8810 with Subsystem: 12eb:xxxx may be one of the following 1) Aureal SQ1500 2) Aureal Advantage 3) Aureal SoundCom Audio/Modem Combo ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [Openvortex-dev] Re: Re: au88x0 modem 2005-09-14 9:47 ` [Openvortex-dev] " Maarten Vanraes 2005-09-14 12:47 ` Raymond @ 2005-09-14 21:03 ` Sasha Khapyorsky 2005-09-15 7:25 ` Philipp Matthias Hahn 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-14 21:03 UTC (permalink / raw) To: Maarten Vanraes, Philipp Matthias Hahn Cc: alsa-devel, openvortex-dev, Raymond On 11:47 Wed 14 Sep , Maarten Vanraes wrote: > > > > 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 > > Vortex Digital Audio Processor (rev 03) > > Subsystem: ASUSTeK Computer Inc.: Unknown device 1043 > > Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- > > Stepping- SERR- FastB2B- > > Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- > > <MAbort- >SERR- <PERR- > > Interrupt: pin A routed to IRQ 10 > > Region 0: Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] > > Region 1: I/O ports at fce0 [size=8] > > Region 2: I/O ports at fce8 [size=8] > > Capabilities: [dc] Power Management version 2 > > Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA > > PME(D0-,D1-,D2+,D3hot+,D3cold+) > > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > > > > if it helps: mine is: > > 00:0c.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex > Digital Audio Processor (rev 02) > Subsystem: Aureal Semiconductor AU8810 Vortex Digital Audio Processor > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- > ParErr- Stepping- SERR+ FastB2B- > Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- > <TAbort- <MAbort- >SERR- <PERR- > Latency: 64 (500ns min, 20750ns max), cache line size 40 > Interrupt: pin A routed to IRQ 169 > Region 0: Memory at 00000000fdc00000 (32-bit, non-prefetchable) > [size=256K] > Region 1: I/O ports at dc00 [size=8] > Region 2: I/O ports at cc00 [size=8] > Capabilities: [dc] Power Management version 2 > Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA > PME(D0-,D1-,D2+,D3hot+,D3cold-) > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > > Thank you guys. Could you send us full lspci output - there is approach that modem uses separate from audio PCI entry. In such way it is done with most AC97 audio/modem controllers and possibly with some au8810 too. Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: [Openvortex-dev] Re: Re: au88x0 modem 2005-09-14 21:03 ` Sasha Khapyorsky @ 2005-09-15 7:25 ` Philipp Matthias Hahn 0 siblings, 0 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-15 7:25 UTC (permalink / raw) To: Maarten Vanraes, alsa-devel, openvortex-dev, Raymond Hello! On Thu, Sep 15, 2005 at 12:03:03AM +0300, Sasha Khapyorsky wrote: > On 11:47 Wed 14 Sep , Maarten Vanraes wrote: > > > > > > 0000:00:06.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 03) > > > Subsystem: ASUSTeK Computer Inc.: Unknown device 1043 ... > > 00:0c.0 Multimedia audio controller: Aureal Semiconductor AU8810 Vortex Digital Audio Processor (rev 02) > > Subsystem: Aureal Semiconductor AU8810 Vortex Digital Audio Processor ... > Could you send us full lspci output - there is approach that modem uses > separate from audio PCI entry. In such way it is done with most AC97 > audio/modem controllers and possibly with some au8810 too. Sorry, just a single PCI device: 0000:00:06.0 0401: 12eb:0003 (rev 03) Subsystem: 1043:1043 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 (500ns min, 20750ns max), Cache Line Size: 0x08 (32 bytes) Interrupt: pin A routed to IRQ 255 Region 0: Memory at fedc0000 (32-bit, non-prefetchable) [size=256K] Region 1: I/O ports at fce0 [size=8] Region 2: I/O ports at fce8 [size=8] Capabilities: [dc] Power Management version 2 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=55mA PME(D0-,D1-,D2+,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00: eb 12 03 00 07 00 90 02 03 00 01 04 08 20 00 00 10: 00 00 dc fe e1 fc 00 00 e9 fc 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 43 10 30: 00 00 00 00 dc 00 00 00 00 00 00 00 ff 01 02 53 40: 80 00 00 00 43 10 43 10 01 fc 3f 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 62 e4 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-13 17:49 ` Philipp Matthias Hahn 2005-09-13 21:44 ` Sasha Khapyorsky @ 2005-09-14 8:06 ` Raymond 2005-09-14 20:56 ` Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-14 8:06 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: Sasha Khapyorsky, openvortex-dev, alsa-devel Philipp Matthias Hahn wrote: > Hello! > > On Tue, Sep 13, 2005 at 08:35:29PM +0300, Sasha Khapyorsky wrote: > >>On 10:55 Tue 13 Sep , Philipp Matthias Hahn wrote: >> >>>See attached tar-file for a full copy of everything under >>>/proc/asound/au8810 after applying the attached patch against ASLA from >>>linux-2.6.13.1. >> >>ac97#0-N entries are identical there for both codecs, this is because >>ac97_codec_read/write always accesses primary codec. Try next patch >>please. >> >>--- au88x0_core.c_orig 2005-09-13 20:00:50.000000000 +0300 >>+++ au88x0_core.c 2005-09-13 20:05:36.000000000 +0300 >>@@ -2535,7 +2535,8 @@ vortex_codec_write(ac97_t * codec, unsig >> } >> /* write register */ >> hwwrite(card->mmio, VORTEX_CODEC_IO, >>- ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | >>+ (((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | >>+ ((0x80*codec->num) << VORTEX_CODEC_ADDSHIFT)) | >> ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | >> VORTEX_CODEC_WRITE); >> >>@@ -2560,6 +2561,7 @@ static unsigned short vortex_codec_read( >> } >> /* set up read address */ >> read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK); >>+ read_addr |= (0x80*codec->num) << VORTEX_CODEC_ADDSHIFT ; >> hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr); > #define VORTEX_CODEC_WRITE 0x00800000 #define VORTEX_CODEC_ADDSHIFT 16 (0x80* 1) << VORTEX_CODEC_ADDSHIFT) is equal to VORTEX_CODEC_WRITE May be au8810 use different set of MMIO to read/write and report status of the audio codec and modem codec ? au8810.h #define VORTEX_MODEM_CTRL 0x291ac Make sure you have a BACKUP of all your data before you peform testing on the modem. It's not easy to hack the modem since we don't have any datasheet of au8810 and MOT6269353. (AC-link between them) > > ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10 > Vortex: init.... <6>done. > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > vortex: ac97 address never arrived > AC'97 1 does not respond - RESET > vortex: ac97 address never arrived > vortex: ac97 address never arrived > AC'97 1 access is not valid [0xffffffff], removing mixer. > Vortex: shutdown...vortex: FATAL: ResManager: resource type 3 exhausted. > vortex: FATAL: ResManager: resource type 3 exhausted. > vortex_adb_delroutes: route not found! 0x24a0 > src alarm > vortex_adb_delroutes: route not found! 0x24a1 > src alarm > vortex_adb_delroutes: route not found! 0x7e88 > vortex_adb_delroutes: route not found! 0x7f89 > vortex: FATAL: ResManager: resource type 2 exhausted. > vortex: FATAL: ResManager: resource type 2 exhausted. > vortex_adb_delroutes: route not found! 0x7044 > vortex_adb_delroutes: route not found! 0x7144 > vortex: FATAL: ResManager: resource type 3 exhausted. > vortex: FATAL: ResManager: resource type 3 exhausted. > vortex_adb_delroutes: route not found! 0x2492 > src alarm > vortex_adb_delroutes: route not found! 0x2493 > src alarm > done. > ACPI: PCI interrupt for device 0000:00:06.0 disabled > au8810: probe of 0000:00:06.0 failed with error -5 > > BYtE > Philipp ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-14 8:06 ` Raymond @ 2005-09-14 20:56 ` Sasha Khapyorsky 2005-09-15 9:11 ` Philipp Matthias Hahn 0 siblings, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-14 20:56 UTC (permalink / raw) To: Raymond, Philipp Matthias Hahn; +Cc: openvortex-dev, alsa-devel [-- Attachment #1: Type: text/plain, Size: 1841 bytes --] On 16:06 Wed 14 Sep , Raymond wrote: > > #define VORTEX_CODEC_WRITE 0x00800000 > #define VORTEX_CODEC_ADDSHIFT 16 > > (0x80* 1) << VORTEX_CODEC_ADDSHIFT) is equal to VORTEX_CODEC_WRITE Oh, yes. It was bad approach. Let's look similar scheme with vi82xx (via82xx.c, via82xx_modem.c): /* AC'97 */ #define VIA_REG_AC97 0x80 /* dword */ #define VIA_REG_AC97_CODEC_ID_MASK (3<<30) #define VIA_REG_AC97_CODEC_ID_SHIFT 30 #define VIA_REG_AC97_CODEC_ID_PRIMARY 0x00 #define VIA_REG_AC97_CODEC_ID_SECONDARY 0x01 #define VIA_REG_AC97_SECONDARY_VALID (1<<27) #define VIA_REG_AC97_PRIMARY_VALID (1<<25) #define VIA_REG_AC97_BUSY (1<<24) #define VIA_REG_AC97_READ (1<<23) #define VIA_REG_AC97_CMD_SHIFT 16 #define VIA_REG_AC97_CMD_MASK 0x7e #define VIA_REG_AC97_DATA_SHIFT 0 #define VIA_REG_AC97_DATA_MASK 0xffff Codec id is addressed by bits 30,31. Of course this should not be same with au8810, but let's check. The patch is attached. Philipp, you could play with VORTEX_CODEC_ID_SHIFT value (au88x0,h) in range 24-31. > May be au8810 use different set of MMIO to read/write and report > status of the audio codec and modem codec ? It is possible of course but we cannot know which one in easy way (without reverse engineering of win drivers). > au8810.h > > #define VORTEX_MODEM_CTRL 0x291ac I don't understand meaning of this, but there is set of similar ones (CODEC_CTRL) and it is used for initializations. BTW it is very possible that we should change initialization procedure (and probably use MODEM_CTRL somehow), but again, it is hard to know (without reverse engineering). > Make sure you have a BACKUP of all your data before you peform testing > on the modem. Dear testers, it is good idea. Sasha. [-- Attachment #2: 2codec_read-2.patch --] [-- Type: text/plain, Size: 1488 bytes --] diff -rpu au88x0_orig/au88x0.h au88x0/au88x0.h --- au88x0_orig/au88x0.h 2005-09-14 20:52:57.000000000 +0300 +++ au88x0/au88x0.h 2005-09-14 20:54:47.000000000 +0300 @@ -79,6 +79,9 @@ #define VORTEX_RESOURCE_A3D 0x00000004 #define VORTEX_RESOURCE_LAST 0x00000005 +/* codec io related */ +#define VORTEX_CODEC_ID_SHIFT 30 /* unknown: may be 24-31 (or irrelevat) */ + /* Check for SDAC bit in "Extended audio ID" AC97 register */ //#define VORTEX_IS_QUAD(x) (((x)->codec == NULL) ? 0 : ((x)->codec->ext_id&0x80)) #define VORTEX_IS_QUAD(x) ((x)->isquad) diff -rpu au88x0_orig/au88x0_core.c au88x0/au88x0_core.c --- au88x0_orig/au88x0_core.c 2005-09-13 20:00:50.000000000 +0300 +++ au88x0/au88x0_core.c 2005-09-14 20:51:03.000000000 +0300 @@ -2537,7 +2537,8 @@ vortex_codec_write(ac97_t * codec, unsig hwwrite(card->mmio, VORTEX_CODEC_IO, ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | - VORTEX_CODEC_WRITE); + VORTEX_CODEC_WRITE | + (codec->num << VORTEX_CODEC_ID_SHIFT) ); /* Flush Caches. */ hwread(card->mmio, VORTEX_CODEC_IO); @@ -2559,7 +2560,8 @@ static unsigned short vortex_codec_read( } } /* set up read address */ - read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK); + read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | + (codec->num << VORTEX_CODEC_ID_SHIFT) ; hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr); /* wait for address */ ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-14 20:56 ` Sasha Khapyorsky @ 2005-09-15 9:11 ` Philipp Matthias Hahn 2005-09-15 9:21 ` Philipp Matthias Hahn 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-15 9:11 UTC (permalink / raw) To: Raymond, openvortex-dev, alsa-devel Hello! On Wed, Sep 14, 2005 at 11:56:08PM +0300, Sasha Khapyorsky wrote: > Philipp, you could play with VORTEX_CODEC_ID_SHIFT value (au88x0,h) in > range 24-31. ... > diff -rpu au88x0_orig/au88x0.h au88x0/au88x0.h ... > +#define VORTEX_CODEC_ID_SHIFT 30 /* unknown: may be 24-31 (or irrelevat) */ Sorry, no luck with any value in the range 24-31. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 9:11 ` Philipp Matthias Hahn @ 2005-09-15 9:21 ` Philipp Matthias Hahn 2005-09-15 11:10 ` Raymond 2005-09-15 14:35 ` Sasha Khapyorsky 0 siblings, 2 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-15 9:21 UTC (permalink / raw) To: Raymond, openvortex-dev, alsa-devel [-- Attachment #1: Type: text/plain, Size: 675 bytes --] Hello! On Thu, Sep 15, 2005 at 11:11:58AM +0200, Philipp Matthias Hahn wrote: > On Wed, Sep 14, 2005 at 11:56:08PM +0300, Sasha Khapyorsky wrote: > > Philipp, you could play with VORTEX_CODEC_ID_SHIFT value (au88x0,h) in > > range 24-31. > ... > > diff -rpu au88x0_orig/au88x0.h au88x0/au88x0.h > ... > > +#define VORTEX_CODEC_ID_SHIFT 30 /* unknown: may be 24-31 (or irrelevat) */ > > Sorry, no luck with any value in the range 24-31. Sorry, I wronly patched the driver. 24-31/25 works. tar-file with copies of /proc/asound/au8810 attached. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de [-- Attachment #2: au8810.tar.gz --] [-- Type: application/octet-stream, Size: 36366 bytes --] ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 9:21 ` Philipp Matthias Hahn @ 2005-09-15 11:10 ` Raymond 2005-09-15 14:35 ` Sasha Khapyorsky 1 sibling, 0 replies; 88+ messages in thread From: Raymond @ 2005-09-15 11:10 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: openvortex-dev, alsa-devel Philipp Matthias Hahn wrote: > Hello! > > On Thu, Sep 15, 2005 at 11:11:58AM +0200, Philipp Matthias Hahn wrote: > >>On Wed, Sep 14, 2005 at 11:56:08PM +0300, Sasha Khapyorsky wrote: >> >>>Philipp, you could play with VORTEX_CODEC_ID_SHIFT value (au88x0,h) in >>>range 24-31. >> >>... >> >>>diff -rpu au88x0_orig/au88x0.h au88x0/au88x0.h >> >>... >> >>>+#define VORTEX_CODEC_ID_SHIFT 30 /* unknown: may be 24-31 (or irrelevat) */ >> >>Sorry, no luck with any value in the range 24-31. > > > Sorry, I wronly patched the driver. > 24-31/25 works. tar-file with copies of /proc/asound/au8810 attached. > > BYtE > Philipp You found the modem codec :) #define VORTEX_CODEC_ID_SHIFT 24 /proc/asound/au8810/codec97#0/mc97#1-1 1-1/0: Silicon Laboratory Si3036,8 rev 6 Extended modem ID: codec=1 LIN1 Modem status : GPIO MREF ADC1 DAC1 PRE(ADC2) PRF(DAC2) PRG(HADC) PRH(HDAC) Line1 rate : 8000Hz /proc/asound/au8810/codec97#0/mc97#1-1+regs 0:00 = 0000 0:02 = 0000 0:04 = 0000 0:06 = 0000 0:08 = 0000 0:0a = 0000 0:0c = 0000 0:0e = 0000 0:10 = 0000 0:12 = 0000 0:14 = 0000 0:16 = 0000 0:18 = 0000 0:1a = 0000 0:1c = 0000 0:1e = 0000 0:20 = 0000 0:22 = 0000 0:24 = 0000 0:26 = 0000 0:28 = 0000 0:2a = 0000 0:2c = 0000 0:2e = 0000 0:30 = 0000 0:32 = 0000 0:34 = 0000 0:36 = 0000 0:38 = 0000 0:3a = 0000 0:3c = 4001 0:3e = f00f 0:40 = 1f40 0:42 = 0000 0:44 = 0000 0:46 = 8080 0:48 = 0000 0:4a = 0000 0:4c = 003e 0:4e = fffe 0:50 = 003f 0:52 = 0000 0:54 = 0000 0:56 = 0000 0:58 = 0000 0:5a = 0122 0:5c = f210 0:5e = 0040 0:60 = 0000 0:62 = 6000 0:64 = 0002 0:66 = 0a08 0:68 = 0000 0:6a = 0000 0:6c = 0000 0:6e = 0000 0:70 = 0000 0:72 = 0000 0:74 = 0000 0:76 = 0000 0:78 = 0000 0:7a = 0000 0:7c = 5349 0:7e = 4c26 ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-15 9:21 ` Philipp Matthias Hahn 2005-09-15 11:10 ` Raymond @ 2005-09-15 14:35 ` Sasha Khapyorsky 2005-09-15 15:34 ` Raymond 2005-09-15 20:43 ` Sasha Khapyorsky 1 sibling, 2 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-15 14:35 UTC (permalink / raw) To: Philipp Matthias Hahn, Raymond, openvortex-dev, alsa-devel On 11:21 Thu 15 Sep , Philipp Matthias Hahn wrote: > Hello! > > On Thu, Sep 15, 2005 at 11:11:58AM +0200, Philipp Matthias Hahn wrote: > > On Wed, Sep 14, 2005 at 11:56:08PM +0300, Sasha Khapyorsky wrote: > > > Philipp, you could play with VORTEX_CODEC_ID_SHIFT value (au88x0,h) in > > > range 24-31. > > ... > > > diff -rpu au88x0_orig/au88x0.h au88x0/au88x0.h > > ... > > > +#define VORTEX_CODEC_ID_SHIFT 30 /* unknown: may be 24-31 (or irrelevat) */ > > > > Sorry, no luck with any value in the range 24-31. > > Sorry, I wronly patched the driver. > 24-31/25 works. tar-file with copies of /proc/asound/au8810 attached. Great, the secondary modem codec is there. The valid codec id bits are 24:25 (AC97 interface supports up to four codecs): #define VORTEX_CODEC_ID_SHIFT 24 I will send cleaned codec access patch separately and will look what is next. BTW, thanks for info alternative drivers (I had question about windows .inf file syntax, but now with your results it is irrelevant anymore :)). Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 14:35 ` Sasha Khapyorsky @ 2005-09-15 15:34 ` Raymond 2005-09-15 21:25 ` Alien 2005-09-16 18:05 ` Sasha Khapyorsky 2005-09-15 20:43 ` Sasha Khapyorsky 1 sibling, 2 replies; 88+ messages in thread From: Raymond @ 2005-09-15 15:34 UTC (permalink / raw) To: alsa-devel Sasha Khapyorsky wrote: > > > Great, the secondary modem codec is there. The valid codec id bits are > 24:25 (AC97 interface supports up to four codecs): > > #define VORTEX_CODEC_ID_SHIFT 24 > > I will send cleaned codec access patch separately and will look what is > next. It would be more easy to debug/maintain the driver if using different read/write routines for audio and modem codec. Audio codec is always primary in sound card and audio/modem combo The existing vortex_codec_read() and vortex_codec_write() can remain unchanged. Just add new routine vortex_modem_codec_read() vortex_modem_code_write() to handle secondary/primary modem codec for audio/modem combo and PCI modem card. http://www.nix.ru/autocatalog/modems/AurVcomPCIV90RTL_5817.html Make sure your patch is 32bits/64bits compatible AMD64 user may use the PCI audio/modem combo card and PCI modem card. > mainly I'm not about cleanups now. The goal is to hack modem. It looks > for me that right sequence is: > > 1. Find and initialize modem codec (secondary). > 2. Find and hack appropriate DMA channels, initialize modem PCM. > 3. Find valid way to access GPIO (for DAA controls like Hook-Off) > 4. Chipset detailed cleanups. > > Currently we are in (1). I guess (1) and (3) already completed at least for Si3036 in L8400B ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-15 15:34 ` Raymond @ 2005-09-15 21:25 ` Alien 2005-09-16 2:17 ` Raymond 2005-09-16 18:05 ` Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Alien @ 2005-09-15 21:25 UTC (permalink / raw) To: alsa-devel; +Cc: Raymond [-- Attachment #1: Type: text/plain, Size: 1099 bytes --] Op donderdag 15 september 2005 17:34, schreef Raymond: > Sasha Khapyorsky wrote: > > Great, the secondary modem codec is there. The valid codec id bits are > > 24:25 (AC97 interface supports up to four codecs): > > > > #define VORTEX_CODEC_ID_SHIFT 24 > > > > I will send cleaned codec access patch separately and will look what is > > next. > > It would be more easy to debug/maintain the driver if using different > read/write routines for audio and modem codec. > > Audio codec is always primary in sound card and audio/modem combo > > The existing vortex_codec_read() and vortex_codec_write() can remain > unchanged. > > Just add new routine vortex_modem_codec_read() vortex_modem_code_write() > to handle secondary/primary modem codec for audio/modem combo and PCI > modem card. > > http://www.nix.ru/autocatalog/modems/AurVcomPCIV90RTL_5817.html > > Make sure your patch is 32bits/64bits compatible > > AMD64 user may use the PCI audio/modem combo card and PCI modem card. does that mean that PCI sound card is broken on AMD64 ? cause, maybe that's why my snd-au8810 card gives problems... [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 21:25 ` Alien @ 2005-09-16 2:17 ` Raymond 2005-09-16 2:26 ` Lee Revell 0 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-16 2:17 UTC (permalink / raw) To: Alien; +Cc: alsa-devel, openvortex-dev, Sasha Khapyorsky Alien wrote: > Op donderdag 15 september 2005 17:34, schreef Raymond: > >>Sasha Khapyorsky wrote: >> >>>Great, the secondary modem codec is there. The valid codec id bits are >>>24:25 (AC97 interface supports up to four codecs): >>> >>>#define VORTEX_CODEC_ID_SHIFT 24 >>> >>>I will send cleaned codec access patch separately and will look what is >>>next. >> >>It would be more easy to debug/maintain the driver if using different >>read/write routines for audio and modem codec. >> >>Audio codec is always primary in sound card and audio/modem combo >> >>The existing vortex_codec_read() and vortex_codec_write() can remain >>unchanged. >> >>Just add new routine vortex_modem_codec_read() vortex_modem_code_write() >>to handle secondary/primary modem codec for audio/modem combo and PCI >>modem card. >> >>http://www.nix.ru/autocatalog/modems/AurVcomPCIV90RTL_5817.html >> >>Make sure your patch is 32bits/64bits compatible >> >>AMD64 user may use the PCI audio/modem combo card and PCI modem card. > > > does that mean that PCI sound card is broken on AMD64 ? > > cause, maybe that's why my snd-au8810 card gives problems... http://www.amd.com/us-en/assets/content_type/DownloadableAssets/Porting_x86_Linux_device_drivers_to_AMD64_Technology.htm Yes, the au88x0 driver in ALSA CVS is still broken on AMD64 until someone submit au88x0_amd64.patch http://lists.nongnu.org/archive/html/openvortex-dev/2005-05/msg00000.html I suspect your au8810 problem is caused by ACPI. Erik has some volume problem on his au8830. Igor Kovalenko (Diamond Sonic Impact S90) and penguinparty report the patch work on their 64-bits machines. https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1138 You still need feedback from 1) au8810 user on 32bits/64bits machines 2) au8820 user on 32bits machines 3) au8830 user on 32bits/64bits machines 4) mpu401 test https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1025 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1047 I only test the core part of the patch using my au8830 on 32bits machine. diff -udr /tmp/yy/linux-2.6.11/sound/pci/au88x0/au88x0.c sound/pci/au88x0/au88x0.c --- /tmp/yy/linux-2.6.11/sound/pci/au88x0/au88x0.c 2005-04-25 22:22:07.000000000 +0400 +++ sound/pci/au88x0/au88x0.c 2005-04-25 22:24:36.000000000 +0400 @@ -144,15 +144,18 @@ // check PCI availability (DMA). if ((err = pci_enable_device(pci)) < 0) return err; - if (!pci_dma_supported(pci, VORTEX_DMA_MASK)) { + if (pci_set_dma_mask(pci, VORTEX_DMA_MASK) < 0 || + pci_set_consistent_dma_mask(pci, VORTEX_DMA_MASK) < 0) { printk(KERN_ERR "error to set DMA mask\n"); + pci_disable_device(pci); return -ENXIO; } - pci_set_dma_mask(pci, VORTEX_DMA_MASK); chip = kcalloc(1, sizeof(*chip), GFP_KERNEL); - if (chip == NULL) + if (chip == NULL) { + pci_disable_device(pci); return -ENOMEM; + } chip->card = card; @@ -202,6 +205,8 @@ goto alloc_out; } + snd_card_set_dev(card, &pci->dev); + *rchip = chip; return 0; diff -udr /tmp/yy/linux-2.6.11/sound/pci/au88x0/au88x0.h sound/pci/au88x0/au88x0.h --- /tmp/yy/linux-2.6.11/sound/pci/au88x0/au88x0.h 2005-04-25 22:22:07.000000000 +0400 +++ sound/pci/au88x0/au88x0.h 2005-05-07 11:25:54.000000000 +0400 @@ -41,8 +41,8 @@ #define VORTEX_DMA_MASK 0xffffffff -#define hwread(x,y) readl((x)+((y)>>2)) -#define hwwrite(x,y,z) writel((z),(x)+((y)>>2)) +#define hwread(x,y) readl((x)+(y)) +#define hwwrite(x,y,z) writel((z),(x)+(y)) /* Vortex MPU401 defines. */ #define MIDI_CLOCK_DIV 0x61 @@ -172,7 +172,7 @@ /* PCI hardware resources */ unsigned long io; - unsigned long __iomem *mmio; + void __iomem *mmio; unsigned int irq; spinlock_t lock; ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-16 2:17 ` Raymond @ 2005-09-16 2:26 ` Lee Revell 0 siblings, 0 replies; 88+ messages in thread From: Lee Revell @ 2005-09-16 2:26 UTC (permalink / raw) To: Raymond; +Cc: Alien, alsa-devel, openvortex-dev, Sasha Khapyorsky On Fri, 2005-09-16 at 10:17 +0800, Raymond wrote: > + if (pci_set_dma_mask(pci, VORTEX_DMA_MASK) < 0 || > + pci_set_consistent_dma_mask(pci, VORTEX_DMA_MASK) < 0) { > printk(KERN_ERR "error to set DMA mask\n"); > + pci_disable_device(pci); > return -ENXIO; > } > - pci_set_dma_mask(pci, VORTEX_DMA_MASK); > #define VORTEX_DMA_MASK 0xffffffff > You should be using DMA_32BIT_MASK for this (see include/linux/dma-mapping.h). Lee ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-15 15:34 ` Raymond 2005-09-15 21:25 ` Alien @ 2005-09-16 18:05 ` Sasha Khapyorsky 1 sibling, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-16 18:05 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel On 23:34 Thu 15 Sep , Raymond wrote: > Sasha Khapyorsky wrote: > > > > > >Great, the secondary modem codec is there. The valid codec id bits are > >24:25 (AC97 interface supports up to four codecs): > > > >#define VORTEX_CODEC_ID_SHIFT 24 > > > >I will send cleaned codec access patch separately and will look what is > >next. > > > It would be more easy to debug/maintain the driver if using different > read/write routines for audio and modem codec. > > Audio codec is always primary in sound card and audio/modem combo > > The existing vortex_codec_read() and vortex_codec_write() can remain > unchanged. Don't think so. It is about chip support (ac97 controller) and not about cards, current codec_read/write are not correct since ignore ac97.num value. And it is not about modem, but about secondary codec(s). Request secondary codec initialization or not is different story, this may be card specific. Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-15 14:35 ` Sasha Khapyorsky 2005-09-15 15:34 ` Raymond @ 2005-09-15 20:43 ` Sasha Khapyorsky 2005-09-16 4:33 ` Raymond ` (3 more replies) 1 sibling, 4 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-15 20:43 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: openvortex-dev, alsa-devel, Raymond On 17:35 Thu 15 Sep , Sasha Khapyorsky wrote: > > I will send cleaned codec access patch separately and will look what is > next. Pilipp, no real patches yet, let's investigate few things: 1. Actual "secondary codec" bit in CODEC_EN register - just silly print (apply with -p1): --- au88x0_prev/au88x0_core.c 2005-09-14 20:51:03.000000000 +0300 +++ au88x0/au88x0_core.c 2005-09-15 22:59:05.000000000 +0300 @@ -2516,6 +2516,8 @@ static void vortex_codec_init(vortex_t * msleep(2); if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) vortex->num_of_codecs = 2; + printk("vortex_codec_init: VORTEX_CODEC_EN = %08x\n", + hwread(vortex->mmio, VORTEX_CODEC_EN)); } static void 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): ('alsa-kernelDocumentation/Procfile.txt' is reference too) # echo 42 ffff > /proc/asound/card0/codec97#0/mc97#1-1+regs , look if value of 0x42 register was changes (0x42 is line level control - works in all known cases (up to know :) ), basically value should '0' - unmuted, 0dB), then: # echo 42 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs , and if ok, try to touch 0x54 - gpio status rtegister: # echo 54 1 > /proc/asound/card0/codec97#0/mc97#1-1+regs , 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. 3. DMA After some looking in au88x0 driver I think that it is possible that modem could use one ADB channels (predefined or programmable) for pcm data transfers (just like regular audio), similar scheme may be found with some other devices like ali5451. If so we could try to find channel numbers (should be two - for playback and capture). It is very possible that channels should be configured somehow first. Philipp, How looks your 'aplay -l' output? ANYBODY knows something about modem DMA/PCM with au88x0, please advise. BTW, I found fine au88x0 datasheet there: http://galadriel.mat.utfsm.cl/~mjander/aureal/techdoc/techpaper.html Thanks, Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 20:43 ` Sasha Khapyorsky @ 2005-09-16 4:33 ` Raymond 2005-09-16 7:53 ` Philipp Matthias Hahn 2005-09-16 8:21 ` Raymond ` (2 subsequent siblings) 3 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-16 4:33 UTC (permalink / raw) To: alsa-devel; +Cc: Sasha Khapyorsky, openvortex-dev, pmhahn, Manuel Jander Sasha Khapyorsky wrote: > On 17:35 Thu 15 Sep , Sasha Khapyorsky wrote: > >>I will send cleaned codec access patch separately and will look what is >>next. > > > Pilipp, no real patches yet, let's investigate few things: > > 1. Actual "secondary codec" bit in CODEC_EN register - just silly print > (apply with -p1): > > > --- au88x0_prev/au88x0_core.c 2005-09-14 20:51:03.000000000 +0300 > +++ au88x0/au88x0_core.c 2005-09-15 22:59:05.000000000 +0300 > @@ -2516,6 +2516,8 @@ static void vortex_codec_init(vortex_t * > msleep(2); > if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) > vortex->num_of_codecs = 2; > + printk("vortex_codec_init: VORTEX_CODEC_EN = %08x\n", > + hwread(vortex->mmio, VORTEX_CODEC_EN)); > } > > static void > > VORTEX_CODEC_EN = 00000000 on au8830 (STAC9708) after cold reset of AC-Link. static int vortex_core_init(vortex_t * vortex) { printk(KERN_INFO "Vortex: init.... "); /* Hardware Init. */ hwwrite(vortex->mmio, VORTEX_CTRL, 0xffffffff); msleep(5); + printk(KERN_INFO "VORTEX_CTRL : %.8x\n",hwread(vortex->mmio, VORTEX_CTRL)); VORTEX_CTRL : 00303260 after cold reset on au8830 Optical SPDIF ( Subsystem: 12eb:0088 ) There is a TAD connector on the au8820/au8830 sound cards. I guess it is used for the ISA Modem Interface. Does TAD work with external modem ? There are P4 motherboards which has ISA slots and PCI slots. http://www.prnewswire.co.uk/cgi/news/release?id=50053 Modem and Telephony Support on PCI Bus: Besides sound controllers, modems are the only other PC component that are still ISA-based. The AU8820 includes an interface to existing, standard ISA modem chip sets, such as the latest 56k modems from US Robotics and Rockwell. This unique feature offers two key advantages to OEMs: the ability to build PCI based audio-telephony combo cards, and the design of a PC without an ISA bus. diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8810.c modem/alsa-driver/alsa-kernel/pci/au88x0/au8810.c --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8810.c 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au8810.c 2005-09-16 08:56:39.000000000 +0800 @@ -6,6 +6,7 @@ {0,} }; +#include "au88x0_modem.c" #include "au88x0_core.c" #include "au88x0_pcm.c" #include "au88x0_mixer.c" diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8820.h modem/alsa-driver/alsa-kernel/pci/au88x0/au8820.h --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8820.h 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au8820.h 2005-09-15 19:37:17.000000000 +0800 @@ -158,7 +158,7 @@ /* CODEC */ #define VORTEX_CODEC_CTRL 0x11984 #define VORTEX_CODEC_EN 0x11990 -#define EN_CODEC 0x00000300 +#define EN_AUDIO0 0x00000300 #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 #define VORTEX_CODEC_CHN 0x11880 diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8830.h modem/alsa-driver/alsa-kernel/pci/au88x0/au8830.h --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8830.h 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au8830.h 2005-09-15 19:37:46.000000000 +0800 @@ -208,7 +208,6 @@ #define EN_AUDIO1 0x00003000 #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 -#define EN_CODEC (EN_AUDIO1 | EN_AUDIO0) #define VORTEX_SPDIF_SMPRATE 0x29194 diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0.c modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0.c --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0.c 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0.c 2005-09-16 11:13:44.000000000 +0800 @@ -27,6 +27,9 @@ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; static int pcifix[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 255 }; +#ifdef CHIP_AU8810 +static int pcimodem[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 0 }; +#endif module_param_array(index, int, NULL, 0444); MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard."); @@ -36,6 +39,10 @@ MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard."); module_param_array(pcifix, int, NULL, 0444); MODULE_PARM_DESC(pcifix, "Enable VIA-workaround for " CARD_NAME " soundcard."); +#ifdef CHIP_AU8810 +module_param_array(pcimodem, int, NULL, 0444); +MODULE_PARM_DESC(pcimodem, "Enable PCI Modem " CARD_NAME " soundcard."); +#endif MODULE_DESCRIPTION("Aureal vortex"); MODULE_LICENSE("GPL"); @@ -256,6 +263,11 @@ } snd_vortex_workaround(pci, pcifix[dev]); // (4) Alloc components. + // snd_ac97_mixer + if ((err = snd_vortex_mixer(chip)) < 0) { + snd_card_free(card); + return err; + } // ADB pcm. if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_ADB, NR_ADB)) < 0) { snd_card_free(card); @@ -287,11 +299,25 @@ return err; } #endif - // snd_ac97_mixer and Vortex mixer. - if ((err = snd_vortex_mixer(chip)) < 0) { - snd_card_free(card); - return err; - } +#ifdef CHIP_AU8810 + // MODEM + if ( pcimodem[dev] ) { + if ((err = pci_read_config_word(pci, PCI_DEVICE_ID, + &(chip->device))) < 0) { + snd_card_free(card); + return err; + }; + if ((err = snd_vortex_modem_mixer(chip, + (( chip->device == PCI_DEVICE_ID_AUREAL_ADVANTAGE) ? 1 : 0 ))) < 0) { + snd_card_free(card); + return err; + }; + if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_MODEM, 1)) < 0) { + snd_card_free(card); + return err; + }; + }; +#endif if ((err = snd_vortex_midi(chip)) < 0) { snd_card_free(card); return err; diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_core.c modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_core.c --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_core.c 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_core.c 2005-09-16 09:00:14.000000000 +0800 @@ -2510,7 +2505,7 @@ msleep(1); /* Enable codec channels 0 and 1. */ hwwrite(vortex->mmio, VORTEX_CODEC_EN, - hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO0); } diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0.h modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0.h --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0.h 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0.h 2005-09-16 08:52:10.000000000 +0800 @@ -93,8 +93,9 @@ #define VORTEX_PCM_SPDIF 1 #define VORTEX_PCM_A3D 2 #define VORTEX_PCM_WT 3 -#define VORTEX_PCM_I2S 4 -#define VORTEX_PCM_LAST 5 +#define VORTEX_PCM_MODEM 4 +#define VORTEX_PCM_I2S 5 +#define VORTEX_PCM_LAST 6 #define MIX_CAPT(x) (vortex->mixcapt[x]) #define MIX_PLAYB(x) (vortex->mixplayb[x]) @@ -136,6 +137,9 @@ snd_rawmidi_t *rmidi; /* Legacy Midi interface. */ ac97_t *codec; +#ifdef CHIP_AU8810 + ac97_t *mc97; +#endif /* Stream structs. */ stream_t dma_adb[NR_ADB]; diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_mixer.c modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_mixer.c --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_mixer.c 2005-09-15 19:34:02.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_mixer.c 2005-09-15 20:04:09.000000000 +0800 @@ -28,6 +28,12 @@ ac97.private_data = vortex; ac97.scaps = AC97_SCAP_NO_SPDIF; err = snd_ac97_mixer(pbus, &ac97, &vortex->codec); - vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->ext_id&0x80)); + vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->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 return err; } diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_modem.c modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_modem.c --- modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au88x0_modem.c 1970-01-01 08:00:00.000000000 +0800 +++ modem/alsa-driver/alsa-kernel/pci/au88x0/au88x0_modem.c 2005-09-16 09:12:15.000000000 +0800 @@ -0,0 +1,96 @@ +/* + * Vortex Modem support. + * + */ + +#include <sound/driver.h> +#include <linux/time.h> +#include <linux/init.h> +#include <sound/core.h> +#include "au88x0.h" +#define MODEM_POLL_COUNT 1000 + + +static void +vortex_modem_codec_write(ac97_t * codec, unsigned short addr, unsigned short data) +{ + + vortex_t *card = (vortex_t *) codec->private_data; + unsigned int lifeboat = 0; + + /* wait for transactions to clear */ + while (!(hwread(card->mmio, VORTEX_CODEC_CTRL) & 0x100)) { + udelay(100); + if (lifeboat++ > MODEM_POLL_COUNT) { + printk(KERN_ERR "vortex: mc97 codec stuck busy\n"); + return; + } + } + /* write register */ + hwwrite(card->mmio, VORTEX_CODEC_IO, + ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | + ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | + VORTEX_CODEC_WRITE | + (codec->num << VORTEX_CODEC_ID_SHIFT) ); + + /* Flush Caches. */ + hwread(card->mmio, VORTEX_CODEC_IO); +} + +static unsigned short +vortex_modem_codec_read(ac97_t * codec, unsigned short addr) +{ + + vortex_t *card = (vortex_t *) codec->private_data; + u32 read_addr, data; + unsigned lifeboat = 0; + + /* wait for transactions to clear */ + while (!(hwread(card->mmio, VORTEX_CODEC_CTRL) & 0x100)) { + udelay(100); + if (lifeboat++ > MODEM_POLL_COUNT) { + printk(KERN_ERR "vortex: mc97 codec stuck busy\n"); + return 0xffff; + } + } + /* set up read address */ + read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | + (codec->num << VORTEX_CODEC_ID_SHIFT) ; + + hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr); + + /* wait for address */ + do { + udelay(100); + data = hwread(card->mmio, VORTEX_CODEC_IO); + if (lifeboat++ > MODEM_POLL_COUNT) { + printk(KERN_ERR "vortex: mc97 address never arrived\n"); + return 0xffff; + } + } while ((data & VORTEX_CODEC_ADDMASK) != + (addr << VORTEX_CODEC_ADDSHIFT)); + + /* return data. */ + return (u16) (data & VORTEX_CODEC_DATMASK); +} + +static int __devinit snd_vortex_modem_mixer(vortex_t * vortex, int num) +{ + ac97_bus_t *pbus; + ac97_template_t mc97; + int err; + static ac97_bus_ops_t ops = { + .write = vortex_modem_codec_write, + .read = vortex_modem_codec_read, + }; + + if ((err = snd_ac97_bus(vortex->card, 0, &ops, NULL, &pbus)) < 0) + return err; + memset(&mc97, 0, sizeof(mc97)); + // Intialize MC97 codec stuff. + mc97.private_data = vortex; + mc97.scaps = AC97_SCAP_SKIP_AUDIO; + mc97.num = num; + if (err = snd_ac97_mixer(pbus, &mc97, &vortex->mc97)) == 0 ) { + hwwrite(vortex->mmio, VORTEX_CODEC_EN, + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AC98); + }; + return err; +} ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 4:33 ` Raymond @ 2005-09-16 7:53 ` Philipp Matthias Hahn 2005-09-16 9:24 ` Raymond 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-16 7:53 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, Sasha Khapyorsky, openvortex-dev, Manuel Jander Hello! On Fri, Sep 16, 2005 at 12:33:40PM +0800, Raymond wrote: > >Pilipp, no real patches yet, let's investigate few things: > > > >1. Actual "secondary codec" bit in CODEC_EN register - just silly print > >(apply with -p1): > > > > > >--- au88x0_prev/au88x0_core.c 2005-09-14 20:51:03.000000000 +0300 > >+++ au88x0/au88x0_core.c 2005-09-15 22:59:05.000000000 +0300 > >@@ -2516,6 +2516,8 @@ static void vortex_codec_init(vortex_t * ... > >+ printk("vortex_codec_init: VORTEX_CODEC_EN = %08x\n", > >+ hwread(vortex->mmio, VORTEX_CODEC_EN)); > > VORTEX_CODEC_EN = 00000000 on au8830 (STAC9708) after cold reset of AC-Link. VORTEX_CODEC_EN = 00003f00 > static int vortex_core_init(vortex_t * vortex) ... > + printk(KERN_INFO "VORTEX_CTRL : %.8x\n",hwread(vortex->mmio, VORTEX_CTRL)); VORTEX_CTRL : 00303260 > diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8810.c > modem/alsa-driver/alsa-kernel/pci/au88x0/au8810.c The patch is line wrapped, will take me a moment to apply by hand. Will send another email. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 7:53 ` Philipp Matthias Hahn @ 2005-09-16 9:24 ` Raymond 0 siblings, 0 replies; 88+ messages in thread From: Raymond @ 2005-09-16 9:24 UTC (permalink / raw) To: pmhahn; +Cc: alsa-devel Philipp Matthias Hahn wrote: > Hello! > > On Fri, Sep 16, 2005 at 12:33:40PM +0800, Raymond wrote: > >>>Pilipp, no real patches yet, let's investigate few things: >>> >>>1. Actual "secondary codec" bit in CODEC_EN register - just silly print >>>(apply with -p1): >>> >>> >>>--- au88x0_prev/au88x0_core.c 2005-09-14 20:51:03.000000000 +0300 >>>+++ au88x0/au88x0_core.c 2005-09-15 22:59:05.000000000 +0300 >>>@@ -2516,6 +2516,8 @@ static void vortex_codec_init(vortex_t * > > .... > >>>+ printk("vortex_codec_init: VORTEX_CODEC_EN = %08x\n", >>>+ hwread(vortex->mmio, VORTEX_CODEC_EN)); >> >>VORTEX_CODEC_EN = 00000000 on au8830 (STAC9708) after cold reset of AC-Link. > > > VORTEX_CODEC_EN = 00003f00 > This does not imply the code can detect the presence of secondary modem codec if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) vortex->num_of_codecs = 2; > >>static int vortex_core_init(vortex_t * vortex) > > .... > >>+ printk(KERN_INFO "VORTEX_CTRL : %.8x\n",hwread(vortex->mmio, VORTEX_CTRL)); > > > VORTEX_CTRL : 00303260 > > >>diff -Naur modem/alsa-driver/alsa-kernel/pci/au88x0_orig/au8810.c >>modem/alsa-driver/alsa-kernel/pci/au88x0/au8810.c > > > The patch is line wrapped, will take me a moment to apply by hand. > Will send another email. > > BYtE > Philipp Since I only has single codec sound card, I am not sure snd_ac97_bus() can be called twice by audio and modem codec. May be we cannot split the code into snd_vortex_mixer() and snd_vortex_modem_mixer ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 20:43 ` Sasha Khapyorsky 2005-09-16 4:33 ` Raymond @ 2005-09-16 8:21 ` Raymond 2005-09-16 18:20 ` Sasha Khapyorsky 2005-09-16 8:46 ` Philipp Matthias Hahn 2005-09-16 14:09 ` Raymond 3 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-16 8:21 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: alsa-devel, pmhahn Sasha Khapyorsky wrote: > On 17:35 Thu 15 Sep , Sasha Khapyorsky wrote: > > > > 1. Actual "secondary codec" bit in CODEC_EN register - just silly print > (apply with -p1): > Although au8830 may support mulitple codecs and there is a unconnected 20-pins connectors on my au8830 (Subsystem 12eb:0088) There is only one STAC9708 (4-channels) audio codec on my au8830 It look like a control register rather than a status register. Vortex: init.... <6>CODEC_EN : 00000000 CODEC_EN : 00000300 CODEC_EN : 00003300 CODEC_EN : 00003f00 done. /* Enable codec channels 0 and 1. */ printk(KERN_INFO "CODEC_EN : %.8x\n",hwread(vortex->mmio, VORTEX_CODEC_EN)); hwwrite(vortex->mmio, VORTEX_CODEC_EN, hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO0 ); printk(KERN_INFO "CODEC_EN : %.8x\n",hwread(vortex->mmio, VORTEX_CODEC_EN)); #ifndef CHIP_AU8820 hwwrite(vortex->mmio, VORTEX_CODEC_EN, hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO1 ); printk(KERN_INFO "CODEC_EN : %.8x\n",hwread(vortex->mmio, VORTEX_CODEC_EN)); hwwrite(vortex->mmio, VORTEX_CODEC_EN, hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_MODEM ); printk(KERN_INFO "CODEC_EN : %.8x\n",hwread(vortex->mmio, VORTEX_CODEC_EN)); #endif ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 8:21 ` Raymond @ 2005-09-16 18:20 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-16 18:20 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, pmhahn On 16:21 Fri 16 Sep , Raymond wrote: > > Although au8830 may support mulitple codecs and there is a unconnected > 20-pins connectors on my au8830 (Subsystem 12eb:0088) > > There is only one STAC9708 (4-channels) audio codec on my au8830 > > It look like a control register rather than a status register. > > Vortex: init.... <6>CODEC_EN : 00000000 > CODEC_EN : 00000300 > CODEC_EN : 00003300 > CODEC_EN : 00003f00 > done. Hmm, CODEC_EN is useless for secondary codec autodetection. Could you try to investigate it, probably compare 8810/8830 registers values - there should be some bits indicating secondary AC97 codec presents. Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-15 20:43 ` Sasha Khapyorsky 2005-09-16 4:33 ` Raymond 2005-09-16 8:21 ` Raymond @ 2005-09-16 8:46 ` Philipp Matthias Hahn 2005-09-16 8:55 ` Raymond 2005-09-16 18:25 ` Sasha Khapyorsky 2005-09-16 14:09 ` Raymond 3 siblings, 2 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-16 8:46 UTC (permalink / raw) To: openvortex-dev, alsa-devel, Raymond Hello! On Thu, Sep 15, 2005 at 11:43:45PM +0300, Sasha Khapyorsky wrote: > 1. Actual "secondary codec" bit in CODEC_EN register - just silly print > (apply with -p1): ... As in previous email: 00003f00 > 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. > , 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 > 3. DMA ... > Philipp, How looks your 'aplay -l' output? **** List of PLAYBACK Hardware Devices **** card 0: au8810 [au8810], device 0: AU88x0 ADB [adb] Subdevices: 16/16 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 Subdevice #8: subdevice #8 Subdevice #9: subdevice #9 Subdevice #10: subdevice #10 Subdevice #11: subdevice #11 Subdevice #12: subdevice #12 Subdevice #13: subdevice #13 Subdevice #14: subdevice #14 Subdevice #15: subdevice #15 card 0: au8810 [au8810], device 1: AU88x0 SPDIF [spdif] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: au8810 [au8810], device 2: AU88x0 A3D [a3d] Subdevices: 16/16 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 Subdevice #8: subdevice #8 Subdevice #9: subdevice #9 Subdevice #10: subdevice #10 Subdevice #11: subdevice #11 Subdevice #12: subdevice #12 Subdevice #13: subdevice #13 Subdevice #14: subdevice #14 Subdevice #15: subdevice #15 > BTW, I found fine au88x0 datasheet there: > http://galadriel.mat.utfsm.cl/~mjander/aureal/techdoc/techpaper.html He's the guy how has done the reverse engineering. BYtE philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 8:46 ` Philipp Matthias Hahn @ 2005-09-16 8:55 ` Raymond 2005-09-16 10:36 ` Philipp Matthias Hahn 2005-09-16 18:25 ` Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-16 8:55 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel Philipp Matthias Hahn wrote: > Hello! > > > >>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. > > >>, 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 > This may mean the patched vortex_codec_read() works but vortex_codec_write() is still not working as expected. Do system log show any timeout error of the codec ? ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 8:55 ` Raymond @ 2005-09-16 10:36 ` Philipp Matthias Hahn 2005-09-16 12:04 ` Raymond 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-16 10:36 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel Hello! On Fri, Sep 16, 2005 at 04:55:35PM +0800, Raymond 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. > > This may mean the patched vortex_codec_read() works but > vortex_codec_write() is still not working as expected. > > Do system log show any timeout error of the codec ? No messages. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 10:36 ` Philipp Matthias Hahn @ 2005-09-16 12:04 ` Raymond 2005-09-16 14:42 ` Philipp Matthias Hahn 0 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-16 12:04 UTC (permalink / raw) To: pmhahn; +Cc: alsa-devel Philipp Matthias Hahn wrote: > Hello! > > On Fri, Sep 16, 2005 at 04:55:35PM +0800, Raymond 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. >> >>This may mean the patched vortex_codec_read() works but >>vortex_codec_write() is still not working as expected. >> >>Do system log show any timeout error of the codec ? > > > No messages. > > BYtE > Philipp Add printk to dump the ac97 read/write to system log VORTEX_CODEC_WRITE); /* Flush Caches. */ hwread(card->mmio, VORTEX_CODEC_IO); + printk(KERN_INFO "vortex_codec_write %d %.2x : %.4x\n",codec->num,addr,data); } static unsigned short vortex_codec_read(ac97_t * codec, unsigned short addr) @@ -2567,7 +2556,7 @@ } } while ((data & VORTEX_CODEC_ADDMASK) != (addr << VORTEX_CODEC_ADDSHIFT)); - + printk(KERN_INFO "vortex_codec_read %d %.2x : %.4x\n",codec->num,addr,data & VORTEX_CODEC_DATMASK); /* return data. */ return (u16) (data & VORTEX_CODEC_DATMASK); } ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 12:04 ` Raymond @ 2005-09-16 14:42 ` Philipp Matthias Hahn 2005-09-16 14:49 ` Philipp Matthias Hahn 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-16 14:42 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel Hello! On Fri, Sep 16, 2005 at 08:04:01PM +0800, Raymond wrote: > Add printk to dump the ac97 read/write to system log I had to hand-play with the previosu patches, so for reference, this is ALSA from linux-2.6.13.1 with http://corellon.svs.informatik.uni-oldenburg.de/~pmhahn/au8810-modem.patch applied. Looks like I lost the normal ac97#1-1* files in /proc/asound/card0/codec97#0: $ ls /proc/asound/card0/codec97#0/ mc97#1-1 mc97#1-1+regs 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.... <6>VORTEX_CTRL : 00303260 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: IRQ reg error vortex_codec_write 0 02 :1f1f vortex_codec_write 0 02 :0303 vortex_codec_write 0 18 :1f1f vortex_codec_write 0 18 :0707 vortex_codec_write 0 22 :0800 vortex_codec_write 0 22 :0808 vortex: IRQ reg error vortex: IRQ reg error One "IRQ reg error" appears always on load, the sound-card still works. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 14:42 ` Philipp Matthias Hahn @ 2005-09-16 14:49 ` Philipp Matthias Hahn 2005-09-16 18:47 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-16 14:49 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel Hello! On Fri, Sep 16, 2005 at 04:42:47PM +0200, Philipp Matthias Hahn wrote: > Looks like I lost the normal ac97#1-1* files in > /proc/asound/card0/codec97#0: > $ ls /proc/asound/card0/codec97#0/ > mc97#1-1 mc97#1-1+regs Worse, two times the directories "codec97#0" with the same name: $ ls -l /proc/asound/card0 total 0 dr-xr-xr-x 2 root root 0 2005-09-16 16:48 codec97#0 dr-xr-xr-x 2 root root 0 2005-09-16 16:48 codec97#0 -r--r--r-- 1 root root 0 2005-09-16 16:48 id -r--r--r-- 1 root root 0 2005-09-16 16:48 midi0 -rw-r--r-- 1 root root 0 2005-09-16 16:48 oss_mixer dr-xr-xr-x 18 root root 0 2005-09-16 16:48 pcm0c dr-xr-xr-x 18 root root 0 2005-09-16 16:48 pcm0p dr-xr-xr-x 3 root root 0 2005-09-16 16:48 pcm1p dr-xr-xr-x 18 root root 0 2005-09-16 16:48 pcm2p dr-xr-xr-x 3 root root 0 2005-09-16 16:48 pcm4p BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-16 14:49 ` Philipp Matthias Hahn @ 2005-09-16 18:47 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-16 18:47 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: Raymond, alsa-devel [-- Attachment #1: Type: text/plain, Size: 577 bytes --] On 16:49 Fri 16 Sep , Philipp Matthias Hahn wrote: > Hello! > > On Fri, Sep 16, 2005 at 04:42:47PM +0200, Philipp Matthias Hahn wrote: > > Looks like I lost the normal ac97#1-1* files in > > /proc/asound/card0/codec97#0: > > $ ls /proc/asound/card0/codec97#0/ > > mc97#1-1 mc97#1-1+regs > > Worse, two times the directories "codec97#0" with the same name: The patch is wrong, audio is removed, ac97bus is initialized twice. I would suggest (after reboot) to use cleaned ALSA CVS version + two attached patches. Remember to build with '--with-debug=detect'. Sasha. [-- Attachment #2: au88x0_codecid.patch --] [-- Type: text/plain, Size: 4251 bytes --] This patch extends au88x0 AC97 codec access procedures to handle multiple codecs properly. Signed-off-by: Sasha Khapyorsky Index: alsa-kernel/pci/au88x0/au8810.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8810.h,v retrieving revision 1.3 diff -u -p -r1.3 au8810.h --- alsa-kernel/pci/au88x0/au8810.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8810.h 15 Sep 2005 12:23:52 -0000 @@ -178,11 +178,6 @@ #define EN_SPDIF 0x000c0000 #define VORTEX_CODEC_CHN 0x29080 -#define VORTEX_CODEC_WRITE 0x00800000 -#define VORTEX_CODEC_ADDSHIFT 16 -#define VORTEX_CODEC_ADDMASK 0x7f0000 /* 0x000f0000 */ -#define VORTEX_CODEC_DATSHIFT 0 -#define VORTEX_CODEC_DATMASK 0xffff #define VORTEX_CODEC_IO 0x29188 /* SPDIF */ Index: alsa-kernel/pci/au88x0/au8820.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8820.h,v retrieving revision 1.3 diff -u -p -r1.3 au8820.h --- alsa-kernel/pci/au88x0/au8820.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8820.h 15 Sep 2005 12:23:52 -0000 @@ -162,11 +162,6 @@ #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 #define VORTEX_CODEC_CHN 0x11880 -#define VORTEX_CODEC_WRITE 0x00800000 -#define VORTEX_CODEC_ADDSHIFT 16 -#define VORTEX_CODEC_ADDMASK 0x7f0000 /* 0x000f0000 */ -#define VORTEX_CODEC_DATSHIFT 0 -#define VORTEX_CODEC_DATMASK 0xffff #define VORTEX_CODEC_IO 0x11988 #define VORTEX_SPDIF_FLAGS 0x1005c /* FIXME */ Index: alsa-kernel/pci/au88x0/au8830.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8830.h,v retrieving revision 1.3 diff -u -p -r1.3 au8830.h --- alsa-kernel/pci/au88x0/au8830.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8830.h 15 Sep 2005 12:23:52 -0000 @@ -194,11 +194,6 @@ #define VORTEX_CODEC_CTRL 0x29184 #define VORTEX_CODEC_IO 0x29188 -#define VORTEX_CODEC_WRITE 0x00800000 -#define VORTEX_CODEC_ADDSHIFT 16 -#define VORTEX_CODEC_ADDMASK 0x7f0000 /* 0x000f0000 */ -#define VORTEX_CODEC_DATSHIFT 0 -#define VORTEX_CODEC_DATMASK 0xffff #define VORTEX_CODEC_SPORTCTRL 0x2918c Index: alsa-kernel/pci/au88x0/au88x0.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0.h,v retrieving revision 1.11 diff -u -p -r1.11 au88x0.h --- alsa-kernel/pci/au88x0/au88x0.h 22 Mar 2005 08:50:55 -0000 1.11 +++ alsa-kernel/pci/au88x0/au88x0.h 15 Sep 2005 12:23:52 -0000 @@ -79,6 +79,14 @@ #define VORTEX_RESOURCE_A3D 0x00000004 #define VORTEX_RESOURCE_LAST 0x00000005 +/* codec io: VORTEX_CODEC_IO bits */ +#define VORTEX_CODEC_ID_SHIFT 24 +#define VORTEX_CODEC_WRITE 0x00800000 +#define VORTEX_CODEC_ADDSHIFT 16 +#define VORTEX_CODEC_ADDMASK 0x7f0000 +#define VORTEX_CODEC_DATSHIFT 0 +#define VORTEX_CODEC_DATMASK 0xffff + /* Check for SDAC bit in "Extended audio ID" AC97 register */ //#define VORTEX_IS_QUAD(x) (((x)->codec == NULL) ? 0 : ((x)->codec->ext_id&0x80)) #define VORTEX_IS_QUAD(x) ((x)->isquad) Index: alsa-kernel/pci/au88x0/au88x0_core.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_core.c,v retrieving revision 1.11 diff -u -p -r1.11 au88x0_core.c --- alsa-kernel/pci/au88x0/au88x0_core.c 23 Feb 2005 11:00:31 -0000 1.11 +++ alsa-kernel/pci/au88x0/au88x0_core.c 15 Sep 2005 12:23:53 -0000 @@ -2532,7 +2532,8 @@ vortex_codec_write(ac97_t * codec, unsig hwwrite(card->mmio, VORTEX_CODEC_IO, ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | - VORTEX_CODEC_WRITE); + VORTEX_CODEC_WRITE | + (codec->num << VORTEX_CODEC_ID_SHIFT) ); /* Flush Caches. */ hwread(card->mmio, VORTEX_CODEC_IO); @@ -2554,7 +2555,8 @@ static unsigned short vortex_codec_read( } } /* set up read address */ - read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK); + read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) | + (codec->num << VORTEX_CODEC_ID_SHIFT) ; hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr); /* wait for address */ [-- Attachment #3: au88x0-modem.patch --] [-- Type: text/plain, Size: 4764 bytes --] Index: alsa-kernel/pci/au88x0/au8810.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8810.h,v retrieving revision 1.3 diff -u -p -r1.3 au8810.h --- alsa-kernel/pci/au88x0/au8810.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8810.h 12 Sep 2005 23:35:26 -0000 @@ -171,9 +171,9 @@ #define VORTEX_CODEC_CTRL 0x29184 #define VORTEX_CODEC_EN 0x29190 #define EN_CODEC0 0x00000300 -#define EN_AC98 0x00000c00 /* Modem AC98 slots. */ +#define EN_MODEM 0x00000c00 /* Modem AC98 slots. */ #define EN_CODEC1 0x00003000 -#define EN_CODEC (EN_CODEC0 | EN_CODEC1) +#define EN_CODEC (EN_CODEC0 | EN_MODEM | EN_CODEC1) #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 Index: alsa-kernel/pci/au88x0/au8820.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8820.h,v retrieving revision 1.3 diff -u -p -r1.3 au8820.h --- alsa-kernel/pci/au88x0/au8820.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8820.h 12 Sep 2005 23:35:26 -0000 @@ -158,7 +158,10 @@ /* CODEC */ #define VORTEX_CODEC_CTRL 0x11984 #define VORTEX_CODEC_EN 0x11990 -#define EN_CODEC 0x00000300 +#define EN_CODEC0 0x00000300 +#define EN_MODEM 0x00000c00 +#define EN_CODEC1 0x00003000 +#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 #define VORTEX_CODEC_CHN 0x11880 Index: alsa-kernel/pci/au88x0/au8830.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8830.h,v retrieving revision 1.3 diff -u -p -r1.3 au8830.h --- alsa-kernel/pci/au88x0/au8830.h 13 Apr 2004 15:26:27 -0000 1.3 +++ alsa-kernel/pci/au88x0/au8830.h 12 Sep 2005 23:35:27 -0000 @@ -203,12 +203,12 @@ #define VORTEX_CODEC_SPORTCTRL 0x2918c #define VORTEX_CODEC_EN 0x29190 -#define EN_AUDIO0 0x00000300 +#define EN_CODEC0 0x00000300 #define EN_MODEM 0x00000c00 -#define EN_AUDIO1 0x00003000 +#define EN_CODEC1 0x00003000 #define EN_SPORT 0x00030000 #define EN_SPDIF 0x000c0000 -#define EN_CODEC (EN_AUDIO1 | EN_AUDIO0) +#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) #define VORTEX_SPDIF_SMPRATE 0x29194 Index: alsa-kernel/pci/au88x0/au88x0.h =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0.h,v retrieving revision 1.11 diff -u -p -r1.11 au88x0.h --- alsa-kernel/pci/au88x0/au88x0.h 22 Mar 2005 08:50:55 -0000 1.11 +++ alsa-kernel/pci/au88x0/au88x0.h 12 Sep 2005 23:35:27 -0000 @@ -135,7 +135,8 @@ struct snd_vortex { snd_pcm_t *pcm[VORTEX_PCM_LAST]; snd_rawmidi_t *rmidi; /* Legacy Midi interface. */ - ac97_t *codec; + unsigned int num_of_codecs; + ac97_t *codecs[2]; /* Stream structs. */ stream_t dma_adb[NR_ADB]; Index: alsa-kernel/pci/au88x0/au88x0_core.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_core.c,v retrieving revision 1.11 diff -u -p -r1.11 au88x0_core.c --- alsa-kernel/pci/au88x0/au88x0_core.c 23 Feb 2005 11:00:31 -0000 1.11 +++ alsa-kernel/pci/au88x0/au88x0_core.c 12 Sep 2005 23:35:33 -0000 @@ -2511,6 +2511,11 @@ static void vortex_codec_init(vortex_t * /* Enable codec channels 0 and 1. */ hwwrite(vortex->mmio, VORTEX_CODEC_EN, hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); + vortex->num_of_codecs = 1; + /* nothing know about that */ + msleep(2); + if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) + vortex->num_of_codecs = 2; } static void Index: alsa-kernel/pci/au88x0/au88x0_mixer.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_mixer.c,v retrieving revision 1.5 diff -u -p -r1.5 au88x0_mixer.c --- alsa-kernel/pci/au88x0/au88x0_mixer.c 23 Mar 2005 17:04:16 -0000 1.5 +++ alsa-kernel/pci/au88x0/au88x0_mixer.c 12 Sep 2005 23:35:33 -0000 @@ -15,7 +15,7 @@ static int __devinit snd_vortex_mixer(vo { ac97_bus_t *pbus; ac97_template_t ac97; - int err; + int i, err; static ac97_bus_ops_t ops = { .write = vortex_codec_write, .read = vortex_codec_read, @@ -27,7 +27,10 @@ static int __devinit snd_vortex_mixer(vo // Intialize AC97 codec stuff. ac97.private_data = vortex; ac97.scaps = AC97_SCAP_NO_SPDIF; - err = snd_ac97_mixer(pbus, &ac97, &vortex->codec); - vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->ext_id&0x80)); + for (i = 0 ; i < vortex->num_of_codecs ; i++) { + ac97.num = i; + err = snd_ac97_mixer(pbus, &ac97, &vortex->codecs[i]); + } + vortex->isquad = ((vortex->codecs[0] == NULL) ? 0 : (vortex->codecs[0]->ext_id&0x80)); return err; } ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-16 8:46 ` Philipp Matthias Hahn 2005-09-16 8:55 ` Raymond @ 2005-09-16 18:25 ` Sasha Khapyorsky 2005-09-19 15:00 ` Philipp Matthias Hahn 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-16 18:25 UTC (permalink / raw) To: Philipp Matthias Hahn, openvortex-dev, alsa-devel, Raymond 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 )? > > , 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. BTW, stupid question, if you don't have analog telephone line why you need modem? Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-16 18:25 ` Sasha Khapyorsky @ 2005-09-19 15:00 ` Philipp Matthias Hahn 2005-09-19 15:32 ` Raymond 2005-09-21 22:03 ` Sasha Khapyorsky 0 siblings, 2 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-19 15:00 UTC (permalink / raw) To: openvortex-dev, alsa-devel, Raymond, Sasha Khapyorsky 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 vortex_codec_read 1 7c :5349 vortex_codec_read 1 7e :4c26 vortex_codec_read 1 3c :4001 vortex_codec_read 1 7c :5349 vortex_codec_read 1 7e :4c26 vortex_codec_write 1 1c :8a06 vortex_codec_read 1 1c :0000 vortex_codec_read 1 3c :4001 vortex_codec_write 1 40 :1f40 vortex_codec_write 1 3e :0000 vortex_codec_write 1 3e :0000 vortex_codec_read 1 3e :f000 vortex_codec_read 1 3e :f00f vortex_codec_write 1 5c :f210 vortex_codec_write 1 68 :0000 vortex_codec_write 1 4c :fffe vortex_codec_write 1 4e :fffe vortex_codec_write 1 50 :ffff vortex_codec_write 1 52 :0000 vortex_codec_write 1 56 :0000 vortex_codec_read 1 2a :0000 vortex_codec_write 1 2a :0000 vortex: IRQ reg error vortex: IRQ reg error vortex: IRQ reg error vortex_codec_write 0 02 :1f1f vortex_codec_write 0 02 :0303 vortex_codec_write 0 06 :8000 vortex_codec_write 0 0e :8000 vortex_codec_write 0 18 :1f1f vortex_codec_write 0 18 :0707 vortex_codec_write 0 22 :0800 vortex_codec_write 0 22 :0808 vortex_codec_read 1 54 :0000 vortex_codec_write 1 54 :0001 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. > > BTW, stupid question, if you don't have analog telephone line why you > need modem? I asked for modem support a long time ago. The recent request for modem support was from another person. I only entered this thread, after I was cc-ed to help with adding modem support on Aurel by a developer. I don't need the modem for daily work, but it would still be very nice to have modem support under linux, especially when I travel. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-19 15:00 ` Philipp Matthias Hahn @ 2005-09-19 15:32 ` Raymond 2005-09-20 13:21 ` Philipp Matthias Hahn 2005-09-21 22:03 ` Sasha Khapyorsky 1 sibling, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-19 15:32 UTC (permalink / raw) To: pmhahn; +Cc: openvortex-dev, alsa-devel 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. >> ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-19 15:32 ` Raymond @ 2005-09-20 13:21 ` Philipp Matthias Hahn 2005-09-21 22:12 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-20 13:21 UTC (permalink / raw) To: Raymond, Sasha Khapyorsky; +Cc: openvortex-dev, alsa-devel Hello! On Mon, Sep 19, 2005 at 11:32:50PM +0800, Raymond wrote: > 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) > { > err = snd_ac97_mixer(pbus, &ac97, &vortex->codec[0]); ^s ... > switch ( hwread(vortex->mmio,0x2A804)) { > case 0x10431043: // ASUS L8400B didn't match, lines deleted. ... > err = snd_ac97_mixer(pbus, &ac97, &vortex->codec[ac97.num]); ^s Here's the next trace with the above modifications applied. Only lines matching codec 1 are provided: vortex_codec_read 1 7c :5349 vortex_codec_read 1 7e :4c26 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_read 1 3c :4001 vortex_codec_read 1 7c :5349 vortex_codec_read 1 7e :4c26 vortex_codec_read 1 3c :4001 vortex_codec_write 1 40 :1f40 vortex_codec_write 1 3e :0000 vortex_codec_write 1 3e :0000 vortex_codec_read 1 3e :f000 vortex_codec_read 1 3e :f00f vortex_codec_write 1 5c :f210 vortex_codec_write 1 68 :0000 vortex_codec_write 1 4c :fffe vortex_codec_write 1 4e :fffe vortex_codec_write 1 50 :ffff vortex_codec_write 1 52 :0000 vortex_codec_write 1 56 :0000 vortex_codec_read 1 2a :0000 vortex_codec_write 1 2a :0000 vortex: IRQ reg error ... vortex_codec_read 1 54 :0000 vortex_codec_write 1 54 :0001 Writing to mc97#1-1+regs still doesn't seem to change anything. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-20 13:21 ` Philipp Matthias Hahn @ 2005-09-21 22:12 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-21 22:12 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: openvortex-dev, alsa-devel, Raymond On 15:21 Tue 20 Sep , Philipp Matthias Hahn wrote: > ... > vortex_codec_read 1 54 :0000 > vortex_codec_write 1 54 :0001 > > Writing to mc97#1-1+regs still doesn't seem to change anything. And 0x46 register, or any register? Sasha. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-19 15:00 ` Philipp Matthias Hahn 2005-09-19 15:32 ` Raymond @ 2005-09-21 22:03 ` Sasha Khapyorsky 2005-09-22 6:24 ` Philipp Matthias Hahn 1 sibling, 1 reply; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-21 22:03 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel, Raymond, openvortex-dev On 17:00 Mon 19 Sep , 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 Ok, 0x42 and 0x44 are my mistake, sorry (need to look in datasheet from time to time), Line level register is 0x46. Try manual initialization (whole codec): # echo 3c 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs # echo 40 1f40 > /proc/asound/card0/codec97#0/mc97#1-1+regs # echo 3e 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs # echo 46 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs , then try to change 0x46 register (look at dmesg): # echo 46 ffff > /proc/asound/card0/codec97#0/mc97#1-1+regs # echo 46 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs if it will not work than we have very strange behaviour there. If it works try to change 0x54 register (this may work or not). > > ( ./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 think that CONFIG_SND_DEBUG_DETECT=y is equivalent, but registers should writeble via proc with CONFIG_SND_DEBUG=y too. Sasha. > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > vortex_codec_read 1 7c :5349 > vortex_codec_read 1 7e :4c26 > vortex_codec_read 1 3c :4001 > vortex_codec_read 1 7c :5349 > vortex_codec_read 1 7e :4c26 > vortex_codec_write 1 1c :8a06 > vortex_codec_read 1 1c :0000 > vortex_codec_read 1 3c :4001 > vortex_codec_write 1 40 :1f40 > vortex_codec_write 1 3e :0000 > vortex_codec_write 1 3e :0000 > vortex_codec_read 1 3e :f000 > vortex_codec_read 1 3e :f00f > vortex_codec_write 1 5c :f210 > vortex_codec_write 1 68 :0000 > vortex_codec_write 1 4c :fffe > vortex_codec_write 1 4e :fffe > vortex_codec_write 1 50 :ffff > vortex_codec_write 1 52 :0000 > vortex_codec_write 1 56 :0000 > vortex_codec_read 1 2a :0000 > vortex_codec_write 1 2a :0000 > vortex: IRQ reg error > vortex: IRQ reg error > vortex: IRQ reg error > vortex_codec_write 0 02 :1f1f > vortex_codec_write 0 02 :0303 > vortex_codec_write 0 06 :8000 > vortex_codec_write 0 0e :8000 > vortex_codec_write 0 18 :1f1f > vortex_codec_write 0 18 :0707 > vortex_codec_write 0 22 :0800 > vortex_codec_write 0 22 :0808 > vortex_codec_read 1 54 :0000 > vortex_codec_write 1 54 :0001 > > 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. > > > > BTW, stupid question, if you don't have analog telephone line why you > > need modem? > > I asked for modem support a long time ago. The recent request for modem > support was from another person. I only entered this thread, after I was > cc-ed to help with adding modem support on Aurel by a developer. > > I don't need the modem for daily work, but it would still be very nice > to have modem support under linux, especially when I travel. > > BYtE > Philipp > -- > / / (_)__ __ ____ __ Philipp Hahn > / /__/ / _ \/ // /\ \/ / > /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de > ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-21 22:03 ` Sasha Khapyorsky @ 2005-09-22 6:24 ` Philipp Matthias Hahn 2005-09-22 20:19 ` Sasha Khapyorsky 0 siblings, 1 reply; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-22 6:24 UTC (permalink / raw) To: alsa-devel, Raymond, openvortex-dev Hello! On Thu, Sep 22, 2005 at 01:03:05AM +0300, Sasha Khapyorsky wrote: > Ok, 0x42 and 0x44 are my mistake, sorry (need to look in datasheet from > time to time), Line level register is 0x46. > Try manual initialization (whole codec): > > # echo 3c 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs > # echo 40 1f40 > /proc/asound/card0/codec97#0/mc97#1-1+regs > # echo 3e 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs > # echo 46 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs > > , then try to change 0x46 register (look at dmesg): Bingo: > # echo 46 ffff > /proc/asound/card0/codec97#0/mc97#1-1+regs 0:46 = 8e8e > # echo 46 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs 0:46 = 0000 > if it will not work than we have very strange behaviour there. > If it works try to change 0x54 register (this may work or not). Sorry, stays always the same. Tried 0,ffff,ff00,00ff,1 0:54 = 0000 > > Sorry, yes. The is ALSA from linux-2.6.13.2 with CONFIG_SND_DEBUG=y, > > which is equivalent to --with-debug=detect. > > I think that CONFIG_SND_DEBUG_DETECT=y is equivalent, but registers > should writeble via proc with CONFIG_SND_DEBUG=y too. Yes, should I recompile with CONFIG_SND_DEBUG_DETECT=y too? BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-22 6:24 ` Philipp Matthias Hahn @ 2005-09-22 20:19 ` Sasha Khapyorsky 0 siblings, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-22 20:19 UTC (permalink / raw) To: Philipp Matthias Hahn; +Cc: alsa-devel, Raymond, openvortex-dev On 08:24 Thu 22 Sep , Philipp Matthias Hahn wrote: > > Bingo: > > # echo 46 ffff > /proc/asound/card0/codec97#0/mc97#1-1+regs > 0:46 = 8e8e > > # echo 46 0 > /proc/asound/card0/codec97#0/mc97#1-1+regs > 0:46 = 0000 Fine. > > if it will not work than we have very strange behaviour there. > > If it works try to change 0x54 register (this may work or not). > > Sorry, stays always the same. Tried 0,ffff,ff00,00ff,1 > 0:54 = 0000 We are unlucky. This means that GPIO is controlled not via standard AC97 register, but somehow via MMIO and now we will need to find this "somehow" (GPIO bits manage DAA interface, including 'Hook-Off' switch, unfortunately the modem is completely useless without it). I've looked at win driver (ftp://ftp.asuscom.de/pub/NOTEBOOK/L8400B/Audio_Modem/8baudw9x.exe) and think (after few 'strings' runs) that 'ASP4_CTL.vxd' is softmodem driver (I am completely unfamiliar with .inf files, so please correct me if I am wrong). Nothing interesting until now and looks that this file was not dissassembled there http://savannah.nongnu.org/cgi-bin/viewcvs/openvortex/plato/ Do you or anybody have idea how to dissassemble *.vxd file? (I would prefer with linux :)). > > I think that CONFIG_SND_DEBUG_DETECT=y is equivalent, but registers > > should writeble via proc with CONFIG_SND_DEBUG=y too. > > Yes, should I recompile with CONFIG_SND_DEBUG_DETECT=y too? This will not help anyway. Sasha. PS. Please include me to To or Cc list. ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-15 20:43 ` Sasha Khapyorsky ` (2 preceding siblings ...) 2005-09-16 8:46 ` Philipp Matthias Hahn @ 2005-09-16 14:09 ` Raymond 2005-09-16 21:34 ` Manuel Jander 3 siblings, 1 reply; 88+ messages in thread From: Raymond @ 2005-09-16 14:09 UTC (permalink / raw) To: Sasha Khapyorsky; +Cc: openvortex-dev, alsa-devel Sasha Khapyorsky wrote: > On 17:35 Thu 15 Sep , Sasha Khapyorsky wrote: > > > 3. DMA > > After some looking in au88x0 driver I think that it is possible that > modem could use one ADB channels (predefined or programmable) for pcm > data transfers (just like regular audio), similar scheme may be found > with some other devices like ali5451. > > If so we could try to find channel numbers (should be two - for playback > and capture). It is very possible that channels should be configured > somehow first. > > Philipp, How looks your 'aplay -l' output? > > > ANYBODY knows something about modem DMA/PCM with au88x0, please advise. > > 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) What is the difference between modem application and audio application ? Do the modem application open two PCM streams (one for playback and the other for capture )? Where is the class SND_PCM_CLASS_MODEM specificed in the driver ? ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Re: au88x0 modem 2005-09-16 14:09 ` Raymond @ 2005-09-16 21:34 ` Manuel Jander 2005-09-17 3:52 ` Raymond 0 siblings, 1 reply; 88+ messages in thread From: Manuel Jander @ 2005-09-16 21:34 UTC (permalink / raw) To: Alsa-devel list 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. You will only loose signal precision with the samplerate converter anyway, and there are very few of them. 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 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. > 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. > Where is the class SND_PCM_CLASS_MODEM specificed in the driver ? At least i did not. Best Regards, Manuel Jander ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-16 21:34 ` Manuel Jander @ 2005-09-17 3:52 ` Raymond 0 siblings, 0 replies; 88+ messages in thread From: Raymond @ 2005-09-17 3:52 UTC (permalink / raw) To: Manuel Jander; +Cc: openvortex-dev, alsa-devel, Takashi Iwai, Sasha Khapyorsky 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 ? ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem [was: Re: Mo' better modem support] 2005-09-13 0:09 ` au88x0 modem [was: Re: Mo' better modem support] Sasha Khapyorsky 2005-09-13 8:55 ` Philipp Matthias Hahn @ 2005-09-13 9:12 ` Raymond 2005-09-13 18:40 ` au88x0 modem Sasha Khapyorsky 2005-09-14 18:07 ` au88x0 modem [was: Re: Mo' better modem support] Philipp Matthias Hahn 1 sibling, 2 replies; 88+ messages in thread From: Raymond @ 2005-09-13 9:12 UTC (permalink / raw) To: Sasha Khapyorsky Cc: alsa-devel, pmhahn, openvortex-dev, Manuel Jander, pontus.fuchs Philipp Matthias Hahn wrote: > Hello! > > On Tue, Sep 13, 2005 at 03:09:09AM +0300, Sasha Khapyorsky wrote: > >>Could you try the patch below? And then look again at '/proc/asond/au8810'? > > > See attached tar-file for a full copy of everything under > /proc/asound/au8810 after applying the attached patch against ASLA from > linux-2.6.13.1. > > BYtE > Philipp Is it an ALSA bug to display STAC9705 as STAC9704 ? Sasha Khapyorsky wrote: > On 00:36 Tue 13 Sep , Raymond wrote: > >>>>cat /proc/asound/au8810/codec97#0/ac97#0-0+regs >>> >>>0:7c = 8384 >>>0:7e = 7605 > > >>Is it STAC9705 ? >> >>18-bit full-duplex audio codec with intergrated modem analog front end. >> >>http://www6.tomshardware.com/mobile/20010126/notebooks-06.html >> >>What is the usage of MOT6269353 if it already connected to STAC9705 ? > > > It is likely secondary modem-only codec (Motorola/SiLabs). > > Philipp, MOT6269353 and MOT6269352 is an AC-Link SM56 Building block. http://www.motorola.com/softmodem/driver.htm Is it normal to have a primary audio/modem codec STAC9705 and a secondary codec (AC-link SM56) ? I guess DAA Si3014 is similar to MOT6269352 > > Could you try the patch below? And then look again at '/proc/asond/au8810'? > > This is against CVS, untested and may be dangerous because I know nothing > about au8810 (somebody knows, please comment). > > Sasha. > At a first glance, it's rather DANGER to try your patch. The LAN card and MDC share the RJ11 jack on l8400b Does it need to disable the LAN in BIOS before you make any test on the MDC ? Please cc your reply to openvortex-dev@nongnu.org > Index: alsa-kernel/pci/au88x0/au8830.h > =================================================================== > RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8830.h,v > retrieving revision 1.3 > diff -u -p -r1.3 au8830.h > --- alsa-kernel/pci/au88x0/au8830.h 13 Apr 2004 15:26:27 -0000 1.3 > +++ alsa-kernel/pci/au88x0/au8830.h 12 Sep 2005 23:35:27 -0000 > @@ -203,12 +203,12 @@ > #define VORTEX_CODEC_SPORTCTRL 0x2918c > > #define VORTEX_CODEC_EN 0x29190 > -#define EN_AUDIO0 0x00000300 > +#define EN_CODEC0 0x00000300 > #define EN_MODEM 0x00000c00 > -#define EN_AUDIO1 0x00003000 > +#define EN_CODEC1 0x00003000 > #define EN_SPORT 0x00030000 > #define EN_SPDIF 0x000c0000 > -#define EN_CODEC (EN_AUDIO1 | EN_AUDIO0) > +#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) > > #define VORTEX_SPDIF_SMPRATE 0x29194 AFAIK, EN_AUDIO0 is for the front channels and EN_AUDIO1 is the rear channels of the AC97 link #define EN_AUDIO0 0x00000300 #define EN_AUDIO1 0x00003000 Photo of Aureal sound cards can be found in http://www.dearhoney.idv.tw/MUSEUM/soundcard-07.php Turtle Beach Montego II (STAC9721) is supported but the rear speakers of Quadzilla and the rear speakers and SPDIF IN/OUT of Home Studio Daugther card are not yet supported. JP1 of SQ2500 is connect to the WaveBlaster daugther card. http://www.dayc.vispa.com/faq/vtximg.htm JP2 and JP3 of SQ2500 are connected to SQ3500 daugther card with Motorola DSP56362. The usage of the 20-pins connectors at the top of SuperQuad is unknown. > Index: alsa-kernel/pci/au88x0/au8820.h > =================================================================== > RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8820.h,v > retrieving revision 1.3 > diff -u -p -r1.3 au8820.h > --- alsa-kernel/pci/au88x0/au8820.h 13 Apr 2004 15:26:27 -0000 1.3 > +++ alsa-kernel/pci/au88x0/au8820.h 12 Sep 2005 23:35:26 -0000 > @@ -158,7 +158,10 @@ > /* CODEC */ > #define VORTEX_CODEC_CTRL 0x11984 > #define VORTEX_CODEC_EN 0x11990 > -#define EN_CODEC 0x00000300 > +#define EN_CODEC0 0x00000300 > +#define EN_MODEM 0x00000c00 > +#define EN_CODEC1 0x00003000 > +#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) > #define EN_SPORT 0x00030000 > #define EN_SPDIF 0x000c0000 > #define VORTEX_CODEC_CHN 0x11880 -#define EN_CODEC 0x00000300 +#define EN_AUDIO0 0x00000300 It seem all Vortex cards (e.g. Turtle Beach Montego, Diamond S90,... ) have only one stereo codec and do not support soft modem. > > Index: alsa-kernel/pci/au88x0/au8810.h > =================================================================== > RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8810.h,v > retrieving revision 1.3 > diff -u -p -r1.3 au8810.h > --- alsa-kernel/pci/au88x0/au8810.h 13 Apr 2004 15:26:27 -0000 1.3 > +++ alsa-kernel/pci/au88x0/au8810.h 12 Sep 2005 23:35:26 -0000 > @@ -171,9 +171,9 @@ > #define VORTEX_CODEC_CTRL 0x29184 > #define VORTEX_CODEC_EN 0x29190 > #define EN_CODEC0 0x00000300 > -#define EN_AC98 0x00000c00 /* Modem AC98 slots. */ > +#define EN_MODEM 0x00000c00 /* Modem AC98 slots. */ > #define EN_CODEC1 0x00003000 > -#define EN_CODEC (EN_CODEC0 | EN_CODEC1) > +#define EN_CODEC (EN_CODEC0 | EN_MODEM | EN_CODEC1) > #define EN_SPORT 0x00030000 > #define EN_SPDIF 0x000c0000 > +#define VORTEX_PCI_SUBSYSTEM_ID 0x2A804 -#define EN_CODEC0 0x00000300 +#define EN_AUDIO0 0x00000300 -#define EN_AC98 0x00000c00 /* Modem AC98 slots. */ +#define EN_MODEM 0x00000c00 /* Modem AC98 slots. */ -#define EN_CODEC1 0x00003000 +#define EN_AUDIO1 0x00003000 SQ1500, Aureal Advantage and most of the au8810 sound cards do not has any seconday modem codec. SoundCom PCI Audio/Modem Combo card and some motherboard with onboard au8810 (e.g. ASUS l8400b, MS-6178E) have aureal soft modem http://pci-ids.ucw.cz/iii/?i=12eb8803 I suspect Aureal VCOM PCI Modem Card has different PCI vendor/device id 12eb:8803 I suspect SQ1500 is the only au8810 has a quad codec (need confirmation from SQ1500 user). > > Index: alsa-kernel/pci/au88x0/au88x0.h > =================================================================== > RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0.h,v > retrieving revision 1.11 > diff -u -p -r1.11 au88x0.h > --- alsa-kernel/pci/au88x0/au88x0.h 22 Mar 2005 08:50:55 -0000 1.11 > +++ alsa-kernel/pci/au88x0/au88x0.h 12 Sep 2005 23:35:27 -0000 > @@ -135,7 +135,8 @@ struct snd_vortex { > snd_pcm_t *pcm[VORTEX_PCM_LAST]; > > snd_rawmidi_t *rmidi; /* Legacy Midi interface. */ > - ac97_t *codec; > + unsigned int num_of_codecs; > + ac97_t *codecs[2]; > > /* Stream structs. */ > stream_t dma_adb[NR_ADB]; > Index: alsa-kernel/pci/au88x0/au88x0_core.c > =================================================================== > RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_core.c,v > retrieving revision 1.11 > diff -u -p -r1.11 au88x0_core.c > --- alsa-kernel/pci/au88x0/au88x0_core.c 23 Feb 2005 11:00:31 -0000 1.11 > +++ alsa-kernel/pci/au88x0/au88x0_core.c 12 Sep 2005 23:35:33 -0000 > @@ -2511,6 +2511,11 @@ static void vortex_codec_init(vortex_t * > /* Enable codec channels 0 and 1. */ > hwwrite(vortex->mmio, VORTEX_CODEC_EN, > hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); > + vortex->num_of_codecs = 1; > + /* nothing know about that */ > + msleep(2); > + if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) > + vortex->num_of_codecs = 2; > } > > static void au88x0.h ac97_t *codec; +#ifdef AU8810_CHIP + ac97_t *modem_codec; +#endif + u32 pci_subsystem_id; au88x0_core.c /* Enable codec channels 0 and 1. */ hwwrite(vortex->mmio, VORTEX_CODEC_EN, - hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO0); au88x0_mixer.c - vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->ext_id&0x80)); + vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->ext_id & AC97_EI_SDAC)); + if ( VORTEX_IS_QUAD(vortex) ) { + /* Enable codec rear channels . */ + hwwrite(vortex->mmio, VORTEX_CODEC_EN, + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO1 ); + + }; +#ifdef AU8810_CHIP + /* Enable modem codec for ASUS L8400B + switch ( vortex->pci_subsystem_id ) { + case 0x10431043: + hwwrite(vortex->mmio, VORTEX_CODEC_EN, + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_MODEM); + break; + }; +#endif + > Index: alsa-kernel/pci/au88x0/au88x0_mixer.c > =================================================================== > RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_mixer.c,v > retrieving revision 1.5 > diff -u -p -r1.5 au88x0_mixer.c > --- alsa-kernel/pci/au88x0/au88x0_mixer.c 23 Mar 2005 17:04:16 -0000 1.5 > +++ alsa-kernel/pci/au88x0/au88x0_mixer.c 12 Sep 2005 23:35:33 -0000 > @@ -15,7 +15,7 @@ static int __devinit snd_vortex_mixer(vo > { > ac97_bus_t *pbus; > ac97_template_t ac97; > - int err; > + int i, err; > static ac97_bus_ops_t ops = { > .write = vortex_codec_write, > .read = vortex_codec_read, > @@ -27,7 +27,10 @@ static int __devinit snd_vortex_mixer(vo > // Intialize AC97 codec stuff. > ac97.private_data = vortex; > ac97.scaps = AC97_SCAP_NO_SPDIF; > - err = snd_ac97_mixer(pbus, &ac97, &vortex->codec); > - vortex->isquad = ((vortex->codec == NULL) ? 0 : (vortex->codec->ext_id&0x80)); > + for (i = 0 ; i < vortex->num_of_codecs ; i++) { > + ac97.num = i; > + err = snd_ac97_mixer(pbus, &ac97, &vortex->codecs[i]); > + } > + vortex->isquad = ((vortex->codecs[0] == NULL) ? 0 : (vortex->codecs[0]->ext_id&0x80)); > return err; > } > > au88x0.c + chip->pci_subsystem_id = pci_read_config_byte(pci,0x2c); // snd_ac97_mixer and Vortex mixer. if ((err = snd_vortex_mixer(chip)) < 0) { snd_card_free(card); return err; } +#ifdef AU8810_CHIP + /* ASUS l8400b , MS-6178E, SoundCom */ + switch ( chip->pci_subsystem_id ) { + case 0x10431043: + err = snd_vortex_modem_mixer(chip); + break; + }; +#endif /* for VCOM PCI Modem card */ au8810_modem.c #define PCI_DEVICE_ID_AUREAL_MODEM 0x8803 #include "au8810.h" #include "au88x0.h" static struct pci_device_id snd_vortex_ids[] = { {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_MODEM, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, {0,} }; #include "au88x0_modem.c" #include "au88x0_core.c" #include "au88x0_pcm.c" #include "au88x0.c" au88x0_modem.c /* modem routine for audio/modem combo or modem card */ static int __devinit snd_vortex_modem_mixer(vortex_t *vortex) { ac97_bus_t *pbus; ac97_template_t ac97; int err; static ac97_bus_ops_t ops = { .write = vortex_modem_codec_write, .read = vortex_modem_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; if ( vortex->device == PCI_DEVICE_ID_AUREAL_MODEM ) ac97.num = 0 ; else ac97.num = 1 ; err = snd_ac97_mixer(pbus, &ac97, &vortex->modem_codec); return err; } ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem 2005-09-13 9:12 ` au88x0 modem [was: Re: Mo' better modem support] Raymond @ 2005-09-13 18:40 ` Sasha Khapyorsky 2005-09-14 18:07 ` au88x0 modem [was: Re: Mo' better modem support] Philipp Matthias Hahn 1 sibling, 0 replies; 88+ messages in thread From: Sasha Khapyorsky @ 2005-09-13 18:40 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, pmhahn, openvortex-dev, Manuel Jander, pontus.fuchs On 17:12 Tue 13 Sep , Raymond wrote: > >On 00:36 Tue 13 Sep , Raymond wrote: > > > >>>>cat /proc/asound/au8810/codec97#0/ac97#0-0+regs > >>> > >>>0:7c = 8384 > >>>0:7e = 7605 > > > > > >>Is it STAC9705 ? > >> > >>18-bit full-duplex audio codec with intergrated modem analog front end. > >> > >>http://www6.tomshardware.com/mobile/20010126/notebooks-06.html > >> > >>What is the usage of MOT6269353 if it already connected to STAC9705 ? > > > > > >It is likely secondary modem-only codec (Motorola/SiLabs). > > > >Philipp, > > MOT6269353 and MOT6269352 is an AC-Link SM56 Building block. > > http://www.motorola.com/softmodem/driver.htm > > Is it normal to have a primary audio/modem codec STAC9705 and a > secondary codec (AC-link SM56) ? This codec (don't know STAC9705, STAC9704 or whatever) is audio only codec, all modem related registers are zeroed. So yes, it is normal. > I guess DAA Si3014 is similar to MOT6269352 Just same I guess. > > > > >Could you try the patch below? And then look again at '/proc/asond/au8810'? > > > >This is against CVS, untested and may be dangerous because I know nothing > >about au8810 (somebody knows, please comment). > > > >Sasha. > > > > At a first glance, it's rather DANGER to try your patch. > > The LAN card and MDC share the RJ11 jack on l8400b > > Does it need to disable the LAN in BIOS before you make any test on the > MDC ? No. > > Please cc your reply to openvortex-dev@nongnu.org > > >Index: alsa-kernel/pci/au88x0/au8830.h > >=================================================================== > >RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8830.h,v > >retrieving revision 1.3 > >diff -u -p -r1.3 au8830.h > >--- alsa-kernel/pci/au88x0/au8830.h 13 Apr 2004 15:26:27 -0000 1.3 > >+++ alsa-kernel/pci/au88x0/au8830.h 12 Sep 2005 23:35:27 -0000 > >@@ -203,12 +203,12 @@ > > #define VORTEX_CODEC_SPORTCTRL 0x2918c > > > > #define VORTEX_CODEC_EN 0x29190 > >-#define EN_AUDIO0 0x00000300 > >+#define EN_CODEC0 0x00000300 > > #define EN_MODEM 0x00000c00 > >-#define EN_AUDIO1 0x00003000 > >+#define EN_CODEC1 0x00003000 > > #define EN_SPORT 0x00030000 > > #define EN_SPDIF 0x000c0000 > >-#define EN_CODEC (EN_AUDIO1 | EN_AUDIO0) > >+#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) > > > > #define VORTEX_SPDIF_SMPRATE 0x29194 > > AFAIK, EN_AUDIO0 is for the front channels and EN_AUDIO1 is the rear > channels of the AC97 link > > #define EN_AUDIO0 0x00000300 > #define EN_AUDIO1 0x00003000 Yes, this CODEC_STRL/CODEC_EN stuff is very unclear for me, so I used "full set" (CODEC0|CODEC1|MODEM) for begging. Should be clarified in experimental way. mainly I'm not about cleanups now. The goal is to hack modem. It looks for me that right sequence is: 1. Find and initialize modem codec (secondary). 2. Find and hack appropriate DMA channels, initialize modem PCM. 3. Find valid way to access GPIO (for DAA controls like Hook-Off) 4. Chipset detailed cleanups. Currently we are in (1). Sasha. > > > Photo of Aureal sound cards can be found in > > http://www.dearhoney.idv.tw/MUSEUM/soundcard-07.php > > Turtle Beach Montego II (STAC9721) is supported but the rear speakers of > Quadzilla and the rear speakers and SPDIF IN/OUT of Home Studio Daugther > card are not yet supported. > > > JP1 of SQ2500 is connect to the WaveBlaster daugther card. > > http://www.dayc.vispa.com/faq/vtximg.htm > > JP2 and JP3 of SQ2500 are connected to SQ3500 daugther card with > Motorola DSP56362. > > The usage of the 20-pins connectors at the top of SuperQuad is unknown. > > > >Index: alsa-kernel/pci/au88x0/au8820.h > >=================================================================== > >RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8820.h,v > >retrieving revision 1.3 > >diff -u -p -r1.3 au8820.h > >--- alsa-kernel/pci/au88x0/au8820.h 13 Apr 2004 15:26:27 -0000 1.3 > >+++ alsa-kernel/pci/au88x0/au8820.h 12 Sep 2005 23:35:26 -0000 > >@@ -158,7 +158,10 @@ > > /* CODEC */ > > #define VORTEX_CODEC_CTRL 0x11984 > > #define VORTEX_CODEC_EN 0x11990 > >-#define EN_CODEC 0x00000300 > >+#define EN_CODEC0 0x00000300 > >+#define EN_MODEM 0x00000c00 > >+#define EN_CODEC1 0x00003000 > >+#define EN_CODEC (EN_CODEC0|EN_MODEM|EN_CODEC1) > > #define EN_SPORT 0x00030000 > > #define EN_SPDIF 0x000c0000 > > #define VORTEX_CODEC_CHN 0x11880 > > > -#define EN_CODEC 0x00000300 > +#define EN_AUDIO0 0x00000300 > > > It seem all Vortex cards (e.g. Turtle Beach Montego, Diamond S90,... ) > have only one stereo codec and do not support soft modem. > > > > > >Index: alsa-kernel/pci/au88x0/au8810.h > >=================================================================== > >RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au8810.h,v > >retrieving revision 1.3 > >diff -u -p -r1.3 au8810.h > >--- alsa-kernel/pci/au88x0/au8810.h 13 Apr 2004 15:26:27 -0000 1.3 > >+++ alsa-kernel/pci/au88x0/au8810.h 12 Sep 2005 23:35:26 -0000 > >@@ -171,9 +171,9 @@ > > #define VORTEX_CODEC_CTRL 0x29184 > > #define VORTEX_CODEC_EN 0x29190 > > #define EN_CODEC0 0x00000300 > >-#define EN_AC98 0x00000c00 /* Modem AC98 slots. */ > >+#define EN_MODEM 0x00000c00 /* Modem AC98 slots. */ > > #define EN_CODEC1 0x00003000 > >-#define EN_CODEC (EN_CODEC0 | EN_CODEC1) > >+#define EN_CODEC (EN_CODEC0 | EN_MODEM | EN_CODEC1) > > #define EN_SPORT 0x00030000 > > #define EN_SPDIF 0x000c0000 > > > > +#define VORTEX_PCI_SUBSYSTEM_ID 0x2A804 > > > -#define EN_CODEC0 0x00000300 > +#define EN_AUDIO0 0x00000300 > -#define EN_AC98 0x00000c00 /* Modem AC98 slots. */ > +#define EN_MODEM 0x00000c00 /* Modem AC98 slots. */ > -#define EN_CODEC1 0x00003000 > +#define EN_AUDIO1 0x00003000 > > > SQ1500, Aureal Advantage and most of the au8810 sound cards do not > has any seconday modem codec. > > SoundCom PCI Audio/Modem Combo card and some motherboard with > onboard au8810 (e.g. ASUS l8400b, MS-6178E) have aureal soft modem > > > > > http://pci-ids.ucw.cz/iii/?i=12eb8803 > > I suspect Aureal VCOM PCI Modem Card has different PCI vendor/device id > 12eb:8803 > > > I suspect SQ1500 is the only au8810 has a quad codec (need confirmation > from SQ1500 user). > > > > >Index: alsa-kernel/pci/au88x0/au88x0.h > >=================================================================== > >RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0.h,v > >retrieving revision 1.11 > >diff -u -p -r1.11 au88x0.h > >--- alsa-kernel/pci/au88x0/au88x0.h 22 Mar 2005 08:50:55 -0000 1.11 > >+++ alsa-kernel/pci/au88x0/au88x0.h 12 Sep 2005 23:35:27 -0000 > >@@ -135,7 +135,8 @@ struct snd_vortex { > > snd_pcm_t *pcm[VORTEX_PCM_LAST]; > > > > snd_rawmidi_t *rmidi; /* Legacy Midi interface. */ > >- ac97_t *codec; > >+ unsigned int num_of_codecs; > >+ ac97_t *codecs[2]; > > > > /* Stream structs. */ > > stream_t dma_adb[NR_ADB]; > >Index: alsa-kernel/pci/au88x0/au88x0_core.c > >=================================================================== > >RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_core.c,v > >retrieving revision 1.11 > >diff -u -p -r1.11 au88x0_core.c > >--- alsa-kernel/pci/au88x0/au88x0_core.c 23 Feb 2005 11:00:31 -0000 > >1.11 > >+++ alsa-kernel/pci/au88x0/au88x0_core.c 12 Sep 2005 23:35:33 -0000 > >@@ -2511,6 +2511,11 @@ static void vortex_codec_init(vortex_t * > > /* Enable codec channels 0 and 1. */ > > hwwrite(vortex->mmio, VORTEX_CODEC_EN, > > hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); > >+ vortex->num_of_codecs = 1; > >+ /* nothing know about that */ > >+ msleep(2); > >+ if (hwread(vortex->mmio, VORTEX_CODEC_EN)&(EN_CODEC1|EN_MODEM)) > >+ vortex->num_of_codecs = 2; > > } > > > > static void > > au88x0.h > > ac97_t *codec; > +#ifdef AU8810_CHIP > + ac97_t *modem_codec; > +#endif > + u32 pci_subsystem_id; > > > au88x0_core.c > > /* Enable codec channels 0 and 1. */ > hwwrite(vortex->mmio, VORTEX_CODEC_EN, > - hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_CODEC); > + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO0); > > > au88x0_mixer.c > > - vortex->isquad = ((vortex->codec == NULL) ? 0 : > (vortex->codec->ext_id&0x80)); > + vortex->isquad = ((vortex->codec == NULL) ? 0 : > (vortex->codec->ext_id & AC97_EI_SDAC)); > + if ( VORTEX_IS_QUAD(vortex) ) { > + /* Enable codec rear channels . */ > + hwwrite(vortex->mmio, VORTEX_CODEC_EN, > + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_AUDIO1 ); > + > + }; > +#ifdef AU8810_CHIP > + /* Enable modem codec for ASUS L8400B > + switch ( vortex->pci_subsystem_id ) { > + case 0x10431043: > + hwwrite(vortex->mmio, VORTEX_CODEC_EN, > + hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_MODEM); > + break; > + }; > +#endif > + > > > > >Index: alsa-kernel/pci/au88x0/au88x0_mixer.c > >=================================================================== > >RCS file: /cvsroot/alsa/alsa-kernel/pci/au88x0/au88x0_mixer.c,v > >retrieving revision 1.5 > >diff -u -p -r1.5 au88x0_mixer.c > >--- alsa-kernel/pci/au88x0/au88x0_mixer.c 23 Mar 2005 17:04:16 -0000 > >1.5 > >+++ alsa-kernel/pci/au88x0/au88x0_mixer.c 12 Sep 2005 23:35:33 -0000 > >@@ -15,7 +15,7 @@ static int __devinit snd_vortex_mixer(vo > > { > > ac97_bus_t *pbus; > > ac97_template_t ac97; > >- int err; > >+ int i, err; > > static ac97_bus_ops_t ops = { > > .write = vortex_codec_write, > > .read = vortex_codec_read, > >@@ -27,7 +27,10 @@ static int __devinit snd_vortex_mixer(vo > > // Intialize AC97 codec stuff. > > ac97.private_data = vortex; > > ac97.scaps = AC97_SCAP_NO_SPDIF; > >- err = snd_ac97_mixer(pbus, &ac97, &vortex->codec); > >- vortex->isquad = ((vortex->codec == NULL) ? 0 : > >(vortex->codec->ext_id&0x80)); > >+ for (i = 0 ; i < vortex->num_of_codecs ; i++) { > >+ ac97.num = i; > >+ err = snd_ac97_mixer(pbus, &ac97, &vortex->codecs[i]); > >+ } > >+ vortex->isquad = ((vortex->codecs[0] == NULL) ? 0 : > >(vortex->codecs[0]->ext_id&0x80)); > > return err; > > } > > > > > > > au88x0.c > + chip->pci_subsystem_id = pci_read_config_byte(pci,0x2c); > > // snd_ac97_mixer and Vortex mixer. > if ((err = snd_vortex_mixer(chip)) < 0) { > snd_card_free(card); > return err; > } > +#ifdef AU8810_CHIP > + /* ASUS l8400b , MS-6178E, SoundCom */ > + switch ( chip->pci_subsystem_id ) { > + case 0x10431043: > + err = snd_vortex_modem_mixer(chip); > + break; > + }; > +#endif > > > > /* for VCOM PCI Modem card */ > > au8810_modem.c > > #define PCI_DEVICE_ID_AUREAL_MODEM 0x8803 > #include "au8810.h" > #include "au88x0.h" > static struct pci_device_id snd_vortex_ids[] = { > {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_MODEM, > PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, > {0,} > }; > #include "au88x0_modem.c" > #include "au88x0_core.c" > #include "au88x0_pcm.c" > #include "au88x0.c" > > > > au88x0_modem.c > > /* modem routine for audio/modem combo or modem card */ > > > static int __devinit snd_vortex_modem_mixer(vortex_t *vortex) > { > ac97_bus_t *pbus; > ac97_template_t ac97; > int err; > static ac97_bus_ops_t ops = { > .write = vortex_modem_codec_write, > .read = vortex_modem_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; > if ( vortex->device == PCI_DEVICE_ID_AUREAL_MODEM ) > ac97.num = 0 ; > else > ac97.num = 1 ; > err = snd_ac97_mixer(pbus, &ac97, &vortex->modem_codec); > return err; > > } > > > > > > > > > > > > ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: au88x0 modem [was: Re: Mo' better modem support] 2005-09-13 9:12 ` au88x0 modem [was: Re: Mo' better modem support] Raymond 2005-09-13 18:40 ` au88x0 modem Sasha Khapyorsky @ 2005-09-14 18:07 ` Philipp Matthias Hahn 1 sibling, 0 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-14 18:07 UTC (permalink / raw) To: Raymond Cc: Sasha Khapyorsky, alsa-devel, openvortex-dev, Manuel Jander, pontus.fuchs Hello! On Tue, Sep 13, 2005 at 05:12:56PM +0800, Raymond wrote: > >>http://www6.tomshardware.com/mobile/20010126/notebooks-06.html > >> > >>What is the usage of MOT6269353 if it already connected to STAC9705 ? > > > >It is likely secondary modem-only codec (Motorola/SiLabs). > > MOT6269353 and MOT6269352 is an AC-Link SM56 Building block. > > http://www.motorola.com/softmodem/driver.htm > > Is it normal to have a primary audio/modem codec STAC9705 and a > secondary codec (AC-link SM56) ? You can get the Windows9x driver from ftp://ftp.asuscom.de/pub/NOTEBOOK/L8400B/Audio_Modem/8baudw9x.exe and unzip the file. The interesting files are located in the ./Driver/ subdirectory: Sm56.reg MOTVCD.VXD So it's the motorola. The alsa driver was written by decompiling the Windows driver. http://savannah.nongnu.org/projects/openvortex/ You still find those decompiled assembler files at http://savannah.nongnu.org/cgi-bin/viewcvs/openvortex/plato/ BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php ^ permalink raw reply [flat|nested] 88+ messages in thread
* Re: Mo' better modem support 2005-09-12 16:36 ` Raymond 2005-09-13 0:09 ` au88x0 modem [was: Re: Mo' better modem support] Sasha Khapyorsky @ 2005-09-13 9:22 ` Philipp Matthias Hahn 1 sibling, 0 replies; 88+ messages in thread From: Philipp Matthias Hahn @ 2005-09-13 9:22 UTC (permalink / raw) To: Raymond; +Cc: alsa-devel, Sasha Khapyorsky Hello! On Tue, Sep 13, 2005 at 12:36:51AM +0800, Raymond wrote: > Just make sure your modem are still working > > The cable at the top of the MiniPCI card is connected to the RJ11 Combo > jack. Combo because the MDC modem card is sharing this port with the > LAN. You cannot use LAN and Modem simultaneously. > > How to select which one use the RJ11 Combo jack ? (BIOS setup) It's a dual RJ11/RJ45 jack: If you plug in a RJ45 network cable, you use the pins for network. When you plug in the RJ11 telephone cable, you use the other pins of the modem. Both just use plain different pins. > >>What is the feature available ? > >>1) Data/Fax only > >>2) Data/Fax/TAM (Telephone answering machine) > >>3) Data/Fax/TAM/Speakerphon > > > >Don't know. Never used Windows much. But if you have an easy-to-install > >and easy-to-use test application for Windows, I'm willing to test it. > > It seem to support voice, any user manual mention that it can be > used for data/fax/tam/speakerphone ? I just looked at the manual, but found nothing about TAM/Speakerphone: http://notebook.asus.it/documenti/manuali/L8400%20B%20C%20Ce%20K.pdf The C-Model has an ESS soundcard instead of the AU8810 by B-Model has: http://usa.asus.com/notebook/l8400c/faq.htm#9 So doesn't apply and doesn't help. BYtE Philipp -- / / (_)__ __ ____ __ Philipp Hahn / /__/ / _ \/ // /\ \/ / /____/_/_//_/\_,_/ /_/\_\ pmhahn@titan.lahn.de ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf ^ permalink raw reply [flat|nested] 88+ messages in thread
end of thread, other threads:[~2005-09-22 20:19 UTC | newest] Thread overview: 88+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-09-05 17:48 Mo' better modem support Takashi Iwai 2005-09-05 23:29 ` Sasha Khapyorsky 2005-09-06 13:29 ` Takashi Iwai 2005-09-07 16:03 ` Sasha Khapyorsky 2005-09-11 16:36 ` [alsa-lib patch] src/pcm/pcm_hooks.c : fix segfault then hooks list is empty Sasha Khapyorsky 2005-09-12 10:37 ` Takashi Iwai 2005-09-12 0:27 ` [conf patch] modem's pcm "two device" config [was: Re: Mo' better modem support] Sasha Khapyorsky 2005-09-12 10:38 ` Takashi Iwai 2005-09-12 17:49 ` Takashi Iwai 2005-09-12 22:10 ` Sasha Khapyorsky 2005-09-13 9:34 ` Takashi Iwai 2005-09-13 14:35 ` Sasha Khapyorsky 2005-09-13 12:43 ` Takashi Iwai 2005-09-13 15:36 ` Sasha Khapyorsky 2005-09-13 17:27 ` Sasha Khapyorsky 2005-09-13 0:45 ` [patch] no templated index for mc97 controls Sasha Khapyorsky 2005-09-13 1:06 ` [patch] no templated index for si3036 modem controls Sasha Khapyorsky 2005-09-13 10:24 ` [patch] no templated index for mc97 controls Takashi Iwai 2005-09-12 17:05 ` [conf patch] modem config for HDA-Intel Sasha Khapyorsky 2005-09-12 15:08 ` Takashi Iwai 2005-09-13 0:18 ` [patch] "empty" generic mfg-only codec Sasha Khapyorsky 2005-09-13 10:26 ` Takashi Iwai 2005-09-06 8:37 ` Mo' better modem support Raymond 2005-09-06 14:29 ` Sasha Khapyorsky 2005-09-06 13:19 ` Raymond 2005-09-06 20:43 ` Sasha Khapyorsky 2005-09-07 0:42 ` Raymond 2005-09-07 6:44 ` Philipp Matthias Hahn 2005-09-07 10:05 ` Raymond 2005-09-07 13:15 ` Philipp Matthias Hahn 2005-09-07 17:16 ` Sasha Khapyorsky 2005-09-08 16:10 ` Raymond 2005-09-07 16:10 ` Sasha Khapyorsky 2005-09-09 15:36 ` Raymond 2005-09-10 14:49 ` Sasha Khapyorsky 2005-09-07 16:33 ` Sasha Khapyorsky 2005-09-09 16:17 ` Raymond 2005-09-11 12:45 ` Philipp Matthias Hahn 2005-09-12 16:36 ` Raymond 2005-09-13 0:09 ` au88x0 modem [was: Re: Mo' better modem support] Sasha Khapyorsky 2005-09-13 8:55 ` Philipp Matthias Hahn 2005-09-13 17:35 ` Re: au88x0 modem Sasha Khapyorsky 2005-09-13 17:49 ` Philipp Matthias Hahn 2005-09-13 21:44 ` Sasha Khapyorsky 2005-09-14 7:02 ` Philipp Matthias Hahn 2005-09-14 9:47 ` [Openvortex-dev] " Maarten Vanraes 2005-09-14 12:47 ` Raymond 2005-09-14 21:03 ` Sasha Khapyorsky 2005-09-15 7:25 ` Philipp Matthias Hahn 2005-09-14 8:06 ` Raymond 2005-09-14 20:56 ` Sasha Khapyorsky 2005-09-15 9:11 ` Philipp Matthias Hahn 2005-09-15 9:21 ` Philipp Matthias Hahn 2005-09-15 11:10 ` Raymond 2005-09-15 14:35 ` Sasha Khapyorsky 2005-09-15 15:34 ` Raymond 2005-09-15 21:25 ` Alien 2005-09-16 2:17 ` Raymond 2005-09-16 2:26 ` Lee Revell 2005-09-16 18:05 ` Sasha Khapyorsky 2005-09-15 20:43 ` Sasha Khapyorsky 2005-09-16 4:33 ` Raymond 2005-09-16 7:53 ` Philipp Matthias Hahn 2005-09-16 9:24 ` Raymond 2005-09-16 8:21 ` Raymond 2005-09-16 18:20 ` Sasha Khapyorsky 2005-09-16 8:46 ` Philipp Matthias Hahn 2005-09-16 8:55 ` Raymond 2005-09-16 10:36 ` Philipp Matthias Hahn 2005-09-16 12:04 ` Raymond 2005-09-16 14:42 ` Philipp Matthias Hahn 2005-09-16 14:49 ` Philipp Matthias Hahn 2005-09-16 18:47 ` Sasha Khapyorsky 2005-09-16 18:25 ` Sasha Khapyorsky 2005-09-19 15:00 ` Philipp Matthias Hahn 2005-09-19 15:32 ` Raymond 2005-09-20 13:21 ` Philipp Matthias Hahn 2005-09-21 22:12 ` Sasha Khapyorsky 2005-09-21 22:03 ` Sasha Khapyorsky 2005-09-22 6:24 ` Philipp Matthias Hahn 2005-09-22 20:19 ` Sasha Khapyorsky 2005-09-16 14:09 ` Raymond 2005-09-16 21:34 ` Manuel Jander 2005-09-17 3:52 ` Raymond 2005-09-13 9:12 ` au88x0 modem [was: Re: Mo' better modem support] Raymond 2005-09-13 18:40 ` au88x0 modem Sasha Khapyorsky 2005-09-14 18:07 ` au88x0 modem [was: Re: Mo' better modem support] Philipp Matthias Hahn 2005-09-13 9:22 ` Mo' better modem support Philipp Matthias Hahn
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.