On Mon, Nov 27, 2017 at 09:39:03PM +0100, Stefan Sperling wrote:
> 
> This makes athn(4) report similar RSSI values as iwn(4) does,
> instead of bugos positive dBm values. The driver forgot about
> adding the default noisefloor to measured RSSI values.
> 
> The same is already done in the USB athn(4) driver.
> 
> It looks like noisefloor calibration is not yet enabled in this driver.
> If that was fixed later, we could read the actual noisefloor from hardware.
> Enabling noisefloor calibration might also address other known issues.

ok kevlo@

> Index: ar5008.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/ar5008.c,v
> retrieving revision 1.45
> diff -u -p -r1.45 ar5008.c
> --- ar5008.c  17 Jul 2017 14:25:29 -0000      1.45
> +++ ar5008.c  27 Nov 2017 20:24:20 -0000
> @@ -925,6 +925,7 @@ ar5008_rx_process(struct athn_softc *sc)
>       /* Send the frame to the 802.11 layer. */
>       rxi.rxi_flags = 0;      /* XXX */
>       rxi.rxi_rssi = MS(ds->ds_status4, AR_RXS4_RSSI_COMBINED);
> +     rxi.rxi_rssi += AR_DEFAULT_NOISE_FLOOR;
>       rxi.rxi_tstamp = ds->ds_status2;
>       ieee80211_input(ifp, m, ni, &rxi);
>  
> @@ -1927,7 +1928,7 @@ ar5008_bb_load_noisefloor(struct athn_so
>  
>       /* Restore noisefloor values to initial (max) values. */
>       for (i = 0; i < AR_MAX_CHAINS; i++)
> -             nf[i] = nf_ext[i] = -50 * 2;
> +             nf[i] = nf_ext[i] = AR_DEFAULT_NOISE_FLOOR;
>       ar5008_write_noisefloor(sc, nf, nf_ext);
>  }
>  
> Index: athnreg.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/athnreg.h,v
> retrieving revision 1.20
> diff -u -p -r1.20 athnreg.h
> --- athnreg.h 19 May 2017 11:42:48 -0000      1.20
> +++ athnreg.h 27 Nov 2017 20:13:48 -0000
> @@ -1449,6 +1449,8 @@
>  #define AR_CTL_2GHT40        7
>  #define AR_CTL_5GHT40        8
>  
> +#define AR_DEFAULT_NOISE_FLOOR (-95)
> +
>  /*
>   * Macros to access registers.
>   */
> 
> 

Reply via email to