All of lore.kernel.org
 help / color / mirror / Atom feed
* 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: 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: 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-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  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: 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-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

* 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: 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: 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 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-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 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: 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

* [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

* [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: [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

* 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 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

* 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

* [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'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

* 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

* [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

* [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: 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: 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: 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

* 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: [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

* 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: [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  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 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

* 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: 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: 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: 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: [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: 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: 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: [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-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 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: 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: 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-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: 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  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-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-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: 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-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: 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-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 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 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: 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: 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: 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-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

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.