|
@@ -247,7 +247,7 @@ static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf,
|
|
|
brcmf_dbg(TRACE, "chandef: control %d center %d width %d\n",
|
|
|
ch->chan->center_freq, ch->center_freq1, ch->width);
|
|
|
ch_inf.chnum = ieee80211_frequency_to_channel(ch->center_freq1);
|
|
|
- primary_offset = ch->center_freq1 - ch->chan->center_freq;
|
|
|
+ primary_offset = ch->chan->center_freq - ch->center_freq1;
|
|
|
switch (ch->width) {
|
|
|
case NL80211_CHAN_WIDTH_20:
|
|
|
case NL80211_CHAN_WIDTH_20_NOHT:
|
|
@@ -256,24 +256,21 @@ static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf,
|
|
|
break;
|
|
|
case NL80211_CHAN_WIDTH_40:
|
|
|
ch_inf.bw = BRCMU_CHAN_BW_40;
|
|
|
- if (primary_offset < 0)
|
|
|
+ if (primary_offset > 0)
|
|
|
ch_inf.sb = BRCMU_CHAN_SB_U;
|
|
|
else
|
|
|
ch_inf.sb = BRCMU_CHAN_SB_L;
|
|
|
break;
|
|
|
case NL80211_CHAN_WIDTH_80:
|
|
|
ch_inf.bw = BRCMU_CHAN_BW_80;
|
|
|
- if (primary_offset < 0) {
|
|
|
- if (primary_offset < -CH_10MHZ_APART)
|
|
|
- ch_inf.sb = BRCMU_CHAN_SB_UU;
|
|
|
- else
|
|
|
- ch_inf.sb = BRCMU_CHAN_SB_UL;
|
|
|
- } else {
|
|
|
- if (primary_offset > CH_10MHZ_APART)
|
|
|
- ch_inf.sb = BRCMU_CHAN_SB_LL;
|
|
|
- else
|
|
|
- ch_inf.sb = BRCMU_CHAN_SB_LU;
|
|
|
- }
|
|
|
+ if (primary_offset == -30)
|
|
|
+ ch_inf.sb = BRCMU_CHAN_SB_LL;
|
|
|
+ else if (primary_offset == -10)
|
|
|
+ ch_inf.sb = BRCMU_CHAN_SB_LU;
|
|
|
+ else if (primary_offset == 10)
|
|
|
+ ch_inf.sb = BRCMU_CHAN_SB_UL;
|
|
|
+ else
|
|
|
+ ch_inf.sb = BRCMU_CHAN_SB_UU;
|
|
|
break;
|
|
|
case NL80211_CHAN_WIDTH_80P80:
|
|
|
case NL80211_CHAN_WIDTH_160:
|