From owner-svn-src-all@freebsd.org Wed Mar 6 07:54:30 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 359F515077CC; Wed, 6 Mar 2019 07:54:30 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CD10881860; Wed, 6 Mar 2019 07:54:29 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A412388C; Wed, 6 Mar 2019 07:54:29 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x267sTnX073397; Wed, 6 Mar 2019 07:54:29 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x267sTHE073396; Wed, 6 Mar 2019 07:54:29 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201903060754.x267sTHE073396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Wed, 6 Mar 2019 07:54:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r344841 - head/sys/dev/ath/ath_hal X-SVN-Group: head X-SVN-Commit-Author: adrian X-SVN-Commit-Paths: head/sys/dev/ath/ath_hal X-SVN-Commit-Revision: 344841 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CD10881860 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.98 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.98)[-0.976,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 07:54:30 -0000 Author: adrian Date: Wed Mar 6 07:54:29 2019 New Revision: 344841 URL: https://svnweb.freebsd.org/changeset/base/344841 Log: [ath_hal] [ath_hal_ar9300] ANI fixes and preparation for userland control. * The ani function bitmap was being badly used when determining if a command could be used. In hostap modes only a couple of the ANI control parameters are enabled. * The ani function bitmap was not being reset to HAL_ANI_ALL if transitioning from AP -> STA. * Change mrcCckOff to mrcCck - 1 == on, rather than 1 == off. This matches the API used to set the value from userland via the diagnostic API. * Handle OFDM/CCK noise immunity level commands in ar9300_ani_control(). These will only come from userland and it will go and program the rest of the ANI control parameters with the values in the ANI table. * Ensure all of the ANI parameters can be tweaked at runtime, even if they're disabled. Tested: * carambola2 (AR9331), STA/AP modes Modified: head/sys/dev/ath/ath_hal/ah.h Modified: head/sys/dev/ath/ath_hal/ah.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah.h Wed Mar 6 06:39:42 2019 (r344840) +++ head/sys/dev/ath/ath_hal/ah.h Wed Mar 6 07:54:29 2019 (r344841) @@ -893,13 +893,13 @@ typedef struct { } HAL_ANI_STATS; typedef struct { - uint8_t noiseImmunityLevel; /* OFDM */ - uint8_t cckNoiseImmunityLevel; + uint8_t noiseImmunityLevel; /* Global for pre-AR9380; OFDM later*/ + uint8_t cckNoiseImmunityLevel; /* AR9380: CCK specific NI */ uint8_t spurImmunityLevel; uint8_t firstepLevel; uint8_t ofdmWeakSigDetectOff; uint8_t cckWeakSigThreshold; - uint8_t mrcCckOff; + uint8_t mrcCck; /* MRC CCK is enabled */ uint32_t listenTime; /* NB: intentionally ordered so data exported to user space is first */ @@ -958,7 +958,7 @@ typedef struct { */ typedef enum { HAL_ANI_PRESENT = 0, /* is ANI support present */ - HAL_ANI_NOISE_IMMUNITY_LEVEL = 1, /* set level */ + HAL_ANI_NOISE_IMMUNITY_LEVEL = 1, /* set level (global or ofdm) */ HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION = 2, /* enable/disable */ HAL_ANI_CCK_WEAK_SIGNAL_THR = 3, /* enable/disable */ HAL_ANI_FIRSTEP_LEVEL = 4, /* set level */ @@ -966,6 +966,7 @@ typedef enum { HAL_ANI_MODE = 6, /* 0 => manual, 1 => auto (XXX do not change) */ HAL_ANI_PHYERR_RESET = 7, /* reset phy error stats */ HAL_ANI_MRC_CCK = 8, + HAL_ANI_CCK_NOISE_IMMUNITY_LEVEL = 9, /* set level (cck) */ } HAL_ANI_CMD; #define HAL_ANI_ALL 0xffffffff