Search Linux Wireless

Re: [PATCH 1/2] ath: define JP DFS patterns separated from FCC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Peter,

Two very minor points:

On Wed, Apr 1, 2015 at 5:16 AM, Peter Oh <poh@xxxxxxxxxxxxxxxx> wrote:
> Separate Japan's DFS pattern from FCC to control PPB threshold.
>
> Currently all the radar detectors use the same threshold rate at
> 50%, but it's not able to achieve if data traffic rate is higher
> than 40% because WLAN baseband used by ath9k and ath10k often fails
> detecting radar pulses, so that SW cannot get enough radar reports
> to achieve the rate.
>
> Since Japan's W53 band requires 50% data traffic during its DFS
> test we need to apply different threshold rate than others on it.
> Hence define its own pattern to give flexibility to threshold rate.
>
> Signed-off-by: Peter Oh <poh@xxxxxxxxxxxxxxxx>
> ---
>  drivers/net/wireless/ath/dfs_pattern_detector.c | 27 ++++++++++++++++---------
>  1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/dfs_pattern_detector.c b/drivers/net/wireless/ath/dfs_pattern_detector.c
> index b1de8c6..8d1e082 100644
> --- a/drivers/net/wireless/ath/dfs_pattern_detector.c
> +++ b/drivers/net/wireless/ath/dfs_pattern_detector.c
> @@ -42,6 +42,7 @@ struct radar_types {
>  /* percentage on ppb threshold to trigger detection */
>  #define MIN_PPB_THRESH 50
>  #define PPB_THRESH(PPB) ((PPB * MIN_PPB_THRESH + 50) / 100)
> +#define PPB_THRESH_JP(PPB, RATE) ((PPB * RATE + 100 - RATE) / 100)

These two PPB_THRESH defines are essentially doing the same math.

Would it make sense to define them as:

#define MIN_PPB_THRESH 50
#define PPB_THRESH_RATE(PPB, RATE) ((PPB * RATE + 100 - RATE) / 100)
#define PPB_THRESH(PPB) PPB_THRESH_RATE(PPB, MIN_PPB_THRESH)

In case some other country defines a specific rate for their DFS patterns?

>  #define PRF2PRI(PRF) ((1000000 + PRF / 2) / PRF)
>  /* percentage of pulse width tolerance */
>  #define WIDTH_TOLERANCE 5
> @@ -96,17 +97,23 @@ static const struct radar_types fcc_radar_types = {
>         .radar_types            = fcc_radar_ref_types,
>  };
>
> -#define JP_PATTERN FCC_PATTERN
> +#define JP_PATTERN(ID, WMIN, WMAX, PMIN, PMAX, PRF, PPB, RATE, CHIRP)  \
> +{                                                              \
> +       ID, WIDTH_LOWER(WMIN), WIDTH_UPPER(WMAX),               \
> +       PMIN - PRI_TOLERANCE,                                   \
> +       PMAX * PRF + PRI_TOLERANCE, PRF, PPB * PRF,             \
> +       PPB_THRESH_JP(PPB, RATE), PRI_TOLERANCE, CHIRP  \
> +}
>  static const struct radar_detector_specs jp_radar_ref_types[] = {
> -       JP_PATTERN(0, 0, 1, 1428, 1428, 1, 18, false),
> -       JP_PATTERN(1, 2, 3, 3846, 3846, 1, 18, false),
> -       JP_PATTERN(2, 0, 1, 1388, 1388, 1, 18, false),
> -       JP_PATTERN(3, 1, 2, 4000, 4000, 1, 18, false),
> -       JP_PATTERN(4, 0, 5, 150, 230, 1, 23, false),
> -       JP_PATTERN(5, 6, 10, 200, 500, 1, 16, false),
> -       JP_PATTERN(6, 11, 20, 200, 500, 1, 12, false),
> -       JP_PATTERN(7, 50, 100, 1000, 2000, 1, 20, false),
> -       JP_PATTERN(5, 0, 1, 333, 333, 1, 9, false),
> +       JP_PATTERN(0, 0, 1, 1428, 1428, 1, 18, 50, false),
> +       JP_PATTERN(1, 2, 3, 3846, 3846, 1, 18, 50, false),
> +       JP_PATTERN(2, 0, 1, 1388, 1388, 1, 18, 50, false),
> +       JP_PATTERN(3, 1, 2, 4000, 4000, 1, 18, 50, false),
> +       JP_PATTERN(4, 0, 5, 150, 230, 1, 23, 50, false),
> +       JP_PATTERN(5, 6, 10, 200, 500, 1, 16, 50, false),
> +       JP_PATTERN(6, 11, 20, 200, 500, 1, 12, 50, false),
> +       JP_PATTERN(7, 50, 100, 1000, 2000, 1, 20, 50, false),
> +       JP_PATTERN(5, 0, 1, 333, 333, 1, 9, 50, false),

If no JP patterns will have CHIRP set, would it make sense to embed
that parameter into the define?

Thanks,

-- 
Julian Calaby

Email: julian.calaby@xxxxxxxxx
Profile: http://www.google.com/profiles/julian.calaby/
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux