Subject: Re: Preliminary AC'97 modem support in auich(4)
To: Jared D. McNeill <jmcneill@invisible.ca>
From: Nicolas Joly <njoly@pasteur.fr>
List: current-users
Date: 04/08/2005 14:25:17
--HcAYCG3uE/tztfnV
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Thu, Apr 07, 2005 at 09:04:28PM -0300, Jared D. McNeill wrote:
> Ok, I have some preliminary (read: untested) code checked in that should
> support Intel ICH4 AC'97 modems as an audio device. The goal here is to
> port slmodemd to NetBSD and use these "winmodems" (so I can stop
> carrying around a 14.4 PCMCIA fax modem).
>
> The catch: I don't have access to a POTS line at home, so I can't really
> test this stuff. I've also written a patch to slmodemd to support
> NetBSD, but again, I don't know if it actually works since (as I
> mentioned before) I have no way of testing it.
[...]
> At boot, you should (hopefully) see the following attachment at boot:
> auich1 at pci0 dev 31 function 6: i82801DB (ICH4) AC-97 Modem
> auich1: interrupting at irq 11
> auich1: ac97: Conexant D480 MDC V.92 Modem codec; no 3D stereo
> auich1: ac97: ext mid 4001<LINE1>, secondary codec
> audio1 at auich1: full duplex, mmap, independent
> You may need to add some more PCI IDs to auich.c if you don't have an
> ICH4.
>
> Hopefully if this goes well, /dev/sound1 should point to your AC'97
> modem.
>
> There are some modem mixer controls, but they don't appear to be working
> for me yet. If they work for you, please let me know:
> > mixerctl -d /dev/mixer1 -a
> modem.adc=0
> modem.adc.mute=on
> modem.dac=0
> modem.dac.mute=on
>
> There's also a sysctl that should take the modem off-hook, but again I
> have no way of testing this:
> > sudo sysctl -w hw.auich1.line1=1
> hw.auich1.line1: 0 -> 1
>
> Anyway, if you get this far, feel free to also poke around with
> slmodemd. I have some patches to make slmodem-2.9.9b build on NetBSD and
> speak to a NetBSD audio device here:
> http://www.invisible.ca/~jmcneill/netbsd/slmodem-2.9.9b-netbsd.patch
> If you can't find the original slmodem-2.9.9b source, you can grab it
> from me as well:
> http://www.invisible.ca/~jmcneill/netbsd/slmodem-2.9.9b.tar.gz
>
> Any help on this would be greatly appreciated -- testing, patches, etc
> are more than welcome! I hope we can finally get these soft modems
> working in the near future.
Great ! I made some patches (attached) to enable it on my Dell
Inspiron 2600 with an Intel ICH3 AC'97 modem :
auich1 at pci0 dev 31 function 6: i82801CA (ICH3) AC-97 Modem
auich1: interrupting at irq 10
auich1: ac97: Conexant HSD11246 codec; no 3D stereo
auich1: ac97: ext mid 4009<CID1,LINE1>, secondary codec
[...]
audio1 at auich1: full duplex, mmap, independent
With your patched `slmodemd', i'm able to talk to the modem ...
root@calamity [~]# /usr/sbin/slmodemd /dev/sound1
SmartLink Soft Modem: version 2.9.9 Apr 8 2005 12:53:44
symbolic link `/dev/ttySL1' -> `/dev/ttyp4' created.
modem `sound1' created. TTY is `/dev/ttyp4'
Use `/dev/ttySL1' as modem device, Ctrl+C for termination.
root@calamity [~]# cu -p modem
Connected.
at
OK
ati1
SmartLink Soft Modem, 2.9.9
Smart Link Ltd.
OK
ati3
/dev/sound1
modemap driver
OK
atdt3300
NO CARRIER
ERROR
But no luck yet, while trying to dial to some ISP !
Will try again a little later ...
Thanks for all this work.
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.
--HcAYCG3uE/tztfnV
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="netbsd-ac97modem.diff"
Index: sys/dev/ic/ac97.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/ac97.c,v
retrieving revision 1.69
diff -u -r1.69 ac97.c
--- sys/dev/ic/ac97.c 7 Apr 2005 23:24:05 -0000 1.69
+++ sys/dev/ic/ac97.c 8 Apr 2005 11:50:33 -0000
@@ -726,6 +726,8 @@
{ 0x83847600, AC97_VENDOR_ID_MASK, "SigmaTel unknown", },
/* Conexant AC'97 modems -- good luck finding datasheets! */
+ { AC97_CODEC_ID('C', 'X', 'T', 33),
+ 0xffffffff, "Conexant HSD11246", },
{ AC97_CODEC_ID('C', 'X', 'T', 34),
0xffffffff, "Conexant D480 MDC V.92 Modem", },
{ AC97_CODEC_ID('C', 'X', 'T', 0),
Index: sys/dev/pci/auich.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/auich.c,v
retrieving revision 1.92
diff -u -r1.92 auich.c
--- sys/dev/pci/auich.c 7 Apr 2005 23:21:10 -0000 1.92
+++ sys/dev/pci/auich.c 8 Apr 2005 11:50:34 -0000
@@ -360,6 +360,7 @@
#define PCIID_AMD768 PCI_ID_CODE0(AMD, PBC768_AC)
#define PCIID_AMD8111 PCI_ID_CODE0(AMD, PBC8111_AC)
+#define PCIID_ICH3MODEM PCI_ID_CODE0(INTEL, 82801CA_MOD)
#define PCIID_ICH4MODEM PCI_ID_CODE0(INTEL, 82801DB_MOD)
struct auich_devtype {
@@ -391,6 +392,7 @@
static const struct auich_devtype auich_modem_devices[] = {
#ifdef AUICH_ATTACH_MODEM
+ { PCIID_ICH3MODEM, "i82801CA (ICH3) AC-97 Modem", "ICH3MODEM" },
{ PCIID_ICH4MODEM, "i82801DB (ICH4) AC-97 Modem", "ICH4MODEM" },
#endif
{ 0, NULL, NULL },
--HcAYCG3uE/tztfnV--