1763 Commits

Author SHA1 Message Date
ache
06397f39e1 Don't pass configured information back to ISA for this subdevices,
it cause conflicts
1997-07-08 15:35:28 +00:00
brian
42967d1e5f Remove useless comparison.
Suggested by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1997-07-08 13:38:58 +00:00
brian
6afea978af YAMF2.2: Handle indirect results of "kbdcontrol -h X"
where X < 25.
1997-07-07 13:42:42 +00:00
fsmp
533efbb677 First cut at code for handling "spurious INTerrupts".
First cut at code for handling CPU stop/restart.

Notes:
	not working properly yet.
1997-07-06 23:32:38 +00:00
fsmp
6980edf209 Added a hook for a "spurious INTerrupt handler". 1997-07-06 22:11:26 +00:00
bde
aebdde56b3 Don't depend on gcc's feature of permitting labels that aren't followed
by a statement.
1997-07-01 00:22:51 +00:00
yokota
acda80dd9d Fixes annoying behavior and a bug regarding the destructive
cursor (CHAR_CURSOR)

1. Reduced the number of calls to set_destructive_cursor().  The
destructive cursor produced noticeable overhead on the system.  It was
caused by draw_cursor_image() calling set_destructive_cursor() every
so often.

set_destructive_cursor() absolutely needs to be called when

a) the character code under the cursor has changed either because
   the cursor moved or because the screen was updated or the mouse
   pointer overlapped the cursor.
b) Or a new font has been loaded,
c) or the video mode has been changed,
d) or the cursor shape has been changed,
e) or the user switched virtual consoles.

2. Turn off the configuration flag CHAR_CURSOR (destructive cursor) in
scattach() if we have a non-VGA card.  The destructive cursor works
only for VGA.

3. Removed redundant calls to set_destructive_cursor() in some places.

4. Fixed the "disappearing mouse pointer" problem. The mouse pointer
looked hidden under the destructive cursor when it overlaped the cursor.

A slightly different version of the patch was reviewd and OKed by
sos and ache.
1997-06-30 13:31:49 +00:00
yokota
4590227899 Add experimental APM support for some laptops.
If the configuration option PSM_HOOKAPM is defined and the APM device
is available, the psm driver will issue the ENABLE command to the
pointing device at the resume APM event if the device was open when
the system went into suspended mode. If the option
PSM_RESETAFTERSUSPEND is specified in addition to PSM_HOOKAPM, the
driver will try to reset the pointing device before sending the
ENABLE command.

Built-in PS/2-type pointing devices in some laptops (all the reports I
heard were about Toshiba models) sometimes don't work immediately
after the system is resumed. The device MAY become available after a
while. The system may exhibit the same symptom in other OS's too
(no, FreeBSD is not the only OS that is suffering :-).

I don't know the correct way of solving this yet, but it's been
reported that issuing the ENABLE command after resumption wakes up the
pointing device.

Without PSM_HOOKAPM, the psm driver behaves in the same way as before.

Problem reported in the bsd-nomads mailing list in Japan.
1997-06-30 12:52:57 +00:00
ache
35c5c5c6c3 dev->id_flags --> flags
(not compiles otherwise)
1997-06-29 22:23:32 +00:00
yokota
19d804ec62 A fix/work-around for ThinkPad 535.
Add a new configuration flag, KBD_NORESET (0x20) to tell scprobe() not
to reset the keyboard.

IBM ThinkPad 535 has the `Fn' key with which the user can perform
certain functions in conjunction with other keys. For example, `Fn' +
PageUP/PageDOWN adjust speaker volume, `Fn' + Home/End change
brightness of LCD screen. It can also be used to suspend the system.

It appears that these functions are implemented at the keyboard level
or the keyboard controller level and totally independent from BIOS or
OS.  But, if the keyboard is reset (as is done in scprobe()), they
become unavailable.  (There are other laptops which have similar
functions associated with the `Fn' key. But, they aren't affected by
keyboard reset.)

ThinkPad 535 doesn't have switches or buttons to adjust brightness and
volume, or to put the system into the suspend mode. Therefore, it is
essential to preserve these `Fn' key functions in FreeBSD. The new
flag make scprobe() skip keyboard reset.

If this flag is not set, scprobe() behaves in the same say as before.

(If we only knew a way to detect ThinkPad 535, we could skip keyboard
reset automatically, but...)
1997-06-29 15:11:40 +00:00
fsmp
13275e43c5 apic_vector.s:
- added Xcpustop IPI code to support stop_cpus()/restart_cpus().
   it is off by default, enable via smptests.h:TEST_CPUSTOP

intr_machdep.h:
 - moved +ICULEN to lower level.
 - added entry for Xcpustop.
1997-06-27 23:48:05 +00:00
gibbs
8023e6ade6 KNF cleanup. 1997-06-27 19:36:27 +00:00
fsmp
dba8ed6331 Modified to use merged/renamed functions:
- get_isa_apic_mask() -> isa_apic_mask()
 - get_isa_apic_irq() && get_eisa_apic_irq() -> isa_apic_pin()
1997-06-25 21:00:00 +00:00
peter
2dc5ff96e7 Preliminary support for per-cpu data pages.
This eliminates a lot of #ifdef SMP type code.  Things like _curproc reside
in a data page that is unique on each cpu, eliminating the expensive macros
like:    #define curproc (SMPcurproc[cpunumber()])

There are some unresolved bootstrap and address space sharing issues at
present, but Steve is waiting on this for other work.  There is still some
strictly temporary code present that isn't exactly pretty.

This is part of a larger change that has run into some bumps, this part is
standalone so it should be safe.  The temporary code goes away when the
full idle cpu support is finished.

Reviewed by: fsmp, dyson
1997-06-22 16:04:22 +00:00
yokota
6d701eaf76 The syscons driver doesn't really check the presence of the display
adapter during the system boot. It always assumes there is at least a
monochrome adapter.

This is rather strange assumption. If there is no dispaly adapter, the
console driver cannot be any good...

In this patch, scinit() is split into two parts; the first part is
now called scvidprobe() which will detect the presence of video card
at the CGA or MONO buffer address and returns TRUE if found. It is
called during sccnprobe() and scprobe(). Both will fail if no video
card is found.

The second part, whose name stays the same as before, scinit(), is
called from sccninit() and scattach() to complete initialization of
the found video card.

The keyboard probe code is moved from scprobe() to sckbdprobe();
scprobe() now calls scvidprobe() and sckbdprobe() to carry out device
probe. (This is rather a cosmetic change, but it sure makes the code
look better organized.)

The problem pointed out by Joerg.
1997-06-22 12:04:36 +00:00
bde
42d8f4d690 Fixed the type of a timeout function and removed casts that hid the
problem.  There was no problem in practice (at least on 386's).
1997-06-14 14:54:55 +00:00
gibbs
d9c6d21f98 Fix two typos in this driver that prevented it from working properly.
PR: kern/3776
Submitted by: flash@hway.ru
1997-06-10 16:07:22 +00:00
ache
26556dc47f While deciding to install irq with unneded "conflicts" keyword,
additionly check that intr vector is non-NULL
1997-06-09 00:53:48 +00:00
ache
c91025daa9 Add safety check in case "conflicts" keyword specified more times than
needed
1997-06-08 17:15:31 +00:00
ache
d219e7f0dd Make "conflicts" keyword work again 1997-06-08 16:43:37 +00:00
ache
163e244be1 Remove no irq -> irq 31 conversion 1997-06-08 12:55:26 +00:00
pst
d3c9fa6b5e Bring back CONSPEED as a last-ditch default if you can't change the speed
any other way.

Requested by: dfr
1997-06-04 16:25:15 +00:00
pst
21afca66c6 If the boot blocks were using the serial port, read the system console
speed using the boot blocks, instead of a hardcoded value stuck in the
kernel.  This way, you can have systems using the same kernel but different
console speeds.

Add a sysctl entry for changing the system console speed.
Lock the user tty speed to match the system console speed.

Nuke CONSPEED.
Reviewed by:	bde
1997-06-04 04:52:40 +00:00
kato
fcb71cf698 Fixed mu-law data. Originator's patch was applied.
PR:		1950
Submitted by:	NAGAO Tadaaki <nagao@cs.titech.ac.jp>
1997-06-03 10:34:40 +00:00
kato
000d29ed47 Fixed order of data transfer.
Reviewed by:	NAGAO Tadaaki <nagao@cs.titech.ac.jp>
Submitted by:	Takuya SHIOZAKI <tshiozak@makino.ise.chuo-u.ac.jp>
1997-06-03 10:25:41 +00:00
kato
4a116b2126 Include <sys/conf.h> 1997-06-03 08:23:26 +00:00
kato
a45f5948d1 Added PC-98 code. 1997-06-02 15:28:10 +00:00
dfr
6ba14cc686 Move interrupt handling code from isa.c to a new file. This should make
isa.c (slightly) more portable and will make my life developing the really
portable version much easier.

Reviewed by:	peter, fsmp
1997-06-02 08:19:06 +00:00
bde
dee3eaece6 Was superseded by ns16550.h 4-5 years ago. 1997-06-02 03:10:10 +00:00
phk
f5c480f8c2 I've given up on the idea of sizing FIFO's. You can set it with a flag
value now, if you know that you have a fifo deeper than 16.
1997-06-01 20:42:01 +00:00
peter
21260a709d on second thoughts, it doesn't even need <machine/ipl.h> either. 1997-06-01 16:03:13 +00:00
peter
e2483e24e0 <machine/spl.h> -> <machine/ipl.h> 1997-06-01 15:59:11 +00:00
kato
25c01defaa Include file update: <machine/spl.h> --> <machine/ipl.h>. 1997-05-31 12:45:37 +00:00
peter
1ef1946e2f Include file updates.. <machine/spl.h> -> <machine/ipl.h>, add
<machine/ipl.h> to those files that were depending on getting SWI_*
implicitly via <machine/cpufunc.h>
1997-05-31 09:27:31 +00:00
peter
c0b8239aff move intrhand2_t from isa_device.h to machine/types.h - it's used far more
than in the isa dependent code.
create intrmask_t in machine/types.h  (replaces "intrmask" typedef from
sys/interrupt.h)

Reviewed by: bde
1997-05-31 09:07:36 +00:00
peter
83a98bc0a2 Store the macro values for SWI_TTY_MASK and SWI_NET_MASK in variables to
that lkm's can use them for fiddling the masks without being dependent on
which mode the kernel is compiled in (SMP or UP).  This is particularly
for ppp_tty.c which has some domain crossing between the net and tty
subsystems.  The values are not used in the spl code, they are for
reference only (ie: the compiled code uses immediate values rather than
an indirect 32 bit address and 32 bit data fetch).
1997-05-31 09:03:52 +00:00
peter
72b61693b5 The SWI_NET_MASK and SWI_TTY_MASK handlers are now back adjacent to the
top of the hardware interrupt handlers.  Apparently this is slightly
faster with the bit scanning instruction that looks these up - this set of
changes reverts the original change.

Reviewed by: bde
1997-05-31 08:59:51 +00:00
peter
ea8d17534e Bruce's original implementation of the splxxx() routines, but as C code
rather than inlines.  These are compiled with -fomit-frame-pointer and
work out pretty close to the original routines, but it might be a fraction
slower.  The reason for doing this is to prevent the SWI_* and HWI_* values
from being compiled into drivers and lkms etc which is one of the things
that prevents the same lkm from being used on both SMP and UP kernels.

This gives us a lot more scope for experimenting with the splxxx
implementaton for SMP parallelism etc.

Reviewed by: bde
1997-05-31 08:57:05 +00:00
peter
10d300a786 Bruce's original definitions for the spl/ipl code when running on the old
PIC's.

Reviewed by: bde
1997-05-31 08:50:34 +00:00
peter
f4cc25da4c Definitions for the spl/ipl code when running on an IO APIC.
Obtained from: fsmp  (part of what Steve added for IO APIC support)
Reviewed by:   bde
1997-05-31 08:49:08 +00:00
stark
a3186f5a8d Submitted by: Rich Murphey (ages ago) and Gene Stark
Hopefully I've done the proper magic to merge changes between 1.17 and
1.17.2.1 into the main trunk.  Description of those changes follows:

Brought in changes sent to me in late 1995 by Rich Murphey.
I cleaned up a few things and am currently running these under
2.2-970205-GAMMA.

The changes deal with software debouncing apparently necessary on
todays faster hardware, and also some problems with the use of the -Select
line for the TW-523 sync.  This driver allows use of +PaperEnd as an
alternative.
1997-05-31 02:39:32 +00:00
fsmp
9872779de2 Added code to manage the local and io APICs as structures. 1997-05-29 05:56:12 +00:00
peter
37a0f54086 No longer need opt_smp.h here 1997-05-29 05:00:35 +00:00
peter
ee55041d22 remove opt_smp.h from this well-included file, minor style police 1997-05-29 04:58:04 +00:00
peter
d1a736837d remove opt_smp.h, minor style police 1997-05-29 04:55:39 +00:00
se
cb4e9a7a1b Fix problem introduced in the CMD640 workaround which could lead
to a NULL pointer dereference.

PR:		kern/3696
Submitted by:	Joel.Faedi@esial.u-nancy.fr
1997-05-27 18:28:08 +00:00
yokota
41dc0592de scprobe() referred to the psm_softc structure even after it was
freed ;-<

PR:		kern/3694
1997-05-27 11:55:41 +00:00
se
b80cb4d64d Yet another fix for configuration mechanism 1 register accesses:
Adjust the data port address by adding the two low order bits of
the register number. The address port takes only a word address
(i.e. ignores the two low order bits written to it).
1997-05-26 21:52:41 +00:00
se
d3b40e61a7 Fix previous fix: The enable bit is bit 31 (0x8000000) and not bit 15. 1997-05-26 21:25:24 +00:00
se
d4c4dc86bf Set enable bit when writing the configuration address in configuration
mode 1. Omission of this bit makes all config register accesses fail in
on recent chip sets ...

(The problem was reported and debug output provided by: Steve Passe)
1997-05-26 21:11:05 +00:00