On Tue, Sep 10, 2013 at 10:39 AM, Luca Coelho <luca@xxxxxxxxx> wrote: > On Tue, 2013-09-03 at 17:34 +0300, Eliad Peller wrote: >> From: Ido Reis <idor@xxxxxx> >> >> This is a fix for channels 52,56,60,64 bit translation. >> >> Reported-by: Yaniv Machani <yanivma@xxxxxx> >> Signed-off-by: Ido Reis <idor@xxxxxx> >> Signed-off-by: Victor Goldenshtein <victorg@xxxxxx> >> Signed-off-by: Eliad Peller <eliad@xxxxxxxxxx> >> --- >> drivers/net/wireless/ti/wlcore/cmd.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c >> index e3ae425..1cb3296 100644 >> --- a/drivers/net/wireless/ti/wlcore/cmd.c >> +++ b/drivers/net/wireless/ti/wlcore/cmd.c >> @@ -1613,8 +1613,10 @@ static int wlcore_get_reg_conf_ch_idx(enum ieee80211_band band, u16 ch) >> case IEEE80211_BAND_5GHZ: >> if (ch >= 8 && ch <= 16) >> idx = ((ch-8)/4 + 18); >> - else if (ch >= 34 && ch <= 64) >> + else if (ch >= 34 && ch <= 48) >> idx = ((ch-34)/2 + 3 + 18); >> + else if (ch >= 52 && ch <= 64) >> + idx = ((ch-52)/4 + 11 + 18); >> else if (ch >= 100 && ch <= 140) >> idx = ((ch-100)/4 + 15 + 18); >> else if (ch >= 149 && ch <= 165) > > Hmmm... I don't have a clue what is going on here. I don't know how I > let this function pass as is originally, shame on me. :) > :) > The change probably makes things work better, since someone apparently > saw a bug in real life and reported it, but can anyone explain what is > going on during this translation? Aren't we losing data here? Eg. > channels 8, 9, 10 and 11 all use the same bit in the firmware command > bitmask? > the 8-16 indeed looks weird, as the driver indeed declares supports for channels 7,8,9,11... the other conditions are a simple attempt to reduce the gap between the channels (e.g. no channels between 64 and 100) in order to get a minimized bitmap. since the gap between the defined channels in the 5ghz band is usually 2/4 (36->38 vs. 60->64) the other calculations seems fine (i didn't dig into them as well, though). i'll try getting some more information from the fw guys regarding the 8-16 range. Eliad. -- 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