From: Arend van Spriel Date: Wed, 3 Apr 2013 10:40:49 +0000 (+0200) Subject: brcmfmac: no flow-control tlv signals when fcmode is NONE X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=290fb763a2a7c79c45d09c8523f37e96446a5a91;p=openwrt%2Fstaging%2Fblogic.git 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 Reviewed-by: Piotr Haber Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c index 430baa249465..22a6eb2c7bf7 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c @@ -1221,16 +1221,12 @@ void brcmf_fws_del_interface(struct brcmf_if *ifp) int brcmf_fws_init(struct brcmf_pub *drvr) { - u32 tlv = 0; + u32 tlv = BRCMF_FWS_FLAGS_RSSI_SIGNALS; int rc; if (!drvr->fw_signals) 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); 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->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); if (rc < 0) { brcmf_err("failed to set bdcv2 tlv signaling\n");