From owner-freebsd-current Mon Jul 15 23:12:49 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id XAA10073 for current-outgoing; Mon, 15 Jul 1996 23:12:49 -0700 (PDT) Received: from research.gate.nec.co.jp (research.gate.nec.co.jp [202.32.8.49]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id XAA10066 for ; Mon, 15 Jul 1996 23:12:47 -0700 (PDT) Received: from sbl-gw.sbl.cl.nec.co.jp by research.gate.nec.co.jp (8.7.5+2.6Wbeta6/950912) with ESMTP id PAA25532; Tue, 16 Jul 1996 15:12:39 +0900 (JST) Received: from sirius.sbl.cl.nec.co.jp by sbl-gw.sbl.cl.nec.co.jp (8.7.5+2.6Wbeta6/3.3W6) with ESMTP id PAA27715; Tue, 16 Jul 1996 15:12:37 +0900 (JST) X-Authentication-Warning: sbl-gw.sbl.cl.nec.co.jp: Host nao@sirius [133.207.68.90] claimed to be sirius.sbl.cl.nec.co.jp Received: by sirius.sbl.cl.nec.co.jp (8.7.5+2.6Wbeta6/3.3W6) with UUCP id PAA06367; Tue, 16 Jul 1996 15:12:35 +0900 (JST) Date: Tue, 16 Jul 1996 15:12:35 +0900 (JST) From: Naoki Hamada Message-Id: <199607160612.PAA06367@sirius.sbl.cl.nec.co.jp> References: <199607140346.MAA01006@tama.spec.co.jp> <31EAF446.2D93@spec.co.jp> To: amurai@spec.co.jp CC: gibbs@freefall.freebsd.org, joerg_wunsch@uriah.heep.sax.de, j@uriah.heep.sax.de, freebsd-current@freebsd.org In-reply-to: Atsushi Murai's message of "Tue, 16 Jul 1996 10:45:42 +0900" <31EAF446.2D93@spec.co.jp> Subject: Re: Ethernet 3c579(EISA) is functional? (FIXED!) Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Atsushi wrote: >Should I commit this to -current unless nobody has problem? I made it more robust. Not enough test yet, but this should work. -nao diff -ur sys-960612/i386/eisa/3c5x9.c sys/i386/eisa/3c5x9.c --- sys-960612/i386/eisa/3c5x9.c Wed Jun 12 14:02:39 1996 +++ sys/i386/eisa/3c5x9.c Tue Jul 16 11:18:44 1996 @@ -293,6 +293,13 @@ for(i = 0; i < 3; i++) sc->epb->eth_addr[i] = get_e(sc, i); + /* Even we get irq number from board, we should tell him.. + Otherwise we never get a H/W interrupt anymore...*/ + if ( irq == 9 ) + irq = 2; + i = inw(eisa_ioport->addr+ EP_W0_RESOURCE_CFG) & 0x0fff; + outw(eisa_ioport->addr+ EP_W0_RESOURCE_CFG, SET_IRQ(irq) | i); + ep_attach(sc); if(eisa_enable_intr(e_dev, irq)) { diff -ur sys-960612/i386/isa/if_ep.c sys/i386/isa/if_ep.c --- sys-960612/i386/isa/if_ep.c Wed Jun 12 14:03:38 1996 +++ sys/i386/isa/if_ep.c Tue Jul 16 11:20:30 1996 @@ -422,7 +422,7 @@ { struct ep_softc *sc = ep_softc[is->id_unit]; u_short config; - int irq; + int irq, i; sc->ep_connectors = 0; config = inw(IS_BASE + EP_W0_CONFIG_CTRL); @@ -451,7 +451,8 @@ GO_WINDOW(0); if(irq == 9) irq = 2; - outw(BASE + EP_W0_RESOURCE_CFG, SET_IRQ(irq)); + i = inw(BASE + EP_W0_RESOURCE_CFG) & 0x0fff; + outw(BASE + EP_W0_RESOURCE_CFG, SET_IRQ(irq) | i); ep_attach(sc); return 1; diff -ur sys-960612/i386/isa/if_epreg.h sys/i386/isa/if_epreg.h --- sys-960612/i386/isa/if_epreg.h Thu Feb 29 02:19:04 1996 +++ sys/i386/isa/if_epreg.h Tue Jul 16 11:20:45 1996 @@ -363,7 +363,7 @@ * */ -#define SET_IRQ(i) (((i)<<12) | 0xF00) /* set IRQ i */ +#define SET_IRQ(i) ((i)<<12) /* set IRQ i */ /* * FIFO Registers.