brcmfmac: no flow-control tlv signals when fcmode is NONE

The fcmode provided by module parameter defaults to NONE, which
means no flow-control is required. In this case flow-control
signals should not be enabled.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Piotr Haber <phaber@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Arend van Spriel 2013-04-03 12:40:49 +02:00 committed by John W. Linville
parent 47829f4fc4
commit 290fb763a2

View File

@ -1221,16 +1221,12 @@ void brcmf_fws_del_interface(struct brcmf_if *ifp)
int brcmf_fws_init(struct brcmf_pub *drvr) int brcmf_fws_init(struct brcmf_pub *drvr)
{ {
u32 tlv = 0; u32 tlv = BRCMF_FWS_FLAGS_RSSI_SIGNALS;
int rc; int rc;
if (!drvr->fw_signals) if (!drvr->fw_signals)
return 0; return 0;
tlv = BRCMF_FWS_FLAGS_RSSI_SIGNALS |
BRCMF_FWS_FLAGS_XONXOFF_SIGNALS |
BRCMF_FWS_FLAGS_CREDIT_STATUS_SIGNALS;
spin_lock_init(&drvr->fws_spinlock); spin_lock_init(&drvr->fws_spinlock);
drvr->fws = kzalloc(sizeof(*(drvr->fws)), GFP_KERNEL); drvr->fws = kzalloc(sizeof(*(drvr->fws)), GFP_KERNEL);
@ -1243,7 +1239,11 @@ int brcmf_fws_init(struct brcmf_pub *drvr)
drvr->fws->drvr = drvr; drvr->fws->drvr = drvr;
drvr->fws->fcmode = fcmode; drvr->fws->fcmode = fcmode;
/* enable proptxtstatus signaling by default */ /* enable firmware signalling if fcmode active */
if (drvr->fws->fcmode != BRCMF_FWS_FCMODE_NONE)
tlv |= BRCMF_FWS_FLAGS_XONXOFF_SIGNALS |
BRCMF_FWS_FLAGS_CREDIT_STATUS_SIGNALS;
rc = brcmf_fil_iovar_int_set(drvr->iflist[0], "tlv", tlv); rc = brcmf_fil_iovar_int_set(drvr->iflist[0], "tlv", tlv);
if (rc < 0) { if (rc < 0) {
brcmf_err("failed to set bdcv2 tlv signaling\n"); brcmf_err("failed to set bdcv2 tlv signaling\n");