aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch')
-rw-r--r--package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch1584
1 files changed, 1584 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch b/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch
new file mode 100644
index 0000000000..066ad99e91
--- /dev/null
+++ b/package/kernel/mac80211/patches/339-v5.1-0009-brcmfmac-use-bphy_err-in-all-wiphy-related-code.patch
@@ -0,0 +1,1584 @@
+From dcb1471bc6d0541d636c7ecd9239573304842884 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Date: Tue, 19 Feb 2019 23:42:19 +0100
+Subject: [PATCH] brcmfmac: use bphy_err() in all wiphy-related code
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This recently added macro provides more meaningful error messages thanks
+to identifying a specific wiphy. It's especially important on systems
+with few cards supported by the same (brcmfmac) driver.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../broadcom/brcm80211/brcmfmac/bcdc.c | 22 ++---
+ .../broadcom/brcm80211/brcmfmac/common.c | 39 ++++----
+ .../broadcom/brcm80211/brcmfmac/core.c | 74 ++++++++--------
+ .../broadcom/brcm80211/brcmfmac/feature.c | 8 +-
+ .../broadcom/brcm80211/brcmfmac/fweh.c | 25 +++---
+ .../broadcom/brcm80211/brcmfmac/fwil.c | 10 +--
+ .../broadcom/brcm80211/brcmfmac/fwsignal.c | 38 ++++----
+ .../broadcom/brcm80211/brcmfmac/msgbuf.c | 65 ++++++++------
+ .../broadcom/brcm80211/brcmfmac/p2p.c | 88 +++++++++++--------
+ .../broadcom/brcm80211/brcmfmac/pno.c | 22 +++--
+ .../broadcom/brcm80211/brcmfmac/proto.c | 6 +-
+ 11 files changed, 224 insertions(+), 173 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
+@@ -169,8 +169,8 @@ brcmf_proto_bcdc_query_dcmd(struct brcmf
+
+ ret = brcmf_proto_bcdc_msg(drvr, ifidx, cmd, buf, len, false);
+ if (ret < 0) {
+- brcmf_err("brcmf_proto_bcdc_msg failed w/status %d\n",
+- ret);
++ bphy_err(drvr, "brcmf_proto_bcdc_msg failed w/status %d\n",
++ ret);
+ goto done;
+ }
+
+@@ -186,9 +186,9 @@ retry:
+ if ((id < bcdc->reqid) && (++retries < RETRIES))
+ goto retry;
+ if (id != bcdc->reqid) {
+- brcmf_err("%s: unexpected request id %d (expected %d)\n",
+- brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id,
+- bcdc->reqid);
++ bphy_err(drvr, "%s: unexpected request id %d (expected %d)\n",
++ brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id,
++ bcdc->reqid);
+ ret = -EINVAL;
+ goto done;
+ }
+@@ -234,9 +234,9 @@ brcmf_proto_bcdc_set_dcmd(struct brcmf_p
+ id = (flags & BCDC_DCMD_ID_MASK) >> BCDC_DCMD_ID_SHIFT;
+
+ if (id != bcdc->reqid) {
+- brcmf_err("%s: unexpected request id %d (expected %d)\n",
+- brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id,
+- bcdc->reqid);
++ bphy_err(drvr, "%s: unexpected request id %d (expected %d)\n",
++ brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id,
++ bcdc->reqid);
+ ret = -EINVAL;
+ goto done;
+ }
+@@ -299,8 +299,8 @@ brcmf_proto_bcdc_hdrpull(struct brcmf_pu
+ }
+ if (((h->flags & BCDC_FLAG_VER_MASK) >> BCDC_FLAG_VER_SHIFT) !=
+ BCDC_PROTO_VER) {
+- brcmf_err("%s: non-BCDC packet received, flags 0x%x\n",
+- brcmf_ifname(tmp_if), h->flags);
++ bphy_err(drvr, "%s: non-BCDC packet received, flags 0x%x\n",
++ brcmf_ifname(tmp_if), h->flags);
+ return -EBADE;
+ }
+
+@@ -379,7 +379,7 @@ int brcmf_proto_bcdc_attach(struct brcmf
+
+ /* ensure that the msg buf directly follows the cdc msg struct */
+ if ((unsigned long)(&bcdc->msg + 1) != (unsigned long)bcdc->buf) {
+- brcmf_err("struct brcmf_proto_bcdc is not correctly defined\n");
++ bphy_err(drvr, "struct brcmf_proto_bcdc is not correctly defined\n");
+ goto fail;
+ }
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+@@ -89,6 +89,7 @@ struct brcmf_mp_global_t brcmf_mp_global
+
+ void brcmf_c_set_joinpref_default(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ struct brcmf_join_pref_params join_pref_params[2];
+ int err;
+
+@@ -105,11 +106,12 @@ void brcmf_c_set_joinpref_default(struct
+ err = brcmf_fil_iovar_data_set(ifp, "join_pref", join_pref_params,
+ sizeof(join_pref_params));
+ if (err)
+- brcmf_err("Set join_pref error (%d)\n", err);
++ bphy_err(drvr, "Set join_pref error (%d)\n", err);
+ }
+
+ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ s8 eventmask[BRCMF_EVENTING_MASK_LEN];
+ u8 buf[BRCMF_DCMD_SMLEN];
+ struct brcmf_rev_info_le revinfo;
+@@ -121,7 +123,7 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
+ sizeof(ifp->mac_addr));
+ if (err < 0) {
+- brcmf_err("Retrieving cur_etheraddr failed, %d\n", err);
++ bphy_err(drvr, "Retrieving cur_etheraddr failed, %d\n", err);
+ goto done;
+ }
+ memcpy(ifp->drvr->wiphy->perm_addr, ifp->drvr->mac, ETH_ALEN);
+@@ -131,7 +133,7 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ &revinfo, sizeof(revinfo));
+ ri = &ifp->drvr->revinfo;
+ if (err < 0) {
+- brcmf_err("retrieving revision info failed, %d\n", err);
++ bphy_err(drvr, "retrieving revision info failed, %d\n", err);
+ } else {
+ ri->vendorid = le32_to_cpu(revinfo.vendorid);
+ ri->deviceid = le32_to_cpu(revinfo.deviceid);
+@@ -158,8 +160,8 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ strcpy(buf, "ver");
+ err = brcmf_fil_iovar_data_get(ifp, "ver", buf, sizeof(buf));
+ if (err < 0) {
+- brcmf_err("Retrieving version information failed, %d\n",
+- err);
++ bphy_err(drvr, "Retrieving version information failed, %d\n",
++ err);
+ goto done;
+ }
+ ptr = (char *)buf;
+@@ -175,7 +177,7 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ /* set mpc */
+ err = brcmf_fil_iovar_int_set(ifp, "mpc", 1);
+ if (err) {
+- brcmf_err("failed setting mpc\n");
++ bphy_err(drvr, "failed setting mpc\n");
+ goto done;
+ }
+
+@@ -185,14 +187,14 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ err = brcmf_fil_iovar_data_get(ifp, "event_msgs", eventmask,
+ BRCMF_EVENTING_MASK_LEN);
+ if (err) {
+- brcmf_err("Get event_msgs error (%d)\n", err);
++ bphy_err(drvr, "Get event_msgs error (%d)\n", err);
+ goto done;
+ }
+ setbit(eventmask, BRCMF_E_IF);
+ err = brcmf_fil_iovar_data_set(ifp, "event_msgs", eventmask,
+ BRCMF_EVENTING_MASK_LEN);
+ if (err) {
+- brcmf_err("Set event_msgs error (%d)\n", err);
++ bphy_err(drvr, "Set event_msgs error (%d)\n", err);
+ goto done;
+ }
+
+@@ -200,8 +202,8 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_CHANNEL_TIME,
+ BRCMF_DEFAULT_SCAN_CHANNEL_TIME);
+ if (err) {
+- brcmf_err("BRCMF_C_SET_SCAN_CHANNEL_TIME error (%d)\n",
+- err);
++ bphy_err(drvr, "BRCMF_C_SET_SCAN_CHANNEL_TIME error (%d)\n",
++ err);
+ goto done;
+ }
+
+@@ -209,8 +211,8 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+ err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_SCAN_UNASSOC_TIME,
+ BRCMF_DEFAULT_SCAN_UNASSOC_TIME);
+ if (err) {
+- brcmf_err("BRCMF_C_SET_SCAN_UNASSOC_TIME error (%d)\n",
+- err);
++ bphy_err(drvr, "BRCMF_C_SET_SCAN_UNASSOC_TIME error (%d)\n",
++ err);
+ goto done;
+ }
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+@@ -90,7 +90,7 @@ struct brcmf_if *brcmf_get_ifp(struct br
+ s32 bsscfgidx;
+
+ if (ifidx < 0 || ifidx >= BRCMF_MAX_IFS) {
+- brcmf_err("ifidx %d out of range\n", ifidx);
++ bphy_err(drvr, "ifidx %d out of range\n", ifidx);
+ return NULL;
+ }
+
+@@ -104,7 +104,9 @@ struct brcmf_if *brcmf_get_ifp(struct br
+
+ static void _brcmf_set_multicast_list(struct work_struct *work)
+ {
+- struct brcmf_if *ifp;
++ struct brcmf_if *ifp = container_of(work, struct brcmf_if,
++ multicast_work);
++ struct brcmf_pub *drvr = ifp->drvr;
+ struct net_device *ndev;
+ struct netdev_hw_addr *ha;
+ u32 cmd_value, cnt;
+@@ -113,8 +115,6 @@ static void _brcmf_set_multicast_list(st
+ u32 buflen;
+ s32 err;
+
+- ifp = container_of(work, struct brcmf_if, multicast_work);
+-
+ brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx);
+
+ ndev = ifp->ndev;
+@@ -144,7 +144,7 @@ static void _brcmf_set_multicast_list(st
+
+ err = brcmf_fil_iovar_data_set(ifp, "mcast_list", buf, buflen);
+ if (err < 0) {
+- brcmf_err("Setting mcast_list failed, %d\n", err);
++ bphy_err(drvr, "Setting mcast_list failed, %d\n", err);
+ cmd_value = cnt ? true : cmd_value;
+ }
+
+@@ -157,24 +157,24 @@ static void _brcmf_set_multicast_list(st
+ */
+ err = brcmf_fil_iovar_int_set(ifp, "allmulti", cmd_value);
+ if (err < 0)
+- brcmf_err("Setting allmulti failed, %d\n", err);
++ bphy_err(drvr, "Setting allmulti failed, %d\n", err);
+
+ /*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)
+- brcmf_err("Setting BRCMF_C_SET_PROMISC failed, %d\n",
+- err);
++ bphy_err(drvr, "Setting BRCMF_C_SET_PROMISC failed, %d\n",
++ err);
+ }
+
+ #if IS_ENABLED(CONFIG_IPV6)
+ static void _brcmf_update_ndtable(struct work_struct *work)
+ {
+- struct brcmf_if *ifp;
++ struct brcmf_if *ifp = container_of(work, struct brcmf_if,
++ ndoffload_work);
++ struct brcmf_pub *drvr = ifp->drvr;
+ int i, ret;
+
+- ifp = container_of(work, struct brcmf_if, ndoffload_work);
+-
+ /* clear the table in firmware */
+ ret = brcmf_fil_iovar_data_set(ifp, "nd_hostip_clear", NULL, 0);
+ if (ret) {
+@@ -187,7 +187,7 @@ static void _brcmf_update_ndtable(struct
+ &ifp->ipv6_addr_tbl[i],
+ sizeof(struct in6_addr));
+ if (ret)
+- brcmf_err("add nd ip err %d\n", ret);
++ bphy_err(drvr, "add nd ip err %d\n", ret);
+ }
+ }
+ #else
+@@ -200,6 +200,7 @@ static int brcmf_netdev_set_mac_address(
+ {
+ struct brcmf_if *ifp = netdev_priv(ndev);
+ struct sockaddr *sa = (struct sockaddr *)addr;
++ struct brcmf_pub *drvr = ifp->drvr;
+ int err;
+
+ brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx);
+@@ -207,7 +208,7 @@ static int brcmf_netdev_set_mac_address(
+ err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", sa->sa_data,
+ ETH_ALEN);
+ if (err < 0) {
+- brcmf_err("Setting cur_etheraddr failed, %d\n", err);
++ bphy_err(drvr, "Setting cur_etheraddr failed, %d\n", err);
+ } else {
+ brcmf_dbg(TRACE, "updated to %pM\n", sa->sa_data);
+ memcpy(ifp->mac_addr, sa->sa_data, ETH_ALEN);
+@@ -266,7 +267,7 @@ static netdev_tx_t brcmf_netdev_start_xm
+
+ /* Can the device send data? */
+ if (drvr->bus_if->state != BRCMF_BUS_UP) {
+- brcmf_err("xmit rejected state=%d\n", drvr->bus_if->state);
++ bphy_err(drvr, "xmit rejected state=%d\n", drvr->bus_if->state);
+ netif_stop_queue(ndev);
+ dev_kfree_skb(skb);
+ ret = -ENODEV;
+@@ -604,7 +605,7 @@ static int brcmf_netdev_open(struct net_
+
+ /* If bus is not ready, can't continue */
+ if (bus_if->state != BRCMF_BUS_UP) {
+- brcmf_err("failed bus is not ready\n");
++ bphy_err(drvr, "failed bus is not ready\n");
+ return -EAGAIN;
+ }
+
+@@ -618,7 +619,7 @@ static int brcmf_netdev_open(struct net_
+ ndev->features &= ~NETIF_F_IP_CSUM;
+
+ if (brcmf_cfg80211_up(ndev)) {
+- brcmf_err("failed to bring up cfg80211\n");
++ bphy_err(drvr, "failed to bring up cfg80211\n");
+ return -EIO;
+ }
+
+@@ -663,7 +664,7 @@ int brcmf_net_attach(struct brcmf_if *if
+ else
+ err = register_netdev(ndev);
+ if (err != 0) {
+- brcmf_err("couldn't register the net device\n");
++ bphy_err(drvr, "couldn't register the net device\n");
+ goto fail;
+ }
+
+@@ -739,6 +740,7 @@ static const struct net_device_ops brcmf
+
+ static int brcmf_net_p2p_attach(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ struct net_device *ndev;
+
+ brcmf_dbg(TRACE, "Enter, bsscfgidx=%d mac=%pM\n", ifp->bsscfgidx,
+@@ -751,7 +753,7 @@ static int brcmf_net_p2p_attach(struct b
+ memcpy(ndev->dev_addr, ifp->mac_addr, ETH_ALEN);
+
+ if (register_netdev(ndev) != 0) {
+- brcmf_err("couldn't register the p2p net device\n");
++ bphy_err(drvr, "couldn't register the p2p net device\n");
+ goto fail;
+ }
+
+@@ -781,8 +783,8 @@ struct brcmf_if *brcmf_add_if(struct brc
+ */
+ if (ifp) {
+ if (ifidx) {
+- brcmf_err("ERROR: netdev:%s already exists\n",
+- ifp->ndev->name);
++ bphy_err(drvr, "ERROR: netdev:%s already exists\n",
++ ifp->ndev->name);
+ netif_stop_queue(ifp->ndev);
+ brcmf_net_detach(ifp->ndev, false);
+ drvr->iflist[bsscfgidx] = NULL;
+@@ -840,7 +842,7 @@ static void brcmf_del_if(struct brcmf_pu
+ ifp = drvr->iflist[bsscfgidx];
+ drvr->iflist[bsscfgidx] = NULL;
+ if (!ifp) {
+- brcmf_err("Null interface, bsscfgidx=%d\n", bsscfgidx);
++ bphy_err(drvr, "Null interface, bsscfgidx=%d\n", bsscfgidx);
+ return;
+ }
+ brcmf_dbg(TRACE, "Enter, bsscfgidx=%d, ifidx=%d\n", bsscfgidx,
+@@ -890,16 +892,17 @@ static int brcmf_psm_watchdog_notify(str
+ const struct brcmf_event_msg *evtmsg,
+ void *data)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ int err;
+
+ brcmf_dbg(TRACE, "enter: bsscfgidx=%d\n", ifp->bsscfgidx);
+
+- brcmf_err("PSM's watchdog has fired!\n");
++ bphy_err(drvr, "PSM's watchdog has fired!\n");
+
+ err = brcmf_debug_create_memdump(ifp->drvr->bus_if, data,
+ evtmsg->datalen);
+ if (err)
+- brcmf_err("Failed to get memory dump, %d\n", err);
++ bphy_err(drvr, "Failed to get memory dump, %d\n", err);
+
+ return err;
+ }
+@@ -943,7 +946,7 @@ static int brcmf_inetaddr_changed(struct
+ ret = brcmf_fil_iovar_data_get(ifp, "arp_hostip", addr_table,
+ sizeof(addr_table));
+ if (ret) {
+- brcmf_err("fail to get arp ip table err:%d\n", ret);
++ bphy_err(drvr, "fail to get arp ip table err:%d\n", ret);
+ return NOTIFY_OK;
+ }
+
+@@ -960,7 +963,7 @@ static int brcmf_inetaddr_changed(struct
+ ret = brcmf_fil_iovar_data_set(ifp, "arp_hostip",
+ &ifa->ifa_address, sizeof(ifa->ifa_address));
+ if (ret)
+- brcmf_err("add arp ip err %d\n", ret);
++ bphy_err(drvr, "add arp ip err %d\n", ret);
+ }
+ break;
+ case NETDEV_DOWN:
+@@ -972,8 +975,8 @@ static int brcmf_inetaddr_changed(struct
+ ret = brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear",
+ NULL, 0);
+ if (ret) {
+- brcmf_err("fail to clear arp ip table err:%d\n",
+- ret);
++ bphy_err(drvr, "fail to clear arp ip table err:%d\n",
++ ret);
+ return NOTIFY_OK;
+ }
+ for (i = 0; i < ARPOL_MAX_ENTRIES; i++) {
+@@ -983,8 +986,8 @@ static int brcmf_inetaddr_changed(struct
+ &addr_table[i],
+ sizeof(addr_table[i]));
+ if (ret)
+- brcmf_err("add arp ip err %d\n",
+- ret);
++ bphy_err(drvr, "add arp ip err %d\n",
++ ret);
+ }
+ }
+ break;
+@@ -1161,7 +1164,7 @@ int brcmf_bus_started(struct device *dev
+ return 0;
+
+ fail:
+- brcmf_err("failed: %d\n", ret);
++ bphy_err(drvr, "failed: %d\n", ret);
+ if (drvr->config) {
+ brcmf_cfg80211_detach(drvr->config);
+ drvr->config = NULL;
+@@ -1220,7 +1223,7 @@ int brcmf_attach(struct device *dev, str
+ /* Attach and link in the protocol */
+ ret = brcmf_proto_attach(drvr);
+ if (ret != 0) {
+- brcmf_err("brcmf_prot_attach failed\n");
++ bphy_err(drvr, "brcmf_prot_attach failed\n");
+ goto fail;
+ }
+
+@@ -1330,6 +1333,7 @@ static int brcmf_get_pend_8021x_cnt(stru
+
+ int brcmf_netdev_wait_pend8021x(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ int err;
+
+ err = wait_event_timeout(ifp->pend_8021x_wait,
+@@ -1337,7 +1341,7 @@ int brcmf_netdev_wait_pend8021x(struct b
+ MAX_WAIT_FOR_8021X_TX);
+
+ if (!err)
+- brcmf_err("Timed out waiting for no pending 802.1x packets\n");
++ bphy_err(drvr, "Timed out waiting for no pending 802.1x packets\n");
+
+ return !err;
+ }
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
+@@ -158,13 +158,14 @@ static void brcmf_feat_iovar_int_get(str
+ #define MAX_CAPS_BUFFER_SIZE 768
+ static void brcmf_feat_firmware_capabilities(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ char caps[MAX_CAPS_BUFFER_SIZE];
+ enum brcmf_feat_id id;
+ int i, err;
+
+ err = brcmf_fil_iovar_data_get(ifp, "cap", caps, sizeof(caps));
+ if (err) {
+- brcmf_err("could not get firmware cap (%d)\n", err);
++ bphy_err(drvr, "could not get firmware cap (%d)\n", err);
+ return;
+ }
+
+@@ -189,14 +190,15 @@ static void brcmf_feat_firmware_capabili
+ static int brcmf_feat_fwcap_debugfs_read(struct seq_file *seq, void *data)
+ {
+ struct brcmf_bus *bus_if = dev_get_drvdata(seq->private);
+- struct brcmf_if *ifp = brcmf_get_ifp(bus_if->drvr, 0);
++ struct brcmf_pub *drvr = bus_if->drvr;
++ struct brcmf_if *ifp = brcmf_get_ifp(drvr, 0);
+ char caps[MAX_CAPS_BUFFER_SIZE + 1] = { };
+ char *tmp;
+ int err;
+
+ err = brcmf_fil_iovar_data_get(ifp, "cap", caps, sizeof(caps));
+ if (err) {
+- brcmf_err("could not get firmware cap (%d)\n", err);
++ bphy_err(drvr, "could not get firmware cap (%d)\n", err);
+ return err;
+ }
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
+@@ -102,7 +102,8 @@ static void brcmf_fweh_queue_event(struc
+ schedule_work(&fweh->event_work);
+ }
+
+-static int brcmf_fweh_call_event_handler(struct brcmf_if *ifp,
++static int brcmf_fweh_call_event_handler(struct brcmf_pub *drvr,
++ struct brcmf_if *ifp,
+ enum brcmf_fweh_event_code code,
+ struct brcmf_event_msg *emsg,
+ void *data)
+@@ -117,9 +118,9 @@ static int brcmf_fweh_call_event_handler
+ if (fweh->evt_handler[code])
+ err = fweh->evt_handler[code](ifp, emsg, data);
+ else
+- brcmf_err("unhandled event %d ignored\n", code);
++ bphy_err(drvr, "unhandled event %d ignored\n", code);
+ } else {
+- brcmf_err("no interface object\n");
++ bphy_err(drvr, "no interface object\n");
+ }
+ return err;
+ }
+@@ -158,7 +159,7 @@ static void brcmf_fweh_handle_if_event(s
+ return;
+ }
+ if (ifevent->ifidx >= BRCMF_MAX_IFS) {
+- brcmf_err("invalid interface index: %u\n", ifevent->ifidx);
++ bphy_err(drvr, "invalid interface index: %u\n", ifevent->ifidx);
+ return;
+ }
+
+@@ -181,7 +182,8 @@ static void brcmf_fweh_handle_if_event(s
+ if (ifp && ifevent->action == BRCMF_E_IF_CHANGE)
+ brcmf_fws_reset_interface(ifp);
+
+- err = brcmf_fweh_call_event_handler(ifp, emsg->event_code, emsg, data);
++ err = brcmf_fweh_call_event_handler(drvr, ifp, emsg->event_code, emsg,
++ data);
+
+ if (ifp && ifevent->action == BRCMF_E_IF_DEL) {
+ bool armed = brcmf_cfg80211_vif_event_armed(drvr->config);
+@@ -273,11 +275,11 @@ static void brcmf_fweh_event_worker(stru
+ ifp = drvr->iflist[0];
+ else
+ ifp = drvr->iflist[emsg.bsscfgidx];
+- err = brcmf_fweh_call_event_handler(ifp, event->code, &emsg,
+- event->data);
++ err = brcmf_fweh_call_event_handler(drvr, ifp, event->code,
++ &emsg, event->data);
+ if (err) {
+- brcmf_err("event handler failed (%d)\n",
+- event->code);
++ bphy_err(drvr, "event handler failed (%d)\n",
++ event->code);
+ err = 0;
+ }
+ event_free:
+@@ -344,7 +346,7 @@ int brcmf_fweh_register(struct brcmf_pub
+ brcmf_fweh_handler_t handler)
+ {
+ if (drvr->fweh.evt_handler[code]) {
+- brcmf_err("event code %d already registered\n", code);
++ bphy_err(drvr, "event code %d already registered\n", code);
+ return -ENOSPC;
+ }
+ drvr->fweh.evt_handler[code] = handler;
+@@ -374,6 +376,7 @@ void brcmf_fweh_unregister(struct brcmf_
+ */
+ int brcmf_fweh_activate_events(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ int i, err;
+ s8 eventmask[BRCMF_EVENTING_MASK_LEN];
+
+@@ -393,7 +396,7 @@ int brcmf_fweh_activate_events(struct br
+ err = brcmf_fil_iovar_data_set(ifp, "event_msgs",
+ eventmask, BRCMF_EVENTING_MASK_LEN);
+ if (err)
+- brcmf_err("Set event_msgs error (%d)\n", err);
++ bphy_err(drvr, "Set event_msgs error (%d)\n", err);
+
+ return err;
+ }
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
+@@ -110,7 +110,7 @@ brcmf_fil_cmd_data(struct brcmf_if *ifp,
+ s32 err;
+
+ if (drvr->bus_if->state != BRCMF_BUS_UP) {
+- brcmf_err("bus is down. we have nothing to do.\n");
++ bphy_err(drvr, "bus is down. we have nothing to do.\n");
+ return -EIO;
+ }
+
+@@ -236,7 +236,7 @@ brcmf_fil_iovar_data_set(struct brcmf_if
+ buflen, true);
+ } else {
+ err = -EPERM;
+- brcmf_err("Creating iovar failed\n");
++ bphy_err(drvr, "Creating iovar failed\n");
+ }
+
+ mutex_unlock(&drvr->proto_block);
+@@ -262,7 +262,7 @@ brcmf_fil_iovar_data_get(struct brcmf_if
+ memcpy(data, drvr->proto_buf, len);
+ } else {
+ err = -EPERM;
+- brcmf_err("Creating iovar failed\n");
++ bphy_err(drvr, "Creating iovar failed\n");
+ }
+
+ brcmf_dbg(FIL, "ifidx=%d, name=%s, len=%d\n", ifp->ifidx, name, len);
+@@ -360,7 +360,7 @@ brcmf_fil_bsscfg_data_set(struct brcmf_i
+ buflen, true);
+ } else {
+ err = -EPERM;
+- brcmf_err("Creating bsscfg failed\n");
++ bphy_err(drvr, "Creating bsscfg failed\n");
+ }
+
+ mutex_unlock(&drvr->proto_block);
+@@ -386,7 +386,7 @@ brcmf_fil_bsscfg_data_get(struct brcmf_i
+ memcpy(data, drvr->proto_buf, len);
+ } else {
+ err = -EPERM;
+- brcmf_err("Creating bsscfg failed\n");
++ bphy_err(drvr, "Creating bsscfg failed\n");
+ }
+ brcmf_dbg(FIL, "ifidx=%d, bsscfgidx=%d, name=%s, len=%d\n", ifp->ifidx,
+ ifp->bsscfgidx, name, len);
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
+@@ -1250,6 +1250,7 @@ static int brcmf_fws_enq(struct brcmf_fw
+ enum brcmf_fws_skb_state state, int fifo,
+ struct sk_buff *p)
+ {
++ struct brcmf_pub *drvr = fws->drvr;
+ int prec = 2 * fifo;
+ u32 *qfull_stat = &fws->stats.delayq_full_error;
+ struct brcmf_fws_mac_descriptor *entry;
+@@ -1262,7 +1263,7 @@ static int brcmf_fws_enq(struct brcmf_fw
+
+ entry = brcmf_skbcb(p)->mac;
+ if (entry == NULL) {
+- brcmf_err("no mac descriptor found for skb %p\n", p);
++ bphy_err(drvr, "no mac descriptor found for skb %p\n", p);
+ return -ENOENT;
+ }
+
+@@ -1452,6 +1453,7 @@ static int
+ brcmf_fws_txs_process(struct brcmf_fws_info *fws, u8 flags, u32 hslot,
+ u32 genbit, u16 seq)
+ {
++ struct brcmf_pub *drvr = fws->drvr;
+ u32 fifo;
+ int ret;
+ bool remove_from_hanger = true;
+@@ -1475,12 +1477,12 @@ brcmf_fws_txs_process(struct brcmf_fws_i
+ else if (flags == BRCMF_FWS_TXSTATUS_HOST_TOSSED)
+ fws->stats.txs_host_tossed++;
+ else
+- brcmf_err("unexpected txstatus\n");
++ bphy_err(drvr, "unexpected txstatus\n");
+
+ ret = brcmf_fws_hanger_poppkt(&fws->hanger, hslot, &skb,
+ remove_from_hanger);
+ if (ret != 0) {
+- brcmf_err("no packet in hanger slot: hslot=%d\n", hslot);
++ bphy_err(drvr, "no packet in hanger slot: hslot=%d\n", hslot);
+ return ret;
+ }
+
+@@ -1586,12 +1588,13 @@ static int brcmf_fws_notify_credit_map(s
+ const struct brcmf_event_msg *e,
+ void *data)
+ {
+- struct brcmf_fws_info *fws = ifp->drvr->fws;
++ struct brcmf_pub *drvr = ifp->drvr;
++ struct brcmf_fws_info *fws = drvr->fws;
+ int i;
+ u8 *credits = data;
+
+ if (e->datalen < BRCMF_FWS_FIFO_COUNT) {
+- brcmf_err("event payload too small (%d)\n", e->datalen);
++ bphy_err(drvr, "event payload too small (%d)\n", e->datalen);
+ return -EINVAL;
+ }
+ if (fws->creditmap_received)
+@@ -1653,6 +1656,7 @@ static void brcmf_rxreorder_get_skb_list
+
+ void brcmf_fws_rxreorder(struct brcmf_if *ifp, struct sk_buff *pkt)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ u8 *reorder_data;
+ u8 flow_id, max_idx, cur_idx, exp_idx, end_idx;
+ struct brcmf_ampdu_rx_reorder *rfi;
+@@ -1667,7 +1671,7 @@ void brcmf_fws_rxreorder(struct brcmf_if
+
+ /* validate flags and flow id */
+ if (flags == 0xFF) {
+- brcmf_err("invalid flags...so ignore this packet\n");
++ bphy_err(drvr, "invalid flags...so ignore this packet\n");
+ brcmf_netif_rx(ifp, pkt);
+ return;
+ }
+@@ -1704,7 +1708,7 @@ void brcmf_fws_rxreorder(struct brcmf_if
+ flow_id, max_idx);
+ rfi = kzalloc(buf_size, GFP_ATOMIC);
+ if (rfi == NULL) {
+- brcmf_err("failed to alloc buffer\n");
++ bphy_err(drvr, "failed to alloc buffer\n");
+ brcmf_netif_rx(ifp, pkt);
+ return;
+ }
+@@ -1969,6 +1973,7 @@ static u8 brcmf_fws_precommit_skb(struct
+ static void brcmf_fws_rollback_toq(struct brcmf_fws_info *fws,
+ struct sk_buff *skb, int fifo)
+ {
++ struct brcmf_pub *drvr = fws->drvr;
+ struct brcmf_fws_mac_descriptor *entry;
+ struct sk_buff *pktout;
+ int qidx, hslot;
+@@ -1982,11 +1987,11 @@ static void brcmf_fws_rollback_toq(struc
+
+ pktout = brcmu_pktq_penq_head(&entry->psq, qidx, skb);
+ if (pktout == NULL) {
+- brcmf_err("%s queue %d full\n", entry->name, qidx);
++ bphy_err(drvr, "%s queue %d full\n", entry->name, qidx);
+ rc = -ENOSPC;
+ }
+ } else {
+- brcmf_err("%s entry removed\n", entry->name);
++ bphy_err(drvr, "%s entry removed\n", entry->name);
+ rc = -ENOENT;
+ }
+
+@@ -2120,7 +2125,7 @@ int brcmf_fws_process_skb(struct brcmf_i
+ brcmf_fws_enq(fws, BRCMF_FWS_SKBSTATE_DELAYED, fifo, skb);
+ brcmf_fws_schedule_deq(fws);
+ } else {
+- brcmf_err("drop skb: no hanger slot\n");
++ bphy_err(drvr, "drop skb: no hanger slot\n");
+ brcmf_txfinalize(ifp, skb, false);
+ rc = -ENOMEM;
+ }
+@@ -2339,7 +2344,7 @@ int brcmf_fws_init(struct brcmf_pub *drv
+
+ fws->fws_wq = create_singlethread_workqueue("brcmf_fws_wq");
+ if (fws->fws_wq == NULL) {
+- brcmf_err("workqueue creation failed\n");
++ bphy_err(drvr, "workqueue creation failed\n");
+ rc = -EBADF;
+ goto fail;
+ }
+@@ -2355,13 +2360,13 @@ int brcmf_fws_init(struct brcmf_pub *drv
+ rc = brcmf_fweh_register(drvr, BRCMF_E_FIFO_CREDIT_MAP,
+ brcmf_fws_notify_credit_map);
+ if (rc < 0) {
+- brcmf_err("register credit map handler failed\n");
++ bphy_err(drvr, "register credit map handler failed\n");
+ goto fail;
+ }
+ rc = brcmf_fweh_register(drvr, BRCMF_E_BCMC_CREDIT_SUPPORT,
+ brcmf_fws_notify_bcmc_credit_support);
+ if (rc < 0) {
+- brcmf_err("register bcmc credit handler failed\n");
++ bphy_err(drvr, "register bcmc credit handler failed\n");
+ brcmf_fweh_unregister(drvr, BRCMF_E_FIFO_CREDIT_MAP);
+ goto fail;
+ }
+@@ -2373,7 +2378,7 @@ int brcmf_fws_init(struct brcmf_pub *drv
+ fws->fw_signals = true;
+ ifp = brcmf_get_ifp(drvr, 0);
+ if (brcmf_fil_iovar_int_set(ifp, "tlv", tlv)) {
+- brcmf_err("failed to set bdcv2 tlv signaling\n");
++ bphy_err(drvr, "failed to set bdcv2 tlv signaling\n");
+ fws->fcmode = BRCMF_FWS_FCMODE_NONE;
+ fws->fw_signals = false;
+ }
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+@@ -439,7 +439,7 @@ static int brcmf_msgbuf_tx_ioctl(struct
+ brcmf_commonring_lock(commonring);
+ ret_ptr = brcmf_commonring_reserve_for_write(commonring);
+ if (!ret_ptr) {
+- brcmf_err("Failed to reserve space in commonring\n");
++ bphy_err(drvr, "Failed to reserve space in commonring\n");
+ brcmf_commonring_unlock(commonring);
+ return -ENOMEM;
+ }
+@@ -502,7 +502,7 @@ static int brcmf_msgbuf_query_dcmd(struc
+
+ timeout = brcmf_msgbuf_ioctl_resp_wait(msgbuf);
+ if (!timeout) {
+- brcmf_err("Timeout on response for query command\n");
++ bphy_err(drvr, "Timeout on response for query command\n");
+ return -EIO;
+ }
+
+@@ -578,6 +578,7 @@ static u32
+ brcmf_msgbuf_flowring_create_worker(struct brcmf_msgbuf *msgbuf,
+ struct brcmf_msgbuf_work_item *work)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct msgbuf_tx_flowring_create_req *create;
+ struct brcmf_commonring *commonring;
+ void *ret_ptr;
+@@ -593,7 +594,7 @@ brcmf_msgbuf_flowring_create_worker(stru
+ &msgbuf->flowring_dma_handle[flowid],
+ GFP_KERNEL);
+ if (!dma_buf) {
+- brcmf_err("dma_alloc_coherent failed\n");
++ bphy_err(drvr, "dma_alloc_coherent failed\n");
+ brcmf_flowring_delete(msgbuf->flow, flowid);
+ return BRCMF_FLOWRING_INVALID_ID;
+ }
+@@ -606,7 +607,7 @@ brcmf_msgbuf_flowring_create_worker(stru
+ brcmf_commonring_lock(commonring);
+ ret_ptr = brcmf_commonring_reserve_for_write(commonring);
+ if (!ret_ptr) {
+- brcmf_err("Failed to reserve space in commonring\n");
++ bphy_err(drvr, "Failed to reserve space in commonring\n");
+ brcmf_commonring_unlock(commonring);
+ brcmf_msgbuf_remove_flowring(msgbuf, flowid);
+ return BRCMF_FLOWRING_INVALID_ID;
+@@ -633,7 +634,7 @@ brcmf_msgbuf_flowring_create_worker(stru
+ err = brcmf_commonring_write_complete(commonring);
+ brcmf_commonring_unlock(commonring);
+ if (err) {
+- brcmf_err("Failed to write commonring\n");
++ bphy_err(drvr, "Failed to write commonring\n");
+ brcmf_msgbuf_remove_flowring(msgbuf, flowid);
+ return BRCMF_FLOWRING_INVALID_ID;
+ }
+@@ -692,6 +693,7 @@ static u32 brcmf_msgbuf_flowring_create(
+ static void brcmf_msgbuf_txflow(struct brcmf_msgbuf *msgbuf, u16 flowid)
+ {
+ struct brcmf_flowring *flow = msgbuf->flow;
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct brcmf_commonring *commonring;
+ void *ret_ptr;
+ u32 count;
+@@ -711,8 +713,8 @@ static void brcmf_msgbuf_txflow(struct b
+ while (brcmf_flowring_qlen(flow, flowid)) {
+ skb = brcmf_flowring_dequeue(flow, flowid);
+ if (skb == NULL) {
+- brcmf_err("No SKB, but qlen %d\n",
+- brcmf_flowring_qlen(flow, flowid));
++ bphy_err(drvr, "No SKB, but qlen %d\n",
++ brcmf_flowring_qlen(flow, flowid));
+ break;
+ }
+ skb_orphan(skb);
+@@ -720,7 +722,7 @@ static void brcmf_msgbuf_txflow(struct b
+ msgbuf->tx_pktids, skb, ETH_HLEN,
+ &physaddr, &pktid)) {
+ brcmf_flowring_reinsert(flow, flowid, skb);
+- brcmf_err("No PKTID available !!\n");
++ bphy_err(drvr, "No PKTID available !!\n");
+ break;
+ }
+ ret_ptr = brcmf_commonring_reserve_for_write(commonring);
+@@ -891,6 +893,7 @@ brcmf_msgbuf_process_txstatus(struct brc
+
+ static u32 brcmf_msgbuf_rxbuf_data_post(struct brcmf_msgbuf *msgbuf, u32 count)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct brcmf_commonring *commonring;
+ void *ret_ptr;
+ struct sk_buff *skb;
+@@ -918,7 +921,7 @@ static u32 brcmf_msgbuf_rxbuf_data_post(
+ skb = brcmu_pkt_buf_get_skb(BRCMF_MSGBUF_MAX_PKT_SIZE);
+
+ if (skb == NULL) {
+- brcmf_err("Failed to alloc SKB\n");
++ bphy_err(drvr, "Failed to alloc SKB\n");
+ brcmf_commonring_write_cancel(commonring, alloced - i);
+ break;
+ }
+@@ -928,7 +931,7 @@ static u32 brcmf_msgbuf_rxbuf_data_post(
+ msgbuf->rx_pktids, skb, 0,
+ &physaddr, &pktid)) {
+ dev_kfree_skb_any(skb);
+- brcmf_err("No PKTID available !!\n");
++ bphy_err(drvr, "No PKTID available !!\n");
+ brcmf_commonring_write_cancel(commonring, alloced - i);
+ break;
+ }
+@@ -998,6 +1001,7 @@ static u32
+ brcmf_msgbuf_rxbuf_ctrl_post(struct brcmf_msgbuf *msgbuf, bool event_buf,
+ u32 count)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct brcmf_commonring *commonring;
+ void *ret_ptr;
+ struct sk_buff *skb;
+@@ -1015,7 +1019,7 @@ brcmf_msgbuf_rxbuf_ctrl_post(struct brcm
+ count,
+ &alloced);
+ if (!ret_ptr) {
+- brcmf_err("Failed to reserve space in commonring\n");
++ bphy_err(drvr, "Failed to reserve space in commonring\n");
+ brcmf_commonring_unlock(commonring);
+ return 0;
+ }
+@@ -1027,7 +1031,7 @@ brcmf_msgbuf_rxbuf_ctrl_post(struct brcm
+ skb = brcmu_pkt_buf_get_skb(BRCMF_MSGBUF_MAX_PKT_SIZE);
+
+ if (skb == NULL) {
+- brcmf_err("Failed to alloc SKB\n");
++ bphy_err(drvr, "Failed to alloc SKB\n");
+ brcmf_commonring_write_cancel(commonring, alloced - i);
+ break;
+ }
+@@ -1037,7 +1041,7 @@ brcmf_msgbuf_rxbuf_ctrl_post(struct brcm
+ msgbuf->rx_pktids, skb, 0,
+ &physaddr, &pktid)) {
+ dev_kfree_skb_any(skb);
+- brcmf_err("No PKTID available !!\n");
++ bphy_err(drvr, "No PKTID available !!\n");
+ brcmf_commonring_write_cancel(commonring, alloced - i);
+ break;
+ }
+@@ -1089,6 +1093,7 @@ static void brcmf_msgbuf_rxbuf_event_pos
+
+ static void brcmf_msgbuf_process_event(struct brcmf_msgbuf *msgbuf, void *buf)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct msgbuf_rx_event *event;
+ u32 idx;
+ u16 buflen;
+@@ -1115,8 +1120,8 @@ static void brcmf_msgbuf_process_event(s
+
+ ifp = brcmf_get_ifp(msgbuf->drvr, event->msg.ifidx);
+ if (!ifp || !ifp->ndev) {
+- brcmf_err("Received pkt for invalid ifidx %d\n",
+- event->msg.ifidx);
++ bphy_err(drvr, "Received pkt for invalid ifidx %d\n",
++ event->msg.ifidx);
+ goto exit;
+ }
+
+@@ -1132,6 +1137,7 @@ exit:
+ static void
+ brcmf_msgbuf_process_rx_complete(struct brcmf_msgbuf *msgbuf, void *buf)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct msgbuf_rx_complete *rx_complete;
+ struct sk_buff *skb;
+ u16 data_offset;
+@@ -1165,7 +1171,7 @@ brcmf_msgbuf_process_rx_complete(struct
+ ifp = msgbuf->drvr->mon_if;
+
+ if (!ifp) {
+- brcmf_err("Received unexpected monitor pkt\n");
++ bphy_err(drvr, "Received unexpected monitor pkt\n");
+ brcmu_pkt_buf_free_skb(skb);
+ return;
+ }
+@@ -1176,8 +1182,8 @@ brcmf_msgbuf_process_rx_complete(struct
+
+ ifp = brcmf_get_ifp(msgbuf->drvr, rx_complete->msg.ifidx);
+ if (!ifp || !ifp->ndev) {
+- brcmf_err("Received pkt for invalid ifidx %d\n",
+- rx_complete->msg.ifidx);
++ bphy_err(drvr, "Received pkt for invalid ifidx %d\n",
++ rx_complete->msg.ifidx);
+ brcmu_pkt_buf_free_skb(skb);
+ return;
+ }
+@@ -1190,13 +1196,15 @@ static void brcmf_msgbuf_process_ring_st
+ void *buf)
+ {
+ struct msgbuf_ring_status *ring_status = buf;
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ int err;
+
+ err = le16_to_cpu(ring_status->compl_hdr.status);
+ if (err) {
+ int ring = le16_to_cpu(ring_status->compl_hdr.flow_ring_id);
+
+- brcmf_err("Firmware reported ring %d error: %d\n", ring, err);
++ bphy_err(drvr, "Firmware reported ring %d error: %d\n", ring,
++ err);
+ }
+ }
+
+@@ -1204,6 +1212,7 @@ static void
+ brcmf_msgbuf_process_flow_ring_create_response(struct brcmf_msgbuf *msgbuf,
+ void *buf)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct msgbuf_flowring_create_resp *flowring_create_resp;
+ u16 status;
+ u16 flowid;
+@@ -1215,7 +1224,7 @@ brcmf_msgbuf_process_flow_ring_create_re
+ status = le16_to_cpu(flowring_create_resp->compl_hdr.status);
+
+ if (status) {
+- brcmf_err("Flowring creation failed, code %d\n", status);
++ bphy_err(drvr, "Flowring creation failed, code %d\n", status);
+ brcmf_msgbuf_remove_flowring(msgbuf, flowid);
+ return;
+ }
+@@ -1232,6 +1241,7 @@ static void
+ brcmf_msgbuf_process_flow_ring_delete_response(struct brcmf_msgbuf *msgbuf,
+ void *buf)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct msgbuf_flowring_delete_resp *flowring_delete_resp;
+ u16 status;
+ u16 flowid;
+@@ -1243,7 +1253,7 @@ brcmf_msgbuf_process_flow_ring_delete_re
+ status = le16_to_cpu(flowring_delete_resp->compl_hdr.status);
+
+ if (status) {
+- brcmf_err("Flowring deletion failed, code %d\n", status);
++ bphy_err(drvr, "Flowring deletion failed, code %d\n", status);
+ brcmf_flowring_delete(msgbuf->flow, flowid);
+ return;
+ }
+@@ -1256,6 +1266,7 @@ brcmf_msgbuf_process_flow_ring_delete_re
+
+ static void brcmf_msgbuf_process_msgtype(struct brcmf_msgbuf *msgbuf, void *buf)
+ {
++ struct brcmf_pub *drvr = msgbuf->drvr;
+ struct msgbuf_common_hdr *msg;
+
+ msg = (struct msgbuf_common_hdr *)buf;
+@@ -1292,7 +1303,7 @@ static void brcmf_msgbuf_process_msgtype
+ brcmf_msgbuf_process_rx_complete(msgbuf, buf);
+ break;
+ default:
+- brcmf_err("Unsupported msgtype %d\n", msg->msgtype);
++ bphy_err(drvr, "Unsupported msgtype %d\n", msg->msgtype);
+ break;
+ }
+ }
+@@ -1375,7 +1386,7 @@ void brcmf_msgbuf_delete_flowring(struct
+ brcmf_commonring_lock(commonring);
+ ret_ptr = brcmf_commonring_reserve_for_write(commonring);
+ if (!ret_ptr) {
+- brcmf_err("FW unaware, flowring will be removed !!\n");
++ bphy_err(drvr, "FW unaware, flowring will be removed !!\n");
+ brcmf_commonring_unlock(commonring);
+ brcmf_msgbuf_remove_flowring(msgbuf, flowid);
+ return;
+@@ -1399,7 +1410,7 @@ void brcmf_msgbuf_delete_flowring(struct
+ err = brcmf_commonring_write_complete(commonring);
+ brcmf_commonring_unlock(commonring);
+ if (err) {
+- brcmf_err("Failed to submit RING_DELETE, flowring will be removed\n");
++ bphy_err(drvr, "Failed to submit RING_DELETE, flowring will be removed\n");
+ brcmf_msgbuf_remove_flowring(msgbuf, flowid);
+ }
+ }
+@@ -1469,8 +1480,8 @@ int brcmf_proto_msgbuf_attach(struct brc
+ if_msgbuf = drvr->bus_if->msgbuf;
+
+ if (if_msgbuf->max_flowrings >= BRCMF_FLOWRING_HASHSIZE) {
+- brcmf_err("driver not configured for this many flowrings %d\n",
+- if_msgbuf->max_flowrings);
++ bphy_err(drvr, "driver not configured for this many flowrings %d\n",
++ if_msgbuf->max_flowrings);
+ if_msgbuf->max_flowrings = BRCMF_FLOWRING_HASHSIZE - 1;
+ }
+
+@@ -1480,7 +1491,7 @@ int brcmf_proto_msgbuf_attach(struct brc
+
+ msgbuf->txflow_wq = create_singlethread_workqueue("msgbuf_txflow");
+ if (msgbuf->txflow_wq == NULL) {
+- brcmf_err("workqueue creation failed\n");
++ bphy_err(drvr, "workqueue creation failed\n");
+ goto fail;
+ }
+ INIT_WORK(&msgbuf->txflow_work, brcmf_msgbuf_txflow_worker);
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c
+@@ -434,6 +434,7 @@ static void brcmf_p2p_print_actframe(boo
+ */
+ static int brcmf_p2p_set_firmware(struct brcmf_if *ifp, u8 *p2p_mac)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ s32 ret = 0;
+
+ brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1);
+@@ -450,7 +451,7 @@ static int brcmf_p2p_set_firmware(struct
+ ret = brcmf_fil_iovar_data_set(ifp, "p2p_da_override", p2p_mac,
+ ETH_ALEN);
+ if (ret)
+- brcmf_err("failed to update device address ret %d\n", ret);
++ bphy_err(drvr, "failed to update device address ret %d\n", ret);
+
+ return ret;
+ }
+@@ -572,13 +573,14 @@ static s32 brcmf_p2p_deinit_discovery(st
+ */
+ static int brcmf_p2p_enable_discovery(struct brcmf_p2p_info *p2p)
+ {
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ struct brcmf_cfg80211_vif *vif;
+ s32 ret = 0;
+
+ brcmf_dbg(TRACE, "enter\n");
+ vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
+ if (!vif) {
+- brcmf_err("P2P config device not available\n");
++ bphy_err(drvr, "P2P config device not available\n");
+ ret = -EPERM;
+ goto exit;
+ }
+@@ -592,13 +594,13 @@ static int brcmf_p2p_enable_discovery(st
+ vif = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif;
+ ret = brcmf_fil_iovar_int_set(vif->ifp, "p2p_disc", 1);
+ if (ret < 0) {
+- brcmf_err("set p2p_disc error\n");
++ bphy_err(drvr, "set p2p_disc error\n");
+ goto exit;
+ }
+ vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
+ ret = brcmf_p2p_set_discover_state(vif->ifp, WL_P2P_DISC_ST_SCAN, 0, 0);
+ if (ret < 0) {
+- brcmf_err("unable to set WL_P2P_DISC_ST_SCAN\n");
++ bphy_err(drvr, "unable to set WL_P2P_DISC_ST_SCAN\n");
+ goto exit;
+ }
+
+@@ -610,7 +612,7 @@ static int brcmf_p2p_enable_discovery(st
+ */
+ ret = brcmf_fil_bsscfg_int_set(vif->ifp, "wsec", AES_ENABLED);
+ if (ret < 0) {
+- brcmf_err("wsec error %d\n", ret);
++ bphy_err(drvr, "wsec error %d\n", ret);
+ goto exit;
+ }
+
+@@ -632,6 +634,7 @@ static s32 brcmf_p2p_escan(struct brcmf_
+ u16 chanspecs[], s32 search_state,
+ enum p2p_bss_type bss_type)
+ {
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ s32 ret = 0;
+ s32 memsize = offsetof(struct brcmf_p2p_scan_le,
+ eparams.params_le.channel_list);
+@@ -650,7 +653,7 @@ static s32 brcmf_p2p_escan(struct brcmf_
+
+ vif = p2p->bss_idx[bss_type].vif;
+ if (vif == NULL) {
+- brcmf_err("no vif for bss type %d\n", bss_type);
++ bphy_err(drvr, "no vif for bss type %d\n", bss_type);
+ ret = -EINVAL;
+ goto exit;
+ }
+@@ -678,7 +681,7 @@ static s32 brcmf_p2p_escan(struct brcmf_
+ BRCMF_P2P_WILDCARD_SSID_LEN);
+ break;
+ default:
+- brcmf_err(" invalid search state %d\n", search_state);
++ bphy_err(drvr, " invalid search state %d\n", search_state);
+ ret = -EINVAL;
+ goto exit;
+ }
+@@ -765,6 +768,7 @@ static s32 brcmf_p2p_run_escan(struct br
+ struct cfg80211_scan_request *request)
+ {
+ struct brcmf_p2p_info *p2p = &cfg->p2p;
++ struct brcmf_pub *drvr = cfg->pub;
+ s32 err = 0;
+ s32 search_state = WL_P2P_DISC_ST_SCAN;
+ struct brcmf_cfg80211_vif *vif;
+@@ -827,7 +831,7 @@ static s32 brcmf_p2p_run_escan(struct br
+ }
+ exit:
+ if (err)
+- brcmf_err("error (%d)\n", err);
++ bphy_err(drvr, "error (%d)\n", err);
+ return err;
+ }
+
+@@ -924,19 +928,20 @@ int brcmf_p2p_scan_prep(struct wiphy *wi
+ static s32
+ brcmf_p2p_discover_listen(struct brcmf_p2p_info *p2p, u16 channel, u32 duration)
+ {
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ struct brcmf_cfg80211_vif *vif;
+ struct brcmu_chan ch;
+ s32 err = 0;
+
+ vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
+ if (!vif) {
+- brcmf_err("Discovery is not set, so we have nothing to do\n");
++ bphy_err(drvr, "Discovery is not set, so we have nothing to do\n");
+ err = -EPERM;
+ goto exit;
+ }
+
+ if (test_bit(BRCMF_P2P_STATUS_DISCOVER_LISTEN, &p2p->status)) {
+- brcmf_err("Previous LISTEN is not completed yet\n");
++ bphy_err(drvr, "Previous LISTEN is not completed yet\n");
+ /* WAR: prevent cookie mismatch in wpa_supplicant return OK */
+ goto exit;
+ }
+@@ -1053,6 +1058,7 @@ void brcmf_p2p_cancel_remain_on_channel(
+ */
+ static s32 brcmf_p2p_act_frm_search(struct brcmf_p2p_info *p2p, u16 channel)
+ {
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ s32 err;
+ u32 channel_cnt;
+ u16 *default_chan_list;
+@@ -1068,7 +1074,7 @@ static s32 brcmf_p2p_act_frm_search(stru
+ default_chan_list = kzalloc(channel_cnt * sizeof(*default_chan_list),
+ GFP_KERNEL);
+ if (default_chan_list == NULL) {
+- brcmf_err("channel list allocation failed\n");
++ bphy_err(drvr, "channel list allocation failed\n");
+ err = -ENOMEM;
+ goto exit;
+ }
+@@ -1110,6 +1116,7 @@ static void brcmf_p2p_afx_handler(struct
+ struct brcmf_p2p_info *p2p = container_of(afx_hdl,
+ struct brcmf_p2p_info,
+ afx_hdl);
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ s32 err;
+
+ if (!afx_hdl->is_active)
+@@ -1123,7 +1130,7 @@ static void brcmf_p2p_afx_handler(struct
+ err = brcmf_p2p_act_frm_search(p2p, afx_hdl->peer_listen_chan);
+
+ if (err) {
+- brcmf_err("ERROR occurred! value is (%d)\n", err);
++ bphy_err(drvr, "ERROR occurred! value is (%d)\n", err);
+ if (test_bit(BRCMF_P2P_STATUS_FINDING_COMMON_CHANNEL,
+ &p2p->status))
+ complete(&afx_hdl->act_frm_scan);
+@@ -1345,7 +1352,8 @@ int brcmf_p2p_notify_action_frame_rx(str
+ const struct brcmf_event_msg *e,
+ void *data)
+ {
+- struct brcmf_cfg80211_info *cfg = ifp->drvr->config;
++ struct brcmf_pub *drvr = ifp->drvr;
++ struct brcmf_cfg80211_info *cfg = drvr->config;
+ struct brcmf_p2p_info *p2p = &cfg->p2p;
+ struct afx_hdl *afx_hdl = &p2p->afx_hdl;
+ struct wireless_dev *wdev;
+@@ -1416,7 +1424,7 @@ int brcmf_p2p_notify_action_frame_rx(str
+ mgmt_frame = kzalloc(offsetof(struct ieee80211_mgmt, u) +
+ mgmt_frame_len, GFP_KERNEL);
+ if (!mgmt_frame) {
+- brcmf_err("No memory available for action frame\n");
++ bphy_err(drvr, "No memory available for action frame\n");
+ return -ENOMEM;
+ }
+ memcpy(mgmt_frame->da, ifp->mac_addr, ETH_ALEN);
+@@ -1499,6 +1507,7 @@ int brcmf_p2p_notify_action_tx_complete(
+ static s32 brcmf_p2p_tx_action_frame(struct brcmf_p2p_info *p2p,
+ struct brcmf_fil_af_params_le *af_params)
+ {
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ struct brcmf_cfg80211_vif *vif;
+ s32 err = 0;
+ s32 timeout = 0;
+@@ -1513,7 +1522,7 @@ static s32 brcmf_p2p_tx_action_frame(str
+ err = brcmf_fil_bsscfg_data_set(vif->ifp, "actframe", af_params,
+ sizeof(*af_params));
+ if (err) {
+- brcmf_err(" sending action frame has failed\n");
++ bphy_err(drvr, " sending action frame has failed\n");
+ goto exit;
+ }
+
+@@ -1563,6 +1572,7 @@ static s32 brcmf_p2p_pub_af_tx(struct br
+ struct brcmf_config_af_params *config_af_params)
+ {
+ struct brcmf_p2p_info *p2p = &cfg->p2p;
++ struct brcmf_pub *drvr = cfg->pub;
+ struct brcmf_fil_action_frame_le *action_frame;
+ struct brcmf_p2p_pub_act_frame *act_frm;
+ s32 err = 0;
+@@ -1641,8 +1651,8 @@ static s32 brcmf_p2p_pub_af_tx(struct br
+ config_af_params->extra_listen = false;
+ break;
+ default:
+- brcmf_err("Unknown p2p pub act frame subtype: %d\n",
+- act_frm->subtype);
++ bphy_err(drvr, "Unknown p2p pub act frame subtype: %d\n",
++ act_frm->subtype);
+ err = -EINVAL;
+ }
+ return err;
+@@ -1664,6 +1674,7 @@ bool brcmf_p2p_send_action_frame(struct
+ struct brcmf_fil_action_frame_le *action_frame;
+ struct brcmf_config_af_params config_af_params;
+ struct afx_hdl *afx_hdl = &p2p->afx_hdl;
++ struct brcmf_pub *drvr = cfg->pub;
+ u16 action_frame_len;
+ bool ack = false;
+ u8 category;
+@@ -1699,7 +1710,7 @@ bool brcmf_p2p_send_action_frame(struct
+ if (brcmf_p2p_pub_af_tx(cfg, af_params, &config_af_params)) {
+ /* Just send unknown subtype frame with */
+ /* default parameters. */
+- brcmf_err("P2P Public action frame, unknown subtype.\n");
++ bphy_err(drvr, "P2P Public action frame, unknown subtype.\n");
+ }
+ } else if (brcmf_p2p_is_gas_action(action_frame->data,
+ action_frame_len)) {
+@@ -1721,7 +1732,7 @@ bool brcmf_p2p_send_action_frame(struct
+ af_params->dwell_time =
+ cpu_to_le32(P2P_AF_MIN_DWELL_TIME);
+ } else {
+- brcmf_err("Unknown action type: %d\n", action);
++ bphy_err(drvr, "Unknown action type: %d\n", action);
+ goto exit;
+ }
+ } else if (brcmf_p2p_is_p2p_action(action_frame->data,
+@@ -1729,8 +1740,8 @@ bool brcmf_p2p_send_action_frame(struct
+ /* do not configure anything. it will be */
+ /* sent with a default configuration */
+ } else {
+- brcmf_err("Unknown Frame: category 0x%x, action 0x%x\n",
+- category, action);
++ bphy_err(drvr, "Unknown Frame: category 0x%x, action 0x%x\n",
++ category, action);
+ return false;
+ }
+
+@@ -1768,7 +1779,7 @@ bool brcmf_p2p_send_action_frame(struct
+
+ if (brcmf_p2p_af_searching_channel(p2p) ==
+ P2P_INVALID_CHANNEL) {
+- brcmf_err("Couldn't find peer's channel.\n");
++ bphy_err(drvr, "Couldn't find peer's channel.\n");
+ goto exit;
+ }
+
+@@ -1790,7 +1801,8 @@ bool brcmf_p2p_send_action_frame(struct
+ tx_retry++;
+ }
+ if (ack == false) {
+- brcmf_err("Failed to send Action Frame(retry %d)\n", tx_retry);
++ bphy_err(drvr, "Failed to send Action Frame(retry %d)\n",
++ tx_retry);
+ clear_bit(BRCMF_P2P_STATUS_GO_NEG_PHASE, &p2p->status);
+ }
+
+@@ -1972,6 +1984,7 @@ int brcmf_p2p_ifchange(struct brcmf_cfg8
+ enum brcmf_fil_p2p_if_types if_type)
+ {
+ struct brcmf_p2p_info *p2p = &cfg->p2p;
++ struct brcmf_pub *drvr = cfg->pub;
+ struct brcmf_cfg80211_vif *vif;
+ struct brcmf_fil_p2p_if_le if_request;
+ s32 err;
+@@ -1981,13 +1994,13 @@ int brcmf_p2p_ifchange(struct brcmf_cfg8
+
+ vif = p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif;
+ if (!vif) {
+- brcmf_err("vif for P2PAPI_BSSCFG_PRIMARY does not exist\n");
++ bphy_err(drvr, "vif for P2PAPI_BSSCFG_PRIMARY does not exist\n");
+ return -EPERM;
+ }
+ brcmf_notify_escan_complete(cfg, vif->ifp, true, true);
+ vif = p2p->bss_idx[P2PAPI_BSSCFG_CONNECTION].vif;
+ if (!vif) {
+- brcmf_err("vif for P2PAPI_BSSCFG_CONNECTION does not exist\n");
++ bphy_err(drvr, "vif for P2PAPI_BSSCFG_CONNECTION does not exist\n");
+ return -EPERM;
+ }
+ brcmf_set_mpc(vif->ifp, 0);
+@@ -2005,7 +2018,7 @@ int brcmf_p2p_ifchange(struct brcmf_cfg8
+ err = brcmf_fil_iovar_data_set(vif->ifp, "p2p_ifupd", &if_request,
+ sizeof(if_request));
+ if (err) {
+- brcmf_err("p2p_ifupd FAILED, err=%d\n", err);
++ bphy_err(drvr, "p2p_ifupd FAILED, err=%d\n", err);
+ brcmf_cfg80211_arm_vif_event(cfg, NULL);
+ return err;
+ }
+@@ -2013,7 +2026,7 @@ int brcmf_p2p_ifchange(struct brcmf_cfg8
+ BRCMF_VIF_EVENT_TIMEOUT);
+ brcmf_cfg80211_arm_vif_event(cfg, NULL);
+ if (!err) {
+- brcmf_err("No BRCMF_E_IF_CHANGE event received\n");
++ bphy_err(drvr, "No BRCMF_E_IF_CHANGE event received\n");
+ return -EIO;
+ }
+
+@@ -2076,6 +2089,7 @@ static struct wireless_dev *brcmf_p2p_cr
+ struct wiphy *wiphy,
+ u8 *addr)
+ {
++ struct brcmf_pub *drvr = p2p->cfg->pub;
+ struct brcmf_cfg80211_vif *p2p_vif;
+ struct brcmf_if *p2p_ifp;
+ struct brcmf_if *pri_ifp;
+@@ -2087,7 +2101,7 @@ static struct wireless_dev *brcmf_p2p_cr
+
+ p2p_vif = brcmf_alloc_vif(p2p->cfg, NL80211_IFTYPE_P2P_DEVICE);
+ if (IS_ERR(p2p_vif)) {
+- brcmf_err("could not create discovery vif\n");
++ bphy_err(drvr, "could not create discovery vif\n");
+ return (struct wireless_dev *)p2p_vif;
+ }
+
+@@ -2101,7 +2115,7 @@ static struct wireless_dev *brcmf_p2p_cr
+ /* Initialize P2P Discovery in the firmware */
+ err = brcmf_fil_iovar_int_set(pri_ifp, "p2p_disc", 1);
+ if (err < 0) {
+- brcmf_err("set p2p_disc error\n");
++ bphy_err(drvr, "set p2p_disc error\n");
+ brcmf_fweh_p2pdev_setup(pri_ifp, false);
+ brcmf_cfg80211_arm_vif_event(p2p->cfg, NULL);
+ goto fail;
+@@ -2113,7 +2127,7 @@ static struct wireless_dev *brcmf_p2p_cr
+ brcmf_cfg80211_arm_vif_event(p2p->cfg, NULL);
+ brcmf_fweh_p2pdev_setup(pri_ifp, false);
+ if (!err) {
+- brcmf_err("timeout occurred\n");
++ bphy_err(drvr, "timeout occurred\n");
+ err = -EIO;
+ goto fail;
+ }
+@@ -2127,7 +2141,7 @@ static struct wireless_dev *brcmf_p2p_cr
+ /* verify bsscfg index for P2P discovery */
+ err = brcmf_fil_iovar_int_get(pri_ifp, "p2p_dev", &bsscfgidx);
+ if (err < 0) {
+- brcmf_err("retrieving discover bsscfg index failed\n");
++ bphy_err(drvr, "retrieving discover bsscfg index failed\n");
+ goto fail;
+ }
+
+@@ -2162,6 +2176,7 @@ struct wireless_dev *brcmf_p2p_add_vif(s
+ {
+ struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
+ struct brcmf_if *ifp = netdev_priv(cfg_to_ndev(cfg));
++ struct brcmf_pub *drvr = cfg->pub;
+ struct brcmf_cfg80211_vif *vif;
+ enum brcmf_fil_p2p_if_types iftype;
+ int err;
+@@ -2202,7 +2217,7 @@ struct wireless_dev *brcmf_p2p_add_vif(s
+ BRCMF_VIF_EVENT_TIMEOUT);
+ brcmf_cfg80211_arm_vif_event(cfg, NULL);
+ if (!err) {
+- brcmf_err("timeout occurred\n");
++ bphy_err(drvr, "timeout occurred\n");
+ err = -EIO;
+ goto fail;
+ }
+@@ -2210,7 +2225,7 @@ struct wireless_dev *brcmf_p2p_add_vif(s
+ /* interface created in firmware */
+ ifp = vif->ifp;
+ if (!ifp) {
+- brcmf_err("no if pointer provided\n");
++ bphy_err(drvr, "no if pointer provided\n");
+ err = -ENOENT;
+ goto fail;
+ }
+@@ -2221,7 +2236,7 @@ struct wireless_dev *brcmf_p2p_add_vif(s
+ #endif /* >= 3.17.0 */
+ err = brcmf_net_attach(ifp, true);
+ if (err) {
+- brcmf_err("Registering netdevice failed\n");
++ bphy_err(drvr, "Registering netdevice failed\n");
+ goto fail;
+ }
+
+@@ -2375,6 +2390,7 @@ void brcmf_p2p_stop_device(struct wiphy
+ */
+ s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg, bool p2pdev_forced)
+ {
++ struct brcmf_pub *drvr = cfg->pub;
+ struct brcmf_p2p_info *p2p;
+ struct brcmf_if *pri_ifp;
+ s32 err = 0;
+@@ -2389,7 +2405,7 @@ s32 brcmf_p2p_attach(struct brcmf_cfg802
+ if (p2pdev_forced) {
+ err_ptr = brcmf_p2p_create_p2pdev(p2p, NULL, NULL);
+ if (IS_ERR(err_ptr)) {
+- brcmf_err("P2P device creation failed.\n");
++ bphy_err(drvr, "P2P device creation failed.\n");
+ err = PTR_ERR(err_ptr);
+ }
+ } else {
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c
+@@ -47,6 +47,7 @@ static int brcmf_pno_channel_config(stru
+ static int brcmf_pno_config(struct brcmf_if *ifp, u32 scan_freq,
+ u32 mscan, u32 bestn)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ struct brcmf_pno_param_le pfn_param;
+ u16 flags;
+ u32 pfnmem;
+@@ -75,13 +76,13 @@ static int brcmf_pno_config(struct brcmf
+ /* set bestn in firmware */
+ err = brcmf_fil_iovar_int_set(ifp, "pfnmem", pfnmem);
+ if (err < 0) {
+- brcmf_err("failed to set pfnmem\n");
++ bphy_err(drvr, "failed to set pfnmem\n");
+ goto exit;
+ }
+ /* get max mscan which the firmware supports */
+ err = brcmf_fil_iovar_int_get(ifp, "pfnmem", &pfnmem);
+ if (err < 0) {
+- brcmf_err("failed to get pfnmem\n");
++ bphy_err(drvr, "failed to get pfnmem\n");
+ goto exit;
+ }
+ mscan = min_t(u32, mscan, pfnmem);
+@@ -95,7 +96,7 @@ static int brcmf_pno_config(struct brcmf
+ err = brcmf_fil_iovar_data_set(ifp, "pfn_set", &pfn_param,
+ sizeof(pfn_param));
+ if (err)
+- brcmf_err("pfn_set failed, err=%d\n", err);
++ bphy_err(drvr, "pfn_set failed, err=%d\n", err);
+
+ exit:
+ return err;
+@@ -104,6 +105,7 @@ exit:
+ static int brcmf_pno_set_random(struct brcmf_if *ifp, u8 *mac_addr,
+ u8 *mac_mask)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ struct brcmf_pno_macaddr_le pfn_mac;
+ int err, i;
+
+@@ -123,7 +125,7 @@ static int brcmf_pno_set_random(struct b
+ err = brcmf_fil_iovar_data_set(ifp, "pfn_macaddr", &pfn_mac,
+ sizeof(pfn_mac));
+ if (err)
+- brcmf_err("pfn_macaddr failed, err=%d\n", err);
++ bphy_err(drvr, "pfn_macaddr failed, err=%d\n", err);
+
+ return err;
+ }
+@@ -165,6 +167,7 @@ static bool brcmf_is_ssid_active(struct
+
+ int brcmf_pno_clean(struct brcmf_if *ifp)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ int ret;
+
+ /* Disable pfn */
+@@ -174,7 +177,7 @@ int brcmf_pno_clean(struct brcmf_if *ifp
+ ret = brcmf_fil_iovar_data_set(ifp, "pfnclear", NULL, 0);
+ }
+ if (ret < 0)
+- brcmf_err("failed code %d\n", ret);
++ bphy_err(drvr, "failed code %d\n", ret);
+
+ return ret;
+ }
+@@ -182,6 +185,7 @@ int brcmf_pno_clean(struct brcmf_if *ifp
+ int brcmf_pno_start_sched_scan(struct brcmf_if *ifp,
+ struct cfg80211_sched_scan_request *req)
+ {
++ struct brcmf_pub *drvr = ifp->drvr;
+ struct brcmu_d11inf *d11inf;
+ struct brcmf_pno_config_le pno_cfg;
+ struct cfg80211_ssid *ssid;
+@@ -191,7 +195,7 @@ int brcmf_pno_start_sched_scan(struct br
+ /* clean up everything */
+ ret = brcmf_pno_clean(ifp);
+ if (ret < 0) {
+- brcmf_err("failed error=%d\n", ret);
++ bphy_err(drvr, "failed error=%d\n", ret);
+ return ret;
+ }
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.c
+@@ -47,15 +47,15 @@ int brcmf_proto_attach(struct brcmf_pub
+ if (brcmf_proto_msgbuf_attach(drvr))
+ goto fail;
+ } else {
+- brcmf_err("Unsupported proto type %d\n",
+- drvr->bus_if->proto_type);
++ bphy_err(drvr, "Unsupported proto type %d\n",
++ drvr->bus_if->proto_type);
+ goto fail;
+ }
+ if (!proto->tx_queue_data || (proto->hdrpull == NULL) ||
+ (proto->query_dcmd == NULL) || (proto->set_dcmd == NULL) ||
+ (proto->configure_addr_mode == NULL) ||
+ (proto->delete_peer == NULL) || (proto->add_tdls_peer == NULL)) {
+- brcmf_err("Not all proto handlers have been installed\n");
++ bphy_err(drvr, "Not all proto handlers have been installed\n");
+ goto fail;
+ }
+ return 0;