[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Openvortex-dev] Re: au88x0 modem
From: |
Sasha Khapyorsky |
Subject: |
[Openvortex-dev] Re: au88x0 modem |
Date: |
Tue, 13 Sep 2005 21:40:55 +0300 |
User-agent: |
Mutt/1.5.10i |
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 address@hidden
>
> >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;
>
> }
>
>
>
>
>
>
>
>
>
>
>
>
Message not available
Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Sasha Khapyorsky, 2005/09/13
- [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Philipp Matthias Hahn, 2005/09/13
- [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Sasha Khapyorsky, 2005/09/13
- [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Philipp Matthias Hahn, 2005/09/14
- Re: [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Maarten Vanraes, 2005/09/14
- Re: [Openvortex-dev] Re: Re: au88x0 modem, Raymond, 2005/09/14
- Re: [Openvortex-dev] Re: Re: au88x0 modem, Maarten Vanraes, 2005/09/14
Re: [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Sasha Khapyorsky, 2005/09/14
Re: [Openvortex-dev] Re: [Alsa-devel] Re: au88x0 modem, Philipp Matthias Hahn, 2005/09/15