From owner-freebsd-drivers@FreeBSD.ORG Wed Apr 16 09:00:51 2008 Return-Path: Delivered-To: freebsd-drivers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6914106566C for ; Wed, 16 Apr 2008 09:00:51 +0000 (UTC) (envelope-from sogabe@iij.ad.jp) Received: from otm-mgo00.iij.ad.jp (otm-mgo00.iij.ad.jp [210.138.20.174]) by mx1.freebsd.org (Postfix) with ESMTP id 6C39F8FC13 for ; Wed, 16 Apr 2008 09:00:51 +0000 (UTC) (envelope-from sogabe@iij.ad.jp) DKIM-Signature: v=1;a=rsa-sha256;c=relaxed/simple;d=iij.ad.jp;h=Message-ID: Date:From:MIME-Version:To:Subject:Content-Type:Content-Transfer-Encoding; i= sogabe@iij.ad.jp; s=omgo0; t=1208335148; x=1209544748; bh=kL48KWo7H9PWCbblNR9oAOv iVR5rajtMehQkC2UhJQI=; b=nYhpwcVAIHZcY5P94QCgcIM5mf8z9Pnze94IQEQ4nBvR9RZ3OelIz oQ9zYcPK/DUlh0UgJn/zkg6hbmbycWZSM+EZuJ6WDJAQyFuJoctkNxoE/kluq7F4cvUoPw3P8hagL /rB3yvyBBRA3d9MwUYmU+OUpQgHmwgF+Gvdv1YQNc=; Received: OTM-MO(otm-mgo00) id m3G8d8DK078685; Wed, 16 Apr 2008 17:39:08 +0900 (JST) Received: OTM-MIX(otm-mix00) id m3G8d8Sj081054; Wed, 16 Apr 2008 17:39:08 +0900 (JST) Received: from [192.168.184.115] ([192.168.184.115]) by rsmtp.iij.ad.jp (OTM-MR/rsmtp01) id m3G8d7xv044139 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Wed, 16 Apr 2008 17:39:08 +0900 (JST) Message-ID: <4805BBA7.60806@iij.ad.jp> Date: Wed, 16 Apr 2008 17:41:11 +0900 From: Sogabe Takashi User-Agent: Thunderbird 2.0.0.12 (Windows/20080213) MIME-Version: 1.0 To: freebsd-drivers@freebsd.org Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Subject: question: workaround for AX88190 (dev/ed/if_ed.c) X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Apr 2008 09:00:51 -0000 Hi all, Does anyone know what kind of problems about following workaround-code? I read asix datasheets, but corresponding problem is not described. (in sys/dev/ed/if_ed.c) /* * Ethernet interface interrupt processor */ void edintr(void *arg) { ... /* * XXX workaround for AX88190 * We limit this to 5000 iterations. At 1us per inb/outb, * this translates to about 15ms, which should be plenty * of time, and also gives protection in the card eject * case. */ if (sc->chip_type == ED_CHIP_TYPE_AX88190) { count = 5000; /* 15ms */ while (count-- && (ed_nic_inb(sc, ED_P0_ISR) & isr)) { ed_nic_outb(sc, ED_P0_ISR,0); ed_nic_outb(sc, ED_P0_ISR,isr); } if (count == 0) break; } ... } -- sogabe@iij.ad.jp