Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/z8530sc.c
RevisionDateAuthorComments
 1.31  15-Sep-2013  martin Remove unused variable
 1.30  22-May-2009  mrg branches: 1.30.12; 1.30.22; 1.30.26;
add two new functions for z8530tty: zs_chan_lock() and zs_chan_unlock(),
and use them instead of various spl's in the zs.c's.

reviewed by ad and martin.
 1.29  20-Mar-2009  tsutsui Try to avoid zstty hangs on higher speed:

z8530sc.c:
Check pending interrupts in a loop until all requests are handled.
The old comments said it would cause horrible latency to sun3x floppy etc,
but serial ports should have higher priority than disks anyway.

z8530tty.c:
Don't enable and disable TX interrupts on each transmit start and completion
because it could cause possible race conditions.
Instead, set ZSWR0_RESET_TXINT on each TIE interrupt to clear the request
as other kbd drivers attached at zs(4).

Tested on cobalt, macppc, news68k, sparc, and sun3.
 1.28  29-Mar-2008  tsutsui branches: 1.28.4; 1.28.12; 1.28.14; 1.28.18;
Split softc and device_t for zsc(4) and its children.

XXX we should restructure MI APIs and make it really machine independent.
 1.27  12-Nov-2007  ad branches: 1.27.14;
Back out revision 1.26.
 1.26  09-Nov-2007  macallan turn the channel lock into a spin mutex at IPL_NONE so it resembles the
simplelock it used to be
With this my macppc boxes no longer deadlock when init sets up serial ports
 1.25  09-Nov-2007  ad Use zs_lock_init() to set up the chanstate's lock.
 1.24  07-Nov-2007  ad Merge tty changes from the vmlocking branch.
 1.23  04-Mar-2007  christos branches: 1.23.2; 1.23.14; 1.23.16; 1.23.20; 1.23.22;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.22  11-Dec-2005  christos branches: 1.22.26;
merge ktrace-lwp.
 1.21  27-Feb-2005  perry branches: 1.21.4;
nuke trailing whitespace
 1.20  04-Feb-2005  perry de-__P
 1.19  07-Aug-2003  agc branches: 1.19.8; 1.19.10;
Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.18  28-Jan-2003  pk branches: 1.18.2;
Provide locking required by the interrupt handlers running at IPL_SERIAL.
 1.17  24-Sep-2002  ad Deal with the strange SCC wiring on TC IOASIC machines. Thanks to Bill
Studenmund and Jonathan Stone for useful comments.
 1.16  13-Nov-2001  lukem add/cleanup RCSID
 1.15  07-Jul-2001  thorpej branches: 1.15.2; 1.15.4;
bcopy -> memcpy
 1.14  07-Jul-2001  thorpej bcmp -> memcmp
 1.13  25-Jun-2001  wdk Don't reprogram SCC registers unless the values have changed.

Some CMOS Z85C30 SCC's (as used in the SGI Indy and Mips Magnum 3000's)
reset the baud rate generator when a new prescaler is loaded - despite
what is documented in the datasheet.

Avoids "character glitch" problems when line discipline characteristics
are changed at the start of the login process, or during a ftp session
on the /dev/console device.

Tested on -sgimips, -mipsco and -alpha platforms
 1.12  30-Mar-2000  augustss branches: 1.12.6;
Remove register declarations.
 1.11  03-Feb-1999  mycroft branches: 1.11.8;
Catch up with a change to the stint interface.
 1.10  22-Mar-1998  mycroft Read up to 32 bytes. The ESCC *needs* 8, and it doesn't hurt to leave some
slop in case there are clone chips with a deeper FIFO.
 1.9  05-Mar-1998  wrstuden KNF last change
 1.8  05-Mar-1998  wrstuden Make zs_iflush not loop indefinitly. Some Mac PowerBooks lie about having
two SCC channels, and can get stuck in an infinite loop. This change
stops after flushing 4 bytes. Might need upping to 8 bytes if we support
85230 ESCC's.

Idea bounced off of scottr & gwr
 1.7  19-Feb-1998  mycroft Similar changes to com driver:
Arrange to call com_break() and com_modem() at splserial().
It's simpler this way. Really.
 1.6  04-Oct-1997  gwr branches: 1.6.2;
Remove the while loop from zsc_intr_hard(). It caused problems on
some machines, and those that really want to can just call this
function in a loop until it returns zero.
 1.5  17-Dec-1996  gwr branches: 1.5.10;
New version of the z8530 driver that should permit the mac68k port
to use this instead of its own. Also fix warnings, etc.
 1.4  17-May-1996  gwr Rename cs_pclk_div16 to cs_brg_clk to clarify the fact that the
Baud Rate Generator (BRG) clock is not necessarily PCLK/16.
 1.3  10-Apr-1996  gwr Make the ring size configurable in the tty driver.
Make the pseudo-interrupt functions return void.
Call the tty layer at spltty (to be safe).
 1.2  30-Jan-1996  gwr Eliminate remaining direct references to the z8530 chip
to allow the MD access functions to do delays, etc.
 1.1  24-Jan-1996  gwr Reorganized, machine-independent z8530 driver, based on the sparc/sun3 zs.
Uses autoconfig to attach keyboard, mouse, or tty. (See z8530.doc)
 1.5.10.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.6.2.1  05-May-1998  mycroft Pull up 1.7, per request of scottr.
 1.11.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.12.6.3  18-Oct-2002  nathanw Catch up to -current.
 1.12.6.2  14-Nov-2001  nathanw Catch up to -current.
 1.12.6.1  24-Aug-2001  nathanw Catch up with -current.
 1.15.4.2  13-Oct-2001  fvdl Revert the t_dev -> t_devvp change in struct tty. The way that tty
structs are currently used (especially by console ttys) aren't
ready for it, and this will require quite a few changes.
 1.15.4.1  11-Oct-2001  fvdl Work around some evil, like directly calling interrupt functions
from the attach path, which devvp didn't like because of incompletely
inited tty structs.

All the struct tty init stuff should really be deferred to the first
open for all drivers; the structures are idle before then and
shouldn't be referenced.
 1.15.2.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.15.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.18.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.18.2.4  04-Feb-2005  skrll Sync with HEAD.
 1.18.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.18.2.1  03-Aug-2004  skrll Sync with HEAD
 1.19.10.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.10.1  12-Feb-2005  yamt sync with head.
 1.19.8.1  29-Apr-2005  kent sync with -current
 1.21.4.2  15-Nov-2007  yamt sync with head.
 1.21.4.1  03-Sep-2007  yamt sync with head.
 1.22.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.23.22.1  19-Nov-2007  mjf Sync with HEAD.
 1.23.20.1  13-Nov-2007  bouyer Sync with HEAD
 1.23.16.2  09-Jan-2008  matt sync with HEAD
 1.23.16.1  08-Nov-2007  matt sync with -HEAD
 1.23.14.2  14-Nov-2007  joerg Sync with HEAD.
 1.23.14.1  11-Nov-2007  joerg Sync with HEAD.
 1.23.2.1  15-Jul-2007  ad Get pmax working.
 1.27.14.1  03-Apr-2008  mjf Sync with HEAD.
 1.28.18.2  23-Jul-2009  jym Sync with HEAD.
 1.28.18.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.28.14.1  16-Jan-2011  bouyer Pull up following revision(s) (requested by mrg in ticket #1526):
sys/arch/sparc/dev/zs.c: revision 1.115
sys/dev/ic/z8530sc.h: revision 1.26
sys/dev/ic/z8530sc.c: revision 1.30
sys/dev/ic/z8530tty.c: revision 1.127
sys/arch/sparc64/dev/zs.c: revision 1.68
add two new functions for z8530tty: zs_chan_lock() and zs_chan_unlock(),
and use them instead of various spl's in the zs.c's.
reviewed by ad and martin.
 1.28.12.1  28-Apr-2009  skrll Sync with HEAD.
 1.28.4.2  20-Jun-2009  yamt sync with head
 1.28.4.1  04-May-2009  yamt sync with head.
 1.30.26.1  18-May-2014  rmind sync with head
 1.30.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.30.12.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")

RSS XML Feed