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 [email protected] > > >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; > > } > > > > > > > > > > > > _______________________________________________ Openvortex-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/openvortex-dev
