From owner-freebsd-hackers Wed Jan 22 16:39:05 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id QAA12659 for hackers-outgoing; Wed, 22 Jan 1997 16:39:05 -0800 (PST) Received: from watermarkgroup.com (lor.watermarkgroup.com [38.246.139.30]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id QAA12646 for ; Wed, 22 Jan 1997 16:39:00 -0800 (PST) Received: from 38.246.139.33 (Kim.watermarkgroup.com) by watermarkgroup.com (4.1/SMI-4.1) id AA18850; Wed, 22 Jan 97 19:37:51 EST Message-Id: <32E6B2C2.124B@watermarkgroup.com> Date: Wed, 22 Jan 1997 19:37:29 -0500 From: Luoqi Chen Organization: The Watermark Group X-Mailer: Mozilla 3.01Gold (Macintosh; I; PPC) Mime-Version: 1.0 To: Bruce Evans Cc: freebsd-hackers@freebsd.org Subject: Re: My sportster internal modem doesn't work after switched to 2.2-BETA References: <199701211839.FAA14689@godzilla.zeta.org.au> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Bruce Evans wrote: > > >After some poking around, I found that the if I sent multiple bytes > >to the modem, some would get lost. So I went to sio.c and changed > >com->tx_fifo_size to 1 from 16, and everything works fine now. > >But I am still wondering if this is a problem with the modem, or with > >the software. It seems that NT is doing the same, sending no more than > >one > >byte at a time. This is not a satisfactory solution, the output FIFO > >is underutilized and CPU is servicing 16 times more interrupts. > > Which version did it work in? The sio driver streams output better sio.c: $Id: sio.c,v 1.147.2.5 1996/12/23 19:59:08 bde Exp $ > than it used to. There used to be a small amount of dead time every > 256(?) characters. Perhaps the internal modem can't quite keep up > and its flow control doesn't work or you're not using flow control. > Reducing com->tx_fifo_size gives flow control a better chance of working. > > Try other values < 16 for com->tx_fifo_size. I tried other values, only 1 worked. How does the flow control inside an internal modem work? Do you need to check MSR_CTS each time you push a byte into the fifo? Or you could check once and fill up the fifo if CTS is set? > > Bruce