From owner-cvs-src@FreeBSD.ORG Thu Jul 31 07:20:09 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 20DF837B401; Thu, 31 Jul 2003 07:20:09 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A251943FB1; Thu, 31 Jul 2003 07:20:08 -0700 (PDT) (envelope-from harti@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6VEK80U059534; Thu, 31 Jul 2003 07:20:08 -0700 (PDT) (envelope-from harti@repoman.freebsd.org) Received: (from harti@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6VEK83N059533; Thu, 31 Jul 2003 07:20:08 -0700 (PDT) Message-Id: <200307311420.h6VEK83N059533@repoman.freebsd.org> From: Hartmut Brandt Date: Thu, 31 Jul 2003 07:20:08 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/hfa fore_aali.h fore_command.c fore_init.c fore_intr.c fore_var.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 14:20:10 -0000 harti 2003/07/31 07:20:08 PDT FreeBSD src repository Modified files: sys/dev/hfa fore_aali.h fore_command.c fore_init.c fore_intr.c fore_var.h Log: Make the driver to work with firmware version 4.1.12 (other 4.X.Y should also do it). Three problems have been encountered: 1. The initialisation command does not work in interrupt mode. Whether this is a firmware bug or a feature is not clear. The original Fore drivers execute the initialize command always in polling mode, so it appears that this behaviour is expected. When we detect a 4.X.Y firmware do busy wait on the command status. 2. The command code of the GET_PROM command has changed. This is an unofficial command anyway. What was GET_PROM in 3.X.Y is CLEAR_STATS in 4.X.Y (although unimplemented in the firmware). We need to use the correct code depending on the firmware. 3. The 4.X.Y firmware can set the error flag in the command status without also setting the completion flag (as the documenation says). Check both variants. An additional field in the per-card structure fu_ft4 is TRUE when we have detected a 4.X.Y firmware. Otherwise it is false. The behaviour of the driver when using a 3.X.Y firmware should be identical to the previous behaviour. This change will enable traffic shaping of (at least one) CBR channels. Revision Changes Path 1.4 +3 -1 src/sys/dev/hfa/fore_aali.h 1.15 +11 -1 src/sys/dev/hfa/fore_command.c 1.14 +50 -3 src/sys/dev/hfa/fore_init.c 1.10 +6 -2 src/sys/dev/hfa/fore_intr.c 1.8 +1 -0 src/sys/dev/hfa/fore_var.h