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? -- Luca. -- 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