From owner-freebsd-wireless@FreeBSD.ORG Fri Feb 22 10:11:51 2013 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 13DA68BB for ; Fri, 22 Feb 2013 10:11:51 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wg0-f54.google.com (mail-wg0-f54.google.com [74.125.82.54]) by mx1.freebsd.org (Postfix) with ESMTP id A91DC324 for ; Fri, 22 Feb 2013 10:11:50 +0000 (UTC) Received: by mail-wg0-f54.google.com with SMTP id fm10so387394wgb.9 for ; Fri, 22 Feb 2013 02:11:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:date:x-google-sender-auth:message-id :subject:from:to:content-type; bh=4Qj/o/40FTV444pm7A8yU7ezhELmKfTlVnL0GYUGVYI=; b=Nuda9tk5fvR8fxcU21YXBcoWkURShhGQTBPgoJYt9JzpiaEFhFsM9+yOoQZOsZ0otE c+e+spFsx5D1vUwkNEuq/oTdngdpwAdxtr7Tp5PVoQ4W2cAjRo08sQ8ombtXJNvCfdfF LGUQM/ADGIm7qxo//aZ3jYU+n0CxvEGefV4MYGQ6+CcBtYAkFd2an8xTWr+GhQry0oeZ DHMQyzCDGNRI5BmIfpxcn3H5YBkKaYUZVF47ZdK29ejIfWK8Kp6zd6Gf9sOdIuCQa4vl 8SHOxfPhnzg4Gmn+qoQbtxOgJDCUqYIYxVg+12xI/mq5Oa4MCt6mmwqv62HoRFzjtn9N ZdMg== MIME-Version: 1.0 X-Received: by 10.180.98.198 with SMTP id ek6mr2203949wib.7.1361527904519; Fri, 22 Feb 2013 02:11:44 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.216.74.194 with HTTP; Fri, 22 Feb 2013 02:11:44 -0800 (PST) Date: Fri, 22 Feb 2013 02:11:44 -0800 X-Google-Sender-Auth: hV26Y4H5WxO4k44m9Z0Wcs1fyNI Message-ID: Subject: [rft] ath - tx/rx chainmask tidyup in preparation for AR9380 support From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Feb 2013 10:11:51 -0000 Hi, As part of the AR9380 support that's hopefully appearing soon, I finally found the motivation to tidy up how the chainmask handling is done. The summary: * introduce a new HAL method that changes the currently configured TX/RX chainmask; * leave the TX chainmask as 1 for non-HT and the hardware default for HT; * leave the RX chainmask as the hardware default for HT; * push the chainmask decision making into the driver - and have it done before each call to ath_hal_reset() TODO: * upon a channel reset, I need to absolutely make sure that anything that's in the hardware queue gets dequeued and requeued with whatever the new rate control information is. This includes channel width changes and chainmask changes. I'd appreciate it if people running ath(4) on -HEAD would try this out. It shouldn't break non-11n NICs but I should test those out too. http://people.freebsd.org/~adrian/ath/20130222-ath-chainmask-ctrl-1.diff Thanks, Adrian