Skip to content

Commit

Permalink
brcmfmac: Silence error messages about unsupported firmware features
Browse files Browse the repository at this point in the history
KMSG is flooded with error messages about unsupported firmware
features of BCM4329 chip. The GET_ASSOCLIST error became especially
noisy with a newer NetworkManager version of Ubuntu 21.04. Turn the
noisy error messages into info messages and print them out only once.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210511211549.30571-2-digetx@gmail.com
  • Loading branch information
Dmitry Osipenko authored and Kalle Valo committed Jun 23, 2021
1 parent 761025b commit 78f0a64
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
16 changes: 13 additions & 3 deletions drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -2895,8 +2895,13 @@ brcmf_cfg80211_dump_station(struct wiphy *wiphy, struct net_device *ndev,
&cfg->assoclist,
sizeof(cfg->assoclist));
if (err) {
bphy_err(drvr, "BRCMF_C_GET_ASSOCLIST unsupported, err=%d\n",
err);
/* GET_ASSOCLIST unsupported by firmware of older chips */
if (err == -EBADE)
bphy_info_once(drvr, "BRCMF_C_GET_ASSOCLIST unsupported\n");
else
bphy_err(drvr, "BRCMF_C_GET_ASSOCLIST failed, err=%d\n",
err);

cfg->assoclist.count = 0;
return -EOPNOTSUPP;
}
Expand Down Expand Up @@ -6851,7 +6856,12 @@ static int brcmf_setup_wiphybands(struct brcmf_cfg80211_info *cfg)

err = brcmf_fil_iovar_int_get(ifp, "rxchain", &rxchain);
if (err) {
bphy_err(drvr, "rxchain error (%d)\n", err);
/* rxchain unsupported by firmware of older chips */
if (err == -EBADE)
bphy_info_once(drvr, "rxchain unsupported\n");
else
bphy_err(drvr, "rxchain error (%d)\n", err);

nchain = 1;
} else {
for (nchain = 0; rxchain; nchain++)
Expand Down
11 changes: 8 additions & 3 deletions drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,14 @@ static void _brcmf_set_multicast_list(struct work_struct *work)
/*Finally, pick up the PROMISC flag */
cmd_value = (ndev->flags & IFF_PROMISC) ? true : false;
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PROMISC, cmd_value);
if (err < 0)
bphy_err(drvr, "Setting BRCMF_C_SET_PROMISC failed, %d\n",
err);
if (err < 0) {
/* PROMISC unsupported by firmware of older chips */
if (err == -EBADE)
bphy_info_once(drvr, "BRCMF_C_SET_PROMISC unsupported\n");
else
bphy_err(drvr, "Setting BRCMF_C_SET_PROMISC failed, err=%d\n",
err);
}
brcmf_configure_arp_nd_offload(ifp, !cmd_value);
}

Expand Down
4 changes: 4 additions & 0 deletions drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ void __brcmf_err(struct brcmf_bus *bus, const char *func, const char *fmt, ...);
##__VA_ARGS__); \
} while (0)

#define bphy_info_once(drvr, fmt, ...) \
wiphy_info_once((drvr)->wiphy, "%s: " fmt, __func__, \
##__VA_ARGS__)

#if defined(DEBUG) || defined(CONFIG_BRCM_TRACING)

/* For debug/tracing purposes treat info messages as errors */
Expand Down

0 comments on commit 78f0a64

Please sign in to comment.