From owner-cvs-all Wed Oct 25 16:46:36 2000 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id EB26B37B479; Wed, 25 Oct 2000 16:46:32 -0700 (PDT) Received: (from wpaul@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id QAA62333; Wed, 25 Oct 2000 16:46:31 -0700 (PDT) (envelope-from wpaul@FreeBSD.org) Message-Id: <200010252346.QAA62333@freefall.freebsd.org> From: Bill Paul Date: Wed, 25 Oct 2000 16:46:31 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/pci if_dc.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG wpaul 2000/10/25 16:46:31 PDT Modified files: sys/pci if_dc.c Log: Set the DC_TX_INTR_ALWAYS and DC_TX_STORENFWD flags for the Davicom DM9100/DM9102 chips. Do not set DC_TX_ONE. The DC_TX_USE_TX_INTR flag causes dc_encap() to set the 'interrupt on TX completion' bit only once every 64 packets. This is an attempt to reduce the number of interrupts generated by the chip. You're supposed to get a 'no more TX buffers left' interrupt once you hit the last packet whether you ask for one or not, however it seems the Davicom chip doesn't generate this interrupt, or at least it doesn't generate it under the same circumstances. The result is that if you transmit n packets, where n is less than 64, and then wait 5 seconds, you'll get a watchdog timeout whether you want one or not. The DC_TX_INTR_ALWAYS causes dc_encap() to request an interrupt for every frame. I'm still waiting on confirmation from a couple of users to see if this fixes their problems with the Davicom DM9102 before I merge this into -stable, but this fixed the problem for me in my own testing so I'm willing to make the change to -current right away. Revision Changes Path 1.31 +4 -4 src/sys/pci/if_dc.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message