mirror of https://gitee.com/openkylin/linux.git
brcmfmac: add 160MHz in chandef_to_chanspec()
The function chandef_to_chanspec() was not handling 160MHz bandwidth resulting in wrong encoding of the channel. That resulting in firmware rejecting the provided channel specification. Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> Reviewed-by: Franky Lin <franky.lin@broadcom.com> Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
29b68a920f
commit
f491645f03
|
@ -276,8 +276,26 @@ static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf,
|
|||
else
|
||||
ch_inf.sb = BRCMU_CHAN_SB_UU;
|
||||
break;
|
||||
case NL80211_CHAN_WIDTH_80P80:
|
||||
case NL80211_CHAN_WIDTH_160:
|
||||
ch_inf.bw = BRCMU_CHAN_BW_160;
|
||||
if (primary_offset == -70)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_LLL;
|
||||
else if (primary_offset == -50)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_LLU;
|
||||
else if (primary_offset == -30)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_LUL;
|
||||
else if (primary_offset == -10)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_LUU;
|
||||
else if (primary_offset == 10)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_ULL;
|
||||
else if (primary_offset == 30)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_ULU;
|
||||
else if (primary_offset == 50)
|
||||
ch_inf.sb = BRCMU_CHAN_SB_UUL;
|
||||
else
|
||||
ch_inf.sb = BRCMU_CHAN_SB_UUU;
|
||||
break;
|
||||
case NL80211_CHAN_WIDTH_80P80:
|
||||
case NL80211_CHAN_WIDTH_5:
|
||||
case NL80211_CHAN_WIDTH_10:
|
||||
default:
|
||||
|
@ -296,6 +314,7 @@ static u16 chandef_to_chanspec(struct brcmu_d11inf *d11inf,
|
|||
}
|
||||
d11inf->encchspec(&ch_inf);
|
||||
|
||||
brcmf_dbg(TRACE, "chanspec: 0x%x\n", ch_inf.chspec);
|
||||
return ch_inf.chspec;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue