Commit f491645f authored by Arend van Spriel's avatar Arend van Spriel Committed by Kalle Valo

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: default avatarHante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: default avatarFranky Lin <franky.lin@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 29b68a92
......@@ -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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment