18762 Commits

Author SHA1 Message Date
kato
2809dee713 Synced with sys/dev/syscons/syscons.c rev 1.331. 2000-01-13 12:24:43 +00:00
kato
178aa32669 Synced with following changes:
>yokota      2000/01/11 05:39:06 PST
>
>  Modified files:
>    sys/dev/usb          ukbd.c
>    sys/dev/kbd          atkbd.c kbd.c kbdreg.h
>  Log:
>  Rework shifta/ctla/alta key handling.  It appears that there was
>  misunderstanding between the PR originator and me.  I hope I got it
>  right this time.
>
>  Revision  Changes    Path
>  1.22      +4 -1      src/sys/dev/usb/ukbd.c
>  1.21      +1 -8      src/sys/dev/kbd/atkbd.c
>  1.16      +19 -10    src/sys/dev/kbd/kbd.c
>  1.9       +2 -2      src/sys/dev/kbd/kbdreg.h

Submitted by:	yokota
2000-01-13 11:47:42 +00:00
kato
e6878332fc Synced with sys/isa/sio.c rev 1.284. 2000-01-13 11:45:33 +00:00
mdodd
c77b2ab4c1 Remove old copy of if_ed.c; it is no longer used. 2000-01-13 09:30:18 +00:00
mdodd
c87475b549 Set ifq_maxlen. (to default IFQ_MAXLEN) 2000-01-13 09:13:22 +00:00
mdodd
c945c09e3c Allow SMP systems with an MCA bus to work properly.
Reviewed by:	peter
2000-01-13 09:09:02 +00:00
mdodd
a6ceaaf2dd Implement BUS_{GET,SET,DELETE}_RESOURCE methods. 2000-01-13 09:01:46 +00:00
mdodd
1c77c86e65 Correctly test CF. 2000-01-13 08:49:47 +00:00
peter
a043326187 Remove duplicate DEC 21050 PCI-PCI bridge (0x00011011)
Add an entry for the Toshiba Fast Infra Red controller (0x07011179)
2000-01-13 08:40:10 +00:00
mdodd
eac0845d00 Add a few devices IDs and clarify the SiS 85c496 entry. 2000-01-13 08:01:53 +00:00
mckusick
e5a3075fbb Because cylinder group blocks are now written in background,
it is no longer sufficient to get a lock on a buffer to know
that its write has been completed. We have to first get the
lock on the buffer, then check to see if it is doing a
background write. If it is doing background write, we have
to wait for the background write to finish, then check to see
if that fullfilled our dependency, and if not to start another
write. Luckily the explanation is longer than the fix.
2000-01-13 07:20:01 +00:00
mckusick
28d13b9ecf A panic occurs during an fsync when a dirty block associated with
a vnode has not been written (which would clear certain of its
dependencies). The problems arises because fsync with MNT_NOWAIT
no longer pushes all the dirty blocks associated with a vnode. It
skips those that require rollbacks, since they will just get instantly
dirty again. Such skipped blocks are marked so that they will not be
skipped a second time (otherwise circular dependencies would never
clear). So, we fsync twice to ensure that everything will be written
at least once.
2000-01-13 07:17:39 +00:00
mdodd
93d3303e02 Remove the 'at isa? ...' bits for ex0.
Remove the confusing text about pccard and unit numbers for ep0.
2000-01-13 07:01:13 +00:00
mdodd
f9ebb14ac6 Cosmetic cleanups. 2000-01-13 06:55:35 +00:00
mdodd
6020044314 Implement a DEVICE_IDENTIFY method. I want to revisit some of this later
but this is enough to get us going.
2000-01-13 06:52:51 +00:00
mdodd
745a4e432e When I converted this driver to newbus I also cleaned up the code
layout.  It seems that I cleaned it up a bit too much and confused a few

if () {
	if () {
	} else {
	}
}

statements in the obvious manner.

This allows the driver to transmit packets again.  *sigh*
2000-01-13 06:46:02 +00:00
imp
151dabf531 Stop the recurring feeling of deja vu
Stop the recurring feeling of deja vu
Stop the recurring feeling of deja vu
Stop the recurring feeling of deja vu

