[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-wireless
Subject:    Re: [PATCH] ath9k: [DFS] add pulse width tolerance for ETSI
From:       Zefir Kurtisi <zefir.kurtisi () neratec ! com>
Date:       2012-10-31 14:38:50
Message-ID: 509137FA.8070801 () neratec ! com
[Download RAW message or body]

On 10/31/2012 02:57 PM, Felix Fietkau wrote:
> On 2012-10-31 2:32 PM, Hauke Mehrtens wrote:
> > On 10/31/2012 12:23 PM, Zefir Kurtisi wrote:
> > > Add 5% width tolerance for radar patterns defined by ETSI.
> > > 
> > > Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
> > > ---
> > > .../net/wireless/ath/ath9k/dfs_pattern_detector.c  |    7 ++++++-
> > > 1 files changed, 6 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/drivers/net/wireless/ath/ath9k/dfs_pattern_detector.c \
> > > b/drivers/net/wireless/ath/ath9k/dfs_pattern_detector.c index 3b12914..24877b0 \
> > >                 100644
> > > --- a/drivers/net/wireless/ath/ath9k/dfs_pattern_detector.c
> > > +++ b/drivers/net/wireless/ath/ath9k/dfs_pattern_detector.c
> > > @@ -42,10 +42,15 @@ struct radar_types {
> > > #define MIN_PPB_THRESH	50
> > > #define PPB_THRESH(PPB) ((PPB * MIN_PPB_THRESH + 50) / 100)
> > > #define PRF2PRI(PRF) ((1000000 + PRF / 2) / PRF)
> > > +/* percentage of pulse width tolerance */
> > > +#define WIDTH_TOLERANCE 5
> > > +#define WIDTH_LOWER(X) ((X*(100-WIDTH_TOLERANCE)+50)/100)
> > > +#define WIDTH_UPPER(X) ((X*(100+WIDTH_TOLERANCE)+50)/100)
> > ^^^
> > Why are you adding 50 there? If you want to just add 5% tolerance, then
> > the +50 is wrong there, but I do not know anything about radar patterns
> > defined by ETSI.
> I think the 50 is correct here. It's not the tolerance (which is already
> included via WIDTH_TOLERANCE in that macro), it's to account for
> rounding issues.
> Having said that, I wonder if it shouldn't be -50 instead of +50 in
> WIDTH_LOWER().
> 
> - Felix
> 
Right (you were faster on clarifying, thanks ;)).

As for the -50: the macros do rounding to the nearest int, while your
proposal would resemble a floor(), which would result in the values
being decremented from their current value. Given that 5us would be
corrected to 4us, I think it is better to go for the round() approach to
keep detection balanced.

It is maybe not relevant at all for the lower ranges, I came up with the
modification since we had failures detecting type 4 patterns with
maximum pulse width including margin with a total of 31us.

(FYI, other than that, the DFS detector works well enough for
certification by ETSI.)


Cheers,
Zefir

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic