Subject: CVS commit: src/sys/arch
To: None <source-changes@NetBSD.org>
From: Tim Rightnour <garbled@netbsd.org>
List: source-changes
Date: 12/11/2007 18:04:20
Module Name:	src
Committed By:	garbled
Date:		Tue Dec 11 18:04:20 UTC 2007

Modified Files:
	src/sys/arch/bebox/bebox: pic_bebox.c
	src/sys/arch/macppc/macppc: pic_heathrow.c pic_ohare.c
	src/sys/arch/ofppc/ofppc: mainbus.c
	src/sys/arch/powerpc/pic: i8259_common.c intr.c pic_openpic.c
	    pic_prepivr.c picvar.h

Log Message:
Fix the endless stream of 7's problem on i8259-like interrupt controllers
once and for all.  The i8259 does not like to be read in a loop, when an
interrupt comes in, it will return a valid value, however, if you keep
reading it until there are no outstanding interrupts, it will return 7
(which is the lpt interrupt).  Change the pic handler to give an argument
to the get_irq functions of mode, which indicates if this is the first
time we are asking, or if we are just rechecking in a loop.  Non-i8259
handlers can safely ignore this argument.

Tested to fix the stream of 7's problem on prep and ofppc.  Got rid of
the nasty hack in ofppc with this too, and the prep machine seems to take
less interrupts now, which is a good thing.


To generate a diff of this commit:
cvs rdiff -r1.2 -r1.3 src/sys/arch/bebox/bebox/pic_bebox.c
cvs rdiff -r1.2 -r1.3 src/sys/arch/macppc/macppc/pic_heathrow.c \
    src/sys/arch/macppc/macppc/pic_ohare.c
cvs rdiff -r1.17 -r1.18 src/sys/arch/ofppc/ofppc/mainbus.c
cvs rdiff -r1.2 -r1.3 src/sys/arch/powerpc/pic/i8259_common.c \
    src/sys/arch/powerpc/pic/pic_openpic.c \
    src/sys/arch/powerpc/pic/pic_prepivr.c src/sys/arch/powerpc/pic/picvar.h
cvs rdiff -r1.3 -r1.4 src/sys/arch/powerpc/pic/intr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.