and debounce the eject messages.  We now mark the socket empty in the
interrupt handler, rather than after we've disabled the socket which
happens "much later".
2000-01-13 06:32:33 +00:00
cg
4d257ee74f attach to non-ac97 neomagic chips and hope that ac97 ones do not have the
same pnpbios id
2000-01-13 06:11:32 +00:00
cg
6ccc3d677e be less verbose 2000-01-13 06:00:57 +00:00
shin
a42e26b36b add a comment for some possible? IPv4 option processing. 2000-01-13 05:21:05 +00:00
shin
d5ae8633fd removed incorrect ip6 length setting for IPv6 tcp reset packet. 2000-01-13 05:18:30 +00:00
shin
5af875fc35 removed an ours case which think a packet destined to loopback interface
with IPv6 loopback addr for its dest or src addr as ours.
2000-01-13 05:12:48 +00:00
shin
ed0d411602 added missing IPV6_PORTRANGE case. 2000-01-13 05:07:42 +00:00
shin
b8a80c0b8f remove unnecessary "$ifdef INET6" 2000-01-13 05:01:27 +00:00
gallatin
137da2d54c add entries for several DEC PCI-PCI bridges & the Cypress PCI-ISA bridge found
on newer alpha workstations and servers
2000-01-13 02:47:36 +00:00
gallatin
358f7018d7 Make this compile on alpha 2000-01-13 02:09:44 +00:00
wpaul
63989277ed Reintroduce the dc_coal() workaround routine for coalescing outbound
packets into a single buffer, and set the DC_TX_COALESCE flag for the
Davicom DM9102 chip. I thought I had escaped this problem, but... This
chip appears to silently corrupt or discard transmitted frames when
using scatter/gather DMA (i.e. DMAing each packet fragment in place
with a separate descriptor). The only way to insure reliable transmission
is to coalesce transmitted packets into a single cluster buffer. (There
may also be an alignment constraint here, but mbuf cluster buffers are
naturally aligned on 2K boundaries, which seems to be good enough.)

The DM9102 driver for Linux written by Davicom also uses this workaround.
Unfortunately, the Davicom datasheet has no errata section describing
this or any other apparently known defect.

Problem noted by: allan_chou@davicom.com.tw
2000-01-12 22:24:05 +00:00
mdodd
dd5364f05a Remove a stray splx(s) call. This fixes the compiler warning.
Submitted by:	gibbs
2000-01-12 17:51:01 +00:00
wpaul
f1033d01ce Apply the same netisr mechanism to transmissions as well. In order to
drive the transmitter, we have to check the interface's send queue in the
TX end of frame handler (i.e. the usb bulk out callback) and push out new
transmissions if the queue has packets in it and the transmitter is
ready. But the txeof handler is also called from a USB callback running
at splusb() too.

Grrr.
2000-01-12 17:46:40 +00:00
luoqi
858958c167 Seconds to ticks conversion was done at the wrong place. 2000-01-12 17:26:42 +00:00
nyan
4cffbf8a8e Merge from sys/conf/files.i386 revision 1.296. 2000-01-12 13:43:23 +00:00
yokota
d7a68849c1 Make the mouse cursor char code configurable via the CONS_MOUSECTL
ioctl.

By popular demand.
2000-01-12 12:30:33 +00:00
deischen
639e3cda8a Add support for detection of the ESS 1878 chip. 2000-01-12 11:16:23 +00:00
mdodd
2ef1bf8423 Speedup if_start routine a little. TX threshold logic needs some more
kicking but these changes get me around 1000 KB/sec.
2000-01-12 06:42:49 +00:00
mdodd
ce45af054b Fix the performance problems I caused by setting ifq_maxlen to 8.
Use IFQ_MAXLEN instead.  This seemed like a good idea at the time since
most 3c509s have all of 2k for their TX fifo.  My intention was to revisit
ifq_maxlen and auto-scale it or something.

ttcp-t: 16777216 bytes in 21.53 real seconds = 761.07 KB/sec +++
ttcp-t: 2771 I/O calls, msec/call = 7.96, calls/sec = 128.72
ttcp-t: 0.0user 2.9sys 0:21real 13% 20i+280d 222maxrss 0+2pf 717+0csw

ttcp-r: 16777216 bytes in 14.11 real seconds = 1161.48 KB/sec +++
ttcp-r: 2050 I/O calls, msec/call = 7.05, calls/sec = 145.33
ttcp-r: 0.0user 1.4sys 0:14real 10% 87i+1198d 196maxrss 0+1pf 1949+186csw

I've got some tweaks that move the TX speed up to the RX speed but I've
got to groom them from the mess I've made of my source tree.

Yelled at by:	wpaul
2000-01-12 05:27:08 +00:00
obrien
7bec37caf3 Sort. 2000-01-12 02:30:42 +00:00
wpaul
38bef851a9 Correctly set the data length when transmitting 802.3 frames (we need to
subtract the length of the SNAP header).
2000-01-12 00:57:27 +00:00
yokota
c861b7fc02 Add opt_ukbd.h. 2000-01-12 00:46:08 +00:00
wpaul
3ec0aff881 Straighten out the logic in kue_setmulti() a little (the case where we
have no multicast entries to add is not handled right).
2000-01-11 18:09:19 +00:00
peter
f955302964 Add $FreeBSD$
Make the alpha linker script more like the i386 version - delete the
/usr/local and egcs directories
2000-01-11 15:35:16 +00:00
peter
63e5e0617e Aiee! I committed the wrong conf/files. Replace the changes for newppbus
with the intended changes.
Drop db_aout.c from files, let db_kld.c do the work.

Noticed by:	bde
2000-01-11 14:54:09 +00:00
yokota
715966bf8a Add a new mechanism, cndbctl(), to tell the console driver that
ddb is entered.  Don't refer to `in_Debugger' to see if we
are in the debugger.  (The variable used to be static in Debugger()
and wasn't updated if ddb is entered via traps and panic anyway.)

- Don't refer to `in_Debugger'.
- Add `db_active' to i386/i386/db_interface.d (as in
  alpha/alpha/db_interface.c).
- Remove cnpollc() stub from ddb/db_input.c.
- Add the dbctl function to syscons, pcvt, and sio. (The function for
  pcvt and sio is noop at the moment.)

Jointly developed by: bde and me

(The final version was tweaked by me and not reviewed by bde.  Thus,
if there is any error in this commit, that is entirely of mine, not
his.)

Some changes were obtained from: NetBSD
2000-01-11 14:54:01 +00:00
yokota
9189b4eba0 Rework shifta/ctla/alta key handling. It appears that there was
misunderstanding between the PR originator and me.  I hope I got it
right this time.
2000-01-11 13:39:05 +00:00
peter
f92401f326 Unused file. This (NetBSD derived) file was obsoleted by kld. 2000-01-11 13:29:10 +00:00
peter
a6ad092de6 Fix a typo in the db_kld.c file - it's kld support not raw a.out support.
Always use db_kld.c for symbol table support as the base kernel maintains
this information.
2000-01-11 13:25:12 +00:00
cg
dfec3bcff1 exclude chips with subdevices specified on a list of non-ac97 chips 2000-01-11 10:37:16 +00:00
mckusick
2ba5b46007 The only known cause of this panic is running out of disk space.
The problem occurs when an indirect block and a data block are
being allocated at the same time. For example when the 13th block
of the file is written, the filesystem needs to allocate the first
indirect block and a data block. If the indirect block allocation
succeeds, but the data block allocation fails, the error code
dellocates the indirect block as it has nothing at which to point.
Unfortunately, it does not deallocate the indirect block's associated
dependencies which then fail when they find the block unexpectedly
gone (ptr == 0 instead of its expected value). The fix is to fsync
the file before doing the block rollback, as the fsync will flush
out all of the dependencies. Once the rollback is done the file
must be fsync'ed again so that the soft updates code does not find
unexpected changes. This approach is much slower than writing the
code to back out the extraneous dependencies, but running out of
disk space is not expected to be a common occurence, so just getting
it right is the main criterion.

PR:		kern/15063
Submitted by:	Assar Westerlund <assar@stacken.kth.se>
2000-01-11 08:27:00 +00:00
mckusick
57887aa35c We cannot proceed to free the blocks of the file until the dependencies
have been cleaned up by deallocte_dependencies(). Once that is done, it
is safe to post the request to free the blocks. A similar change is also
needed for the freefile case.
2000-01-11 06:52:35 +00:00
wpaul
cf16a7efdb Attempt to fix a problem with receiving packets on USB ethernet interfaces.
Packets are received inside USB bulk transfer callbacks, which run at
splusb() (actually splbio()). The packet input queues are meant to be
manipulated at splimp(). However the locking apparently breaks down under
certain circumstances and the input queues can get trampled.

There's a similar problem with if_ppp, which is driven by hardware/tty
interrupts from the serial driver, but which must also manipulate the
packet input queues at splimp(). The fix there is to use a netisr, and
that's the fix I used here. (I can hear you groaning back there. Hush up.)

The usb_ethersubr module maintains a single queue of its own. When a
packet is received in the USB callback routine, it's placed on this
queue with usb_ether_input(). This routine also schedules a soft net
interrupt with schednetisr(). The ISR routine then runs later, at
splnet, outside of the USB callback/interrupt context, and passes the
packet to ether_input(), hopefully in a safe manner.

The reason this is implemented as a separate module is that there are
a limited number of NETISRs that we can use, and snarfing one up for
each driver that needs it is wasteful (there will be three once I get
the CATC driver done). It also reduces code duplication to a certain
small extent. Unfortunately, it also needs to be linked in with the
usb.ko module in order for the USB ethernet drivers to share it.

Also removed some uneeded includes from if_aue.c and if_kue.c

Fix suggested by: peter
Not rejected as a hairbrained idea by: n_hibma
2000-01-10 23:12:54 +00:00
n_hibma
4f552c607e Add an extra debugging message. 2000-01-10 22:33:43 +00:00