From owner-freebsd-hackers Wed Mar 22 20:15:17 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id UAA28096 for hackers-outgoing; Wed, 22 Mar 1995 20:15:17 -0800 Received: from hq.icb.chel.su (icb-rich-gw.icb.chel.su [193.125.10.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id UAA28090 for ; Wed, 22 Mar 1995 20:15:02 -0800 Received: from localhost (babkin@localhost) by hq.icb.chel.su (8.6.5/8.6.5) id JAA03926; Thu, 23 Mar 1995 09:07:27 -0500 From: "Serge A. Babkin" Message-Id: <199503231407.JAA03926@hq.icb.chel.su> Subject: Re: Fix for 3C509 (ep) driver To: phk@ref.tfs.com (Poul-Henning Kamp) Date: Thu, 23 Mar 1995 09:07:26 -0500 (GMT-0500) Cc: freebsd-hackers@FreeBSD.org In-Reply-To: <199503220845.AAA04589@ref.tfs.com> from "Poul-Henning Kamp" at Mar 22, 95 00:45:07 am X-Mailer: ELM [version 2.4 PL23] Content-Type: text Content-Length: 2173 Sender: hackers-owner@FreeBSD.org Precedence: bulk I done some fixes in ep driver: #start here cd /usr/src/sys/i386/isa patch if_ep.c < /* > * March 23 1995 > * > * Promiscuous mode added and interrupt logic slightly changed > * to reduce the number of adapter failures (based on logic of > * BSDI's ef driver) by: > * Serge Babkin > * Chelindbank (Chelyabinsk, Russia) > * babkin@hq.icb.chel.su > */ > 454,455c465,470 < outw(BASE + EP_COMMAND, SET_RX_FILTER | FIL_INDIVIDUAL | < FIL_GROUP | FIL_BRDCST); --- > if(ep_ftst(F_PROMISC)) > outw(BASE + EP_COMMAND, SET_RX_FILTER | FIL_INDIVIDUAL | > FIL_GROUP | FIL_BRDCST | FIL_ALL); > else > outw(BASE + EP_COMMAND, SET_RX_FILTER | FIL_INDIVIDUAL | > FIL_GROUP | FIL_BRDCST); 646,647c661,662 < outw(BASE + EP_COMMAND, SET_INTR_MASK); /* disable all Ints */ < outw(BASE + EP_COMMAND, C_INTR_LATCH); /* ACK int Latch */ --- > rescan: > /* outw(BASE + EP_COMMAND, SET_INTR_MASK); /* disable all Ints */ 675c690 < printf("ep%d: Status: %x\n", unit, status); --- > printf("ep%d: Status: %x\n", unit, status); 719c734,739 < outw(BASE + EP_COMMAND, SET_INTR_MASK | S_5_INTS); --- > /* outw(BASE + EP_COMMAND, SET_INTR_MASK | S_5_INTS); */ > > outw(BASE + EP_COMMAND, C_INTR_LATCH); /* ACK int Latch */ > > if ((status = inw(BASE + EP_STATUS)) & S_5_INTS) > goto rescan; 1018a1039,1048 > > if ( (ifp->if_flags & IFF_PROMISC) && !ep_ftst(F_PROMISC) ) { > ep_fset(F_PROMISC); > epinit(ifp->if_unit); > } > else if( !(ifp->if_flags & IFF_PROMISC) && ep_ftst(F_PROMISC) ) { > ep_frst(F_PROMISC); > epinit(ifp->if_unit); > } > EOF patch if_epreg.h < /* > * March 23 1995 > * > * Promiscuous mode added and interrupt logic slightly changed > * to reduce the number of adapter failures (based on logic of > * BSDI's ef driver) by: > * Serge Babkin > * Chelindbank (Chelyabinsk, Russia) > * babkin@hq.icb.chel.su > */ 57a68 > #define F_PROMISC 0x8 EOF # that's all Serge Babkin ! (babkin@hq.icb.chel.su) ! Headquarter of Joint Stock Bank "Chelindbank" ! Chelyabinsk, Russia