All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@qca.qualcomm.com>
To: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"johannes@sipsolutions.net" <johannes@sipsolutions.net>,
	Dmitrii Lebed <dlebed@quantenna.com>,
	Sergei Maksimenko <smaksimenko@quantenna.com>,
	Sergey Matyukevich <smatyukevich@quantenna.com>,
	Bindu Therthala <btherthala@quantenna.com>,
	"hwang@quantenna.com" <hwang@quantenna.com>,
	Kamlesh Rath <krath@quantenna.com>,
	Avinash Patil <avinashp@quantenna.com>
Subject: Re: [v6] qtnfmac: introduce new FullMAC driver for Quantenna chipsets
Date: Fri, 12 May 2017 15:20:35 +0000	[thread overview]
Message-ID: <87shkap0e5.fsf@kamboji.qca.qualcomm.com> (raw)
In-Reply-To: <20170512151854.6F16A60953@smtp.codeaurora.org> (Kalle Valo's message of "Fri, 12 May 2017 15:18:54 +0000 (UTC)")

Kalle Valo <kvalo@codeaurora.org> writes:

> Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> wrote:
>> From: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
>>=20
>> This patch adds support for new FullMAC WiFi driver for Quantenna
>> QSR10G chipsets.
>>=20
>> QSR10G (aka Pearl) is Quantenna's 8x8, 160M, 11ac offering.
>> QSR10G supports 2 simultaneous WMACs - one 5G and one 2G.
>> 5G WMAC supports 160M, 8x8 configuration. FW supports
>> up to 8 concurrent virtual interfaces on each WMAC.
>>=20
>> Patch introduces 2 new drivers:
>> - qtnfmac.ko for interfacing with kernel wireless core
>> - qtnfmac_pearl_pcie.ko for interfacing with hardware over PCIe interfac=
e
>>=20
>> Signed-off-by: Dmitrii Lebed <dlebed@quantenna.com>
>> Signed-off-by: Sergei Maksimenko <smaksimenko@quantenna.com>
>> Signed-off-by: Sergey Matyukevich <smatyukevich@quantenna.com>
>> Signed-off-by: Bindu Therthala <btherthala@quantenna.com>
>> Signed-off-by: Huizhao Wang <hwang@quantenna.com>
>> Signed-off-by: Kamlesh Rath <krath@quantenna.com>
>> Signed-off-by: Avinash Patil <avinashp@quantenna.com>
>> Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
>
> I applied this now to the pending branch so that the kbuild bot can do it=
's
> magic:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne=
xt.git/log/?h=3Dpending
>
> If all goes smooth I'm planning to apply this to wireless-drivers-next ma=
ster
> branch within the next week or two. So if there's something still to comm=
ent
> about this driver better speak up now. And unless it's something really
> critical any changes can be done as followup patches. I don't want to del=
ay
> this any longer.

Here's the diff between v5 and v6:

diff --git a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c b/drivers/ne=
t/wireless/quantenna/qtnfmac/cfg80211.c
index b74944652eb5..fc0ce2c09097 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
@@ -80,11 +80,12 @@ qtnf_mgmt_stypes[NUM_NL80211_IFTYPES] =3D {
 static int
 qtnf_change_virtual_intf(struct wiphy *wiphy,
 			 struct net_device *dev,
-			 enum nl80211_iftype type, u32 *flags,
+			 enum nl80211_iftype type,
 			 struct vif_params *params)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
 	u8 *mac_addr;
+	int ret;
=20
 	if (params)
 		mac_addr =3D params->macaddr;
@@ -93,9 +94,11 @@ qtnf_change_virtual_intf(struct wiphy *wiphy,
=20
 	qtnf_scan_done(vif->mac, true);
=20
-	if (qtnf_cmd_send_change_intf_type(vif, type, mac_addr)) {
-		pr_err("failed to change interface type\n");
-		return -EFAULT;
+	ret =3D qtnf_cmd_send_change_intf_type(vif, type, mac_addr);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to change VIF type: %d\n",
+		       vif->mac->macid, vif->vifid, ret);
+		return ret;
 	}
=20
 	vif->wdev.iftype =3D type;
@@ -107,13 +110,14 @@ int qtnf_del_virtual_intf(struct wiphy *wiphy, struct=
 wireless_dev *wdev)
 	struct net_device *netdev =3D  wdev->netdev;
 	struct qtnf_vif *vif;
=20
-	if (WARN(!netdev, "qtnfmac: could not get netdev for wdev"))
+	if (WARN_ON(!netdev))
 		return -EFAULT;
=20
 	vif =3D qtnf_netdev_get_priv(wdev->netdev);
=20
 	if (qtnf_cmd_send_del_intf(vif))
-		pr_err("failed to send del_intf command\n");
+		pr_err("VIF%u.%u: failed to delete VIF\n", vif->mac->macid,
+		       vif->vifid);
=20
 	/* Stop data */
 	netif_tx_stop_all_queues(netdev);
@@ -131,12 +135,11 @@ int qtnf_del_virtual_intf(struct wiphy *wiphy, struct=
 wireless_dev *wdev)
 	return 0;
 }
=20
-struct wireless_dev *qtnf_add_virtual_intf(struct wiphy *wiphy,
-					   const char *name,
-					   unsigned char name_assign_type,
-					   enum nl80211_iftype type,
-					   u32 *flags,
-					   struct vif_params *params)
+static struct wireless_dev *qtnf_add_virtual_intf(struct wiphy *wiphy,
+						  const char *name,
+						  unsigned char name_assign_t,
+						  enum nl80211_iftype type,
+						  struct vif_params *params)
 {
 	struct qtnf_wmac *mac;
 	struct qtnf_vif *vif;
@@ -152,7 +155,7 @@ struct wireless_dev *qtnf_add_virtual_intf(struct wiphy=
 *wiphy,
 	case NL80211_IFTYPE_AP:
 		vif =3D qtnf_mac_get_free_vif(mac);
 		if (!vif) {
-			pr_err("could not get free private structure\n");
+			pr_err("MAC%u: no free VIF available\n", mac->macid);
 			return ERR_PTR(-EFAULT);
 		}
=20
@@ -163,7 +166,7 @@ struct wireless_dev *qtnf_add_virtual_intf(struct wiphy=
 *wiphy,
 		vif->sta_state =3D QTNF_STA_DISCONNECTED;
 		break;
 	default:
-		pr_err("unsupported virtual interface type (%d)\n", type);
+		pr_err("MAC%u: unsupported IF type %d\n", mac->macid, type);
 		return ERR_PTR(-ENOTSUPP);
 	}
=20
@@ -171,18 +174,19 @@ struct wireless_dev *qtnf_add_virtual_intf(struct wip=
hy *wiphy,
 		mac_addr =3D params->macaddr;
=20
 	if (qtnf_cmd_send_add_intf(vif, type, mac_addr)) {
-		pr_err("failed to send add_intf command\n");
+		pr_err("VIF%u.%u: failed to add VIF\n", mac->macid, vif->vifid);
 		goto err_cmd;
 	}
=20
 	if (!is_valid_ether_addr(vif->mac_addr)) {
-		pr_err("FW reported invalid MAC for new interface: %pM\n",
-		       vif->mac_addr);
+		pr_err("VIF%u.%u: FW reported bad MAC: %pM\n",
+		       mac->macid, vif->vifid, vif->mac_addr);
 		goto err_mac;
 	}
=20
-	if (qtnf_core_net_attach(mac, vif, name, name_assign_type, type)) {
-		pr_err("could not attach netdev\n");
+	if (qtnf_core_net_attach(mac, vif, name, name_assign_t, type)) {
+		pr_err("VIF%u.%u: failed to attach netdev\n", mac->macid,
+		       vif->vifid);
 		goto err_net;
 	}
=20
@@ -191,11 +195,8 @@ struct wireless_dev *qtnf_add_virtual_intf(struct wiph=
y *wiphy,
=20
 err_net:
 	vif->netdev =3D NULL;
-
 err_mac:
-	if (qtnf_cmd_send_del_intf(vif))
-		pr_err("failed to send del_intf command\n");
-
+	qtnf_cmd_send_del_intf(vif);
 err_cmd:
 	vif->wdev.iftype =3D NL80211_IFTYPE_UNSPECIFIED;
=20
@@ -254,7 +255,7 @@ static int qtnf_change_beacon(struct wiphy *wiphy, stru=
ct net_device *dev,
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
=20
 	if (!(vif->bss_status & QTNF_STATE_AP_START)) {
-		pr_err("bss not started\n");
+		pr_err("VIF%u.%u: not started\n", vif->mac->macid, vif->vifid);
 		return -EFAULT;
 	}
=20
@@ -266,6 +267,7 @@ static int qtnf_start_ap(struct wiphy *wiphy, struct ne=
t_device *dev,
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
 	struct qtnf_bss_config *bss_cfg;
+	int ret;
=20
 	bss_cfg =3D &vif->bss_cfg;
=20
@@ -284,48 +286,60 @@ static int qtnf_start_ap(struct wiphy *wiphy, struct =
net_device *dev,
 	memcpy(&bss_cfg->crypto, &settings->crypto,
 	       sizeof(struct cfg80211_crypto_settings));
=20
-	if (qtnf_cmd_send_config_ap(vif)) {
-		pr_err("failed to upload AP configuration to FW\n");
-		return -EFAULT;
+	ret =3D qtnf_cmd_send_config_ap(vif);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to push config to FW\n",
+		       vif->mac->macid, vif->vifid);
+		goto out;
 	}
=20
 	if (!(vif->bss_status & QTNF_STATE_AP_CONFIG)) {
-		pr_err("failed to configure AP settings in FW\n");
-		return -EFAULT;
+		pr_err("VIF%u.%u: AP config failed in FW\n", vif->mac->macid,
+		       vif->vifid);
+		ret =3D -EFAULT;
+		goto out;
 	}
=20
-	/* update beacon extra IEs */
-	if (qtnf_mgmt_set_appie(vif, &settings->beacon)) {
-		pr_err("failed to setup mgmt frames IEs in FW\n");
-		return -EFAULT;
+	ret =3D qtnf_mgmt_set_appie(vif, &settings->beacon);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to add IEs to beacon\n",
+		       vif->mac->macid, vif->vifid);
+		goto out;
 	}
=20
-	if (qtnf_cmd_send_start_ap(vif)) {
-		pr_err("failed to issue start AP command\n");
-		return -EFAULT;
+	ret =3D qtnf_cmd_send_start_ap(vif);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to start AP\n", vif->mac->macid,
+		       vif->vifid);
+		goto out;
 	}
=20
 	if (!(vif->bss_status & QTNF_STATE_AP_START)) {
-		pr_err("failed to start AP operations in FW\n");
-		return -EFAULT;
+		pr_err("VIF%u.%u: FW failed to start AP operation\n",
+		       vif->mac->macid, vif->vifid);
+		ret =3D -EFAULT;
 	}
=20
-	return 0;
+out:
+	return ret;
 }
=20
 static int qtnf_stop_ap(struct wiphy *wiphy, struct net_device *dev)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
-	if (qtnf_cmd_send_stop_ap(vif)) {
-		pr_err("failed to stop AP operation in FW\n");
+	ret =3D qtnf_cmd_send_stop_ap(vif);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to stop AP operation in FW\n",
+		       vif->mac->macid, vif->vifid);
 		vif->bss_status &=3D ~QTNF_STATE_AP_START;
 		vif->bss_status &=3D ~QTNF_STATE_AP_CONFIG;
=20
 		netif_carrier_off(vif->netdev);
-		return -EFAULT;
 	}
-	return 0;
+
+	return ret;
 }
=20
 static int qtnf_set_wiphy_params(struct wiphy *wiphy, u32 changed)
@@ -336,18 +350,18 @@ static int qtnf_set_wiphy_params(struct wiphy *wiphy,=
 u32 changed)
=20
 	vif =3D qtnf_mac_get_base_vif(mac);
 	if (!vif) {
-		pr_err("primary interface is not configured\n");
+		pr_err("MAC%u: primary VIF is not configured\n", mac->macid);
 		return -EFAULT;
 	}
=20
 	if (changed & (WIPHY_PARAM_RETRY_LONG | WIPHY_PARAM_RETRY_SHORT)) {
-		pr_err("device doesn't support modifing retry parameters\n");
+		pr_err("MAC%u: can't modify retry params\n", mac->macid);
 		return -EOPNOTSUPP;
 	}
=20
 	ret =3D qtnf_cmd_send_update_phy_params(mac, changed);
 	if (ret)
-		pr_err("failed to configure phy thresholds\n");
+		pr_err("MAC%u: failed to update PHY params\n", mac->macid);
=20
 	return ret;
 }
@@ -379,20 +393,22 @@ qtnf_mgmt_frame_register(struct wiphy *wiphy, struct =
wireless_dev *wdev,
 		qlink_frame_type =3D QLINK_MGMT_FRAME_ACTION;
 		break;
 	default:
-		pr_warn("unsupported frame type: %X\n",
+		pr_warn("VIF%u.%u: unsupported frame type: %X\n",
+			vif->mac->macid, vif->vifid,
 			(frame_type & IEEE80211_FCTL_STYPE) >> 4);
 		return;
 	}
=20
 	if (qtnf_cmd_send_register_mgmt(vif, qlink_frame_type, reg)) {
-		pr_warn("failed to %sregistered mgmt frame type 0x%x\n",
-			reg ? "" : "un", frame_type);
+		pr_warn("VIF%u.%u: failed to %sregister mgmt frame type 0x%x\n",
+			vif->mac->macid, vif->vifid, reg ? "" : "un",
+			frame_type);
 		return;
 	}
=20
 	vif->mgmt_frames_bitmask =3D new_mask;
-	pr_debug("%sregistered mgmt frame type 0x%x\n",
-		 reg ? "" : "un", frame_type);
+	pr_debug("VIF%u.%u: %sregistered mgmt frame type 0x%x\n",
+		 vif->mac->macid, vif->vifid, reg ? "" : "un", frame_type);
 }
=20
 static int
@@ -465,43 +481,44 @@ static int qtnf_add_key(struct wiphy *wiphy, struct n=
et_device *dev,
 			struct key_params *params)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
-	pr_debug("cipher=3D%x idx=3D%u pairwise=3D%u\n", params->cipher,
-		 key_index, pairwise);
-	if (qtnf_cmd_send_add_key(vif, key_index, pairwise, mac_addr,
-				  params)) {
-		pr_err("failed to add key\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_add_key(vif, key_index, pairwise, mac_addr, params)=
;
+	if (ret)
+		pr_err("VIF%u.%u: failed to add key: cipher=3D%x idx=3D%u pw=3D%u\n",
+		       vif->mac->macid, vif->vifid, params->cipher, key_index,
+		       pairwise);
+
+	return ret;
 }
=20
 static int qtnf_del_key(struct wiphy *wiphy, struct net_device *dev,
 			u8 key_index, bool pairwise, const u8 *mac_addr)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
-	pr_debug("idx=3D%u pairwise=3D%u\n", key_index, pairwise);
-	if (qtnf_cmd_send_del_key(vif, key_index, pairwise, mac_addr)) {
-		pr_err("failed to delete key\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_del_key(vif, key_index, pairwise, mac_addr);
+	if (ret)
+		pr_err("VIF%u.%u: failed to delete key: idx=3D%u pw=3D%u\n",
+		       vif->mac->macid, vif->vifid, key_index, pairwise);
+
+	return ret;
 }
=20
 static int qtnf_set_default_key(struct wiphy *wiphy, struct net_device *de=
v,
 				u8 key_index, bool unicast, bool multicast)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
-	pr_debug("idx=3D%u unicast=3D%u multicast=3D%u\n", key_index,
-		 unicast, multicast);
-	if (qtnf_cmd_send_set_default_key(vif, key_index, unicast,
-					  multicast)) {
-		pr_err("failed to set default key\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_set_default_key(vif, key_index, unicast, multicast)=
;
+	if (ret)
+		pr_err("VIF%u.%u: failed to set dflt key: idx=3D%u uc=3D%u mc=3D%u\n",
+		       vif->mac->macid, vif->vifid, key_index, unicast,
+		       multicast);
+
+	return ret;
 }
=20
 static int
@@ -509,13 +526,14 @@ qtnf_set_default_mgmt_key(struct wiphy *wiphy, struct=
 net_device *dev,
 			  u8 key_index)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
-	pr_debug("idx=3D%u\n", key_index);
-	if (qtnf_cmd_send_set_default_mgmt_key(vif, key_index)) {
-		pr_err("failed to set default mgmt key\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_set_default_mgmt_key(vif, key_index);
+	if (ret)
+		pr_err("VIF%u.%u: failed to set default MGMT key: idx=3D%u\n",
+		       vif->mac->macid, vif->vifid, key_index);
+
+	return ret;
 }
=20
 static int
@@ -523,12 +541,14 @@ qtnf_change_station(struct wiphy *wiphy, struct net_d=
evice *dev,
 		    const u8 *mac, struct station_parameters *params)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
-	if (qtnf_cmd_send_change_sta(vif, mac, params)) {
-		pr_err("failed to change STA\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_change_sta(vif, mac, params);
+	if (ret)
+		pr_err("VIF%u.%u: failed to change STA %pM\n",
+		       vif->mac->macid, vif->vifid, mac);
+
+	return ret;
 }
=20
 static int
@@ -536,6 +556,7 @@ qtnf_del_station(struct wiphy *wiphy, struct net_device=
 *dev,
 		 struct station_del_parameters *params)
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
+	int ret;
=20
 	if (params->mac &&
 	    (vif->wdev.iftype =3D=3D NL80211_IFTYPE_AP) &&
@@ -545,25 +566,26 @@ qtnf_del_station(struct wiphy *wiphy, struct net_devi=
ce *dev,
=20
 	qtnf_scan_done(vif->mac, true);
=20
-	if (qtnf_cmd_send_del_sta(vif, params)) {
-		pr_err("failed to delete STA\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_del_sta(vif, params);
+	if (ret)
+		pr_err("VIF%u.%u: failed to delete STA %pM\n",
+		       vif->mac->macid, vif->vifid, params->mac);
+	return ret;
 }
=20
 static int
 qtnf_scan(struct wiphy *wiphy, struct cfg80211_scan_request *request)
 {
 	struct qtnf_wmac *mac =3D wiphy_priv(wiphy);
+	int ret;
=20
 	mac->scan_req =3D request;
=20
-	if (qtnf_cmd_send_scan(mac)) {
-		pr_err("failed to start scan\n");
-		return -EFAULT;
-	}
-	return 0;
+	ret =3D qtnf_cmd_send_scan(mac);
+	if (ret)
+		pr_err("MAC%u: failed to start scan\n", mac->macid);
+
+	return ret;
 }
=20
 static int
@@ -572,11 +594,10 @@ qtnf_connect(struct wiphy *wiphy, struct net_device *=
dev,
 {
 	struct qtnf_vif *vif =3D qtnf_netdev_get_priv(dev);
 	struct qtnf_bss_config *bss_cfg;
+	int ret;
=20
-	if (vif->wdev.iftype !=3D NL80211_IFTYPE_STATION) {
-		pr_err("can't connect when not in STA mode\n");
+	if (vif->wdev.iftype !=3D NL80211_IFTYPE_STATION)
 		return -EOPNOTSUPP;
-	}
=20
 	if (vif->sta_state !=3D QTNF_STA_DISCONNECTED)
 		return -EBUSY;
@@ -590,6 +611,7 @@ qtnf_connect(struct wiphy *wiphy, struct net_device *de=
v,
 	bss_cfg->auth_type =3D sme->auth_type;
 	bss_cfg->privacy =3D sme->privacy;
 	bss_cfg->mfp =3D sme->mfp;
+
 	if ((sme->bg_scan_period > 0) &&
 	    (sme->bg_scan_period <=3D QTNF_MAX_BG_SCAN_PERIOD))
 		bss_cfg->bg_scan_period =3D sme->bg_scan_period;
@@ -597,22 +619,27 @@ qtnf_connect(struct wiphy *wiphy, struct net_device *=
dev,
 		bss_cfg->bg_scan_period =3D QTNF_DEFAULT_BG_SCAN_PERIOD;
 	else
 		bss_cfg->bg_scan_period =3D 0; /* disabled */
+
 	bss_cfg->connect_flags =3D 0;
+
 	if (sme->flags & ASSOC_REQ_DISABLE_HT)
 		bss_cfg->connect_flags |=3D QLINK_STA_CONNECT_DISABLE_HT;
 	if (sme->flags & ASSOC_REQ_DISABLE_VHT)
 		bss_cfg->connect_flags |=3D QLINK_STA_CONNECT_DISABLE_VHT;
 	if (sme->flags & ASSOC_REQ_USE_RRM)
 		bss_cfg->connect_flags |=3D QLINK_STA_CONNECT_USE_RRM;
+
 	memcpy(&bss_cfg->crypto, &sme->crypto, sizeof(bss_cfg->crypto));
 	if (sme->bssid)
 		ether_addr_copy(bss_cfg->bssid, sme->bssid);
 	else
 		eth_zero_addr(bss_cfg->bssid);
=20
-	if (qtnf_cmd_send_connect(vif, sme)) {
-		pr_err("failed to connect\n");
-		return -EFAULT;
+	ret =3D qtnf_cmd_send_connect(vif, sme);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to connect\n", vif->mac->macid,
+		       vif->vifid);
+		return ret;
 	}
=20
 	vif->sta_state =3D QTNF_STA_CONNECTING;
@@ -625,24 +652,25 @@ qtnf_disconnect(struct wiphy *wiphy, struct net_devic=
e *dev,
 {
 	struct qtnf_wmac *mac =3D wiphy_priv(wiphy);
 	struct qtnf_vif *vif;
+	int ret;
=20
 	vif =3D qtnf_mac_get_base_vif(mac);
 	if (!vif) {
-		pr_err("primary interface is not configured\n");
+		pr_err("MAC%u: primary VIF is not configured\n", mac->macid);
 		return -EFAULT;
 	}
=20
-	if (vif->wdev.iftype !=3D NL80211_IFTYPE_STATION) {
-		pr_err("can't disconnect when not in STA mode\n");
+	if (vif->wdev.iftype !=3D NL80211_IFTYPE_STATION)
 		return -EOPNOTSUPP;
-	}
=20
 	if (vif->sta_state =3D=3D QTNF_STA_DISCONNECTED)
 		return 0;
=20
-	if (qtnf_cmd_send_disconnect(vif, reason_code)) {
-		pr_err("failed to disconnect\n");
-		return -EFAULT;
+	ret =3D qtnf_cmd_send_disconnect(vif, reason_code);
+	if (ret) {
+		pr_err("VIF%u.%u: failed to disconnect\n", mac->macid,
+		       vif->vifid);
+		return ret;
 	}
=20
 	vif->sta_state =3D QTNF_STA_DISCONNECTED;
@@ -684,29 +712,30 @@ static void qtnf_cfg80211_reg_notifier(struct wiphy *=
wiphy,
=20
 	bus =3D mac->bus;
=20
-	pr_debug("initiator=3D%d, alpha=3D%c%c, mac=3D%d\n", req->initiator,
-		 req->alpha2[0], req->alpha2[1], mac->macid);
+	pr_debug("MAC%u: initiator=3D%d alpha=3D%c%c\n", mac->macid, req->initiat=
or,
+		 req->alpha2[0], req->alpha2[1]);
=20
 	vif =3D qtnf_mac_get_base_vif(mac);
 	if (!vif) {
-		pr_err("primary interface is not configured\n");
+		pr_err("MAC%u: primary VIF is not configured\n", mac->macid);
 		return;
 	}
+
 	/* ignore non-ISO3166 country codes */
 	for (i =3D 0; i < sizeof(req->alpha2); i++) {
 		if (req->alpha2[i] < 'A' || req->alpha2[i] > 'Z') {
-			pr_err("not a ISO3166 code\n");
+			pr_err("MAC%u: not an ISO3166 code\n", mac->macid);
 			return;
 		}
 	}
 	if (!strncasecmp(req->alpha2, bus->hw_info.alpha2_code,
 			 sizeof(req->alpha2))) {
-		pr_warn("unchanged country code\n");
+		pr_warn("MAC%u: unchanged country code\n", mac->macid);
 		return;
 	}
=20
 	if (qtnf_cmd_send_regulatory_config(mac, req->alpha2)) {
-		pr_err("failed to download regulatory configuration\n");
+		pr_err("MAC%u: failed to configure regulatory\n", mac->macid);
 		return;
 	}
=20
@@ -725,7 +754,7 @@ static void qtnf_cfg80211_reg_notifier(struct wiphy *wi=
phy,
=20
 			if (qtnf_cmd_get_mac_chan_info(chan_mac,
 						       wiphy->bands[band])) {
-				pr_err("could not get channel information for mac%d\n",
+				pr_err("MAC%u: can't get channel info\n",
 				       chan_mac->macid);
 				qtnf_core_detach(bus);
=20
@@ -767,10 +796,8 @@ struct wiphy *qtnf_wiphy_allocate(struct qtnf_bus *bus=
)
 	struct wiphy *wiphy;
=20
 	wiphy =3D wiphy_new(&qtn_cfg80211_ops, sizeof(struct qtnf_wmac));
-	if (!wiphy) {
-		pr_err("could not create new wiphy\n");
+	if (!wiphy)
 		return NULL;
-	}
=20
 	set_wiphy_dev(wiphy, bus->dev);
=20
@@ -785,10 +812,8 @@ static int qtnf_wiphy_setup_if_comb(struct wiphy *wiph=
y,
 	u16 interface_modes =3D 0;
 	size_t i;
=20
-	if (unlikely(!mac_info->limits || !mac_info->n_limits)) {
-		pr_err("no interface types supported\n");
+	if (unlikely(!mac_info->limits || !mac_info->n_limits))
 		return -ENOENT;
-	}
=20
 	if_comb->limits =3D mac_info->limits;
 	if_comb->n_limits =3D mac_info->n_limits;
@@ -804,9 +829,6 @@ static int qtnf_wiphy_setup_if_comb(struct wiphy *wiphy=
,
 	if_comb->radar_detect_widths =3D mac_info->radar_detect_widths;
 	wiphy->interface_modes =3D interface_modes;
=20
-	pr_debug("MAX_IF: %zu; MODES: %.4X; RADAR WIDTHS: %.2X\n",
-		 max_interfaces, interface_modes, if_comb->radar_detect_widths);
-
 	return 0;
 }
=20
@@ -831,8 +853,8 @@ int qtnf_wiphy_register(struct qtnf_hw_info *hw_info, s=
truct qtnf_wmac *mac)
 	if (ret)
 		goto out;
=20
-	pr_info("macid=3D%d, phymode=3D%#x\n", mac->macid,
-		mac->macinfo.phymode_cap);
+	pr_info("MAC%u: phymode=3D%#x radar=3D%#x\n", mac->macid,
+		mac->macinfo.phymode_cap, mac->macinfo.radar_detect_widths);
=20
 	wiphy->frag_threshold =3D mac->macinfo.frag_thr;
 	wiphy->rts_threshold =3D mac->macinfo.rts_thr;
@@ -878,12 +900,10 @@ int qtnf_wiphy_register(struct qtnf_hw_info *hw_info,=
 struct qtnf_wmac *mac)
 		wiphy->regulatory_flags |=3D REGULATORY_WIPHY_SELF_MANAGED;
 	}
=20
-	pr_debug("registering regulatory for mac(%d)\n", mac->macid);
 	ret =3D wiphy_register(wiphy);
=20
 out:
 	if (ret < 0) {
-		pr_err("could not register wiphy\n");
 		kfree(iface_comb);
 		return ret;
 	}
diff --git a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.h b/drivers/ne=
t/wireless/quantenna/qtnfmac/cfg80211.h
index 3788be90a06a..5bd33124a7c8 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.h
+++ b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.h
@@ -24,11 +24,6 @@
 int qtnf_wiphy_register(struct qtnf_hw_info *hw_info, struct qtnf_wmac *ma=
c);
 int qtnf_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev);
 void qtnf_cfg80211_vif_reset(struct qtnf_vif *vif);
-struct wireless_dev *qtnf_add_virtual_intf(struct wiphy *wiphy,
-					   const char *name,
-					   unsigned char name_assign_type,
-					   enum nl80211_iftype type, u32 *flags,
-					   struct vif_params *params);
 void qtnf_band_init_rates(struct ieee80211_supported_band *band);
 void qtnf_band_setup_htvht_caps(struct qtnf_mac_info *macinfo,
 				struct ieee80211_supported_band *band);
diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/ne=
t/wireless/quantenna/qtnfmac/commands.c
index ab000af60bb4..f0a0cfa7d8a1 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/commands.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c
@@ -28,26 +28,26 @@ static int qtnf_cmd_check_reply_header(const struct qli=
nk_resp *resp,
 				       size_t resp_size)
 {
 	if (unlikely(le16_to_cpu(resp->cmd_id) !=3D cmd_id)) {
-		pr_warn("invalid response cmd_id: 0x%.4X !=3D 0x%.4X\n",
-			le16_to_cpu(resp->cmd_id), cmd_id);
+		pr_warn("VIF%u.%u CMD%x: bad cmd_id in response: 0x%.4X\n",
+			mac_id, vif_id, cmd_id, le16_to_cpu(resp->cmd_id));
 		return -EINVAL;
 	}
=20
 	if (unlikely(resp->macid !=3D mac_id)) {
-		pr_warn("invalid response macid: 0x%.2X !=3D 0x%.2X\n",
-			resp->macid, mac_id);
+		pr_warn("VIF%u.%u CMD%x: bad MAC in response: %u\n",
+			mac_id, vif_id, cmd_id, resp->macid);
 		return -EINVAL;
 	}
=20
 	if (unlikely(resp->vifid !=3D vif_id)) {
-		pr_warn("invalid response vif_id: 0x%.2X !=3D 0x%.2X\n",
-			resp->vifid, vif_id);
+		pr_warn("VIF%u.%u CMD%x: bad VIF in response: %u\n",
+			mac_id, vif_id, cmd_id, resp->vifid);
 		return -EINVAL;
 	}
=20
 	if (unlikely(le16_to_cpu(resp->mhdr.len) < resp_size)) {
-		pr_warn("invalid response size for cmd=3D0x%.4X mac=3D0x%.2X vif=3D0x%.2=
X: %u < %zu\n",
-			cmd_id, mac_id, vif_id,
+		pr_warn("VIF%u.%u CMD%x: bad response size %u < %zu\n",
+			mac_id, vif_id, cmd_id,
 			le16_to_cpu(resp->mhdr.len), resp_size);
 		return -ENOSPC;
 	}
@@ -69,17 +69,6 @@ static int qtnf_cmd_send_with_reply(struct qtnf_bus *bus=
,
 	u8 mac_id, vif_id;
 	int ret;
=20
-	if (unlikely(!cmd_skb)) {
-		pr_err("no command skb\n");
-		return -EFAULT;
-	}
-
-	if (unlikely(!cmd_skb->data) || unlikely(cmd_skb->len < sizeof(*cmd))) {
-		pr_err("invalid command skb data\n");
-		kfree_skb(cmd_skb);
-		return -EFAULT;
-	}
-
 	cmd =3D (struct qlink_cmd *)cmd_skb->data;
 	cmd_id =3D le16_to_cpu(cmd->cmd_id);
 	mac_id =3D cmd->macid;
@@ -88,13 +77,14 @@ static int qtnf_cmd_send_with_reply(struct qtnf_bus *bu=
s,
=20
 	if (unlikely(bus->fw_state !=3D QTNF_FW_STATE_ACTIVE &&
 		     le16_to_cpu(cmd->cmd_id) !=3D QLINK_CMD_FW_INIT)) {
-		pr_warn("drop cmd 0x%.4X in fw state %d\n",
-			le16_to_cpu(cmd->cmd_id), bus->fw_state);
+		pr_warn("VIF%u.%u: drop cmd 0x%.4X in fw state %d\n",
+			mac_id, vif_id, le16_to_cpu(cmd->cmd_id),
+			bus->fw_state);
 		return -ENODEV;
 	}
=20
-	pr_debug("cmd=3D0x%.4X macid=3D0x%.2X vif=3D0x%.2X\n",
-		 le16_to_cpu(cmd->cmd_id), cmd->macid, cmd->vifid);
+	pr_debug("VIF%u.%u cmd=3D0x%.4X\n", mac_id, vif_id,
+		 le16_to_cpu(cmd->cmd_id));
=20
 	ret =3D qtnf_trans_send_cmd_with_resp(bus, cmd_skb, &resp_skb);
=20
@@ -141,7 +131,7 @@ static struct sk_buff *qtnf_cmd_alloc_new_cmdskb(u8 mac=
id, u8 vifid, u16 cmd_no,
 	cmd_skb =3D __dev_alloc_skb(sizeof(*cmd) +
 				  QTNF_MAX_CMD_BUF_SIZE, GFP_KERNEL);
 	if (unlikely(!cmd_skb)) {
-		pr_err("failed to allocate cmd_skb\n");
+		pr_err("VIF%u.%u CMD %u: alloc failed\n", macid, vifid, cmd_no);
 		return NULL;
 	}
=20
@@ -177,7 +167,8 @@ int qtnf_cmd_send_start_ap(struct qtnf_vif *vif)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -211,7 +202,7 @@ int qtnf_cmd_send_regulatory_config(struct qtnf_wmac *m=
ac, const char *alpha2)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("MAC%u: CMD failed: %u\n", mac->macid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -287,7 +278,8 @@ int qtnf_cmd_send_config_ap(struct qtnf_vif *vif)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -319,7 +311,8 @@ int qtnf_cmd_send_stop_ap(struct qtnf_vif *vif)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -359,7 +352,8 @@ int qtnf_cmd_send_register_mgmt(struct qtnf_vif *vif, u=
16 frame_type, bool reg)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -378,7 +372,8 @@ int qtnf_cmd_send_mgmt_frame(struct qtnf_vif *vif, u32 =
cookie, u16 flags,
 	int ret;
=20
 	if (sizeof(*cmd) + len > QTNF_MAX_CMD_BUF_SIZE) {
-		pr_warn("frame is too big: %zu\n", len);
+		pr_warn("VIF%u.%u: frame is too big: %zu\n", vif->mac->macid,
+			vif->vifid, len);
 		return -E2BIG;
 	}
=20
@@ -404,7 +399,8 @@ int qtnf_cmd_send_mgmt_frame(struct qtnf_vif *vif, u32 =
cookie, u16 flags,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -423,7 +419,8 @@ int qtnf_cmd_send_mgmt_set_appie(struct qtnf_vif *vif, =
u8 frame_type,
 	int ret;
=20
 	if (sizeof(*cmd) + len > QTNF_MAX_CMD_BUF_SIZE) {
-		pr_warn("frame is too big: %zu\n", len);
+		pr_warn("VIF%u.%u: %u frame is too big: %zu\n", vif->mac->macid,
+			vif->vifid, frame_type, len);
 		return -E2BIG;
 	}
=20
@@ -451,7 +448,8 @@ int qtnf_cmd_send_mgmt_set_appie(struct qtnf_vif *vif, =
u8 frame_type,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u frame %u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, frame_type, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -694,11 +692,13 @@ int qtnf_cmd_get_sta_info(struct qtnf_vif *vif, const=
 u8 *sta_mac,
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
 		switch (res_code) {
 		case QLINK_CMD_RESULT_ENOTFOUND:
-			pr_warn("STA %pM not found\n", sta_mac);
+			pr_warn("VIF%u.%u: %pM STA not found\n",
+				vif->mac->macid, vif->vifid, sta_mac);
 			ret =3D -ENOENT;
 			break;
 		default:
-			pr_err("error returned: %u\n", res_code);
+			pr_err("VIF%u.%u: can't get info for %pM: %u\n",
+			       vif->mac->macid, vif->vifid, sta_mac, res_code);
 			ret =3D -EFAULT;
 			break;
 		}
@@ -708,8 +708,8 @@ int qtnf_cmd_get_sta_info(struct qtnf_vif *vif, const u=
8 *sta_mac,
 	resp =3D (const struct qlink_resp_get_sta_info *)resp_skb->data;
=20
 	if (unlikely(!ether_addr_equal(sta_mac, resp->sta_addr))) {
-		pr_err("wrong mac in reply: %pM !=3D %pM\n",
-		       resp->sta_addr, sta_mac);
+		pr_err("VIF%u.%u: wrong mac in reply: %pM !=3D %pM\n",
+		       vif->mac->macid, vif->vifid, resp->sta_addr, sta_mac);
 		ret =3D -EINVAL;
 		goto out;
 	}
@@ -752,7 +752,8 @@ static int qtnf_cmd_send_add_change_intf(struct qtnf_vi=
f *vif,
 		cmd->intf_info.if_type =3D cpu_to_le16(QLINK_IFTYPE_STATION);
 		break;
 	default:
-		pr_err("unsupported iftype %d\n", iftype);
+		pr_err("VIF%u.%u: unsupported type %d\n", vif->mac->macid,
+		       vif->vifid, iftype);
 		ret =3D -EINVAL;
 		goto out;
 	}
@@ -769,7 +770,8 @@ static int qtnf_cmd_send_add_change_intf(struct qtnf_vi=
f *vif,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD %d failed: %u\n", vif->mac->macid,
+		       vif->vifid, cmd_type, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -823,7 +825,8 @@ int qtnf_cmd_send_del_intf(struct qtnf_vif *vif)
 		cmd->intf_info.if_type =3D cpu_to_le16(QLINK_IFTYPE_STATION);
 		break;
 	default:
-		pr_warn("unsupported iftype %d\n", vif->wdev.iftype);
+		pr_warn("VIF%u.%u: unsupported iftype %d\n", vif->mac->macid,
+			vif->vifid, vif->wdev.iftype);
 		ret =3D -EINVAL;
 		goto out;
 	}
@@ -836,7 +839,8 @@ int qtnf_cmd_send_del_intf(struct qtnf_vif *vif)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -889,8 +893,8 @@ static int qtnf_parse_variable_mac_info(struct qtnf_wma=
c *mac,
 		tlv_value_len =3D le16_to_cpu(tlv->len);
 		tlv_full_len =3D tlv_value_len + sizeof(struct qlink_tlv_hdr);
 		if (tlv_full_len > tlv_buf_size) {
-			pr_warn("malformed TLV 0x%.2X; LEN: %u\n",
-				tlv_type, tlv_value_len);
+			pr_warn("MAC%u: malformed TLV 0x%.2X; LEN: %u\n",
+				mac->macid, tlv_type, tlv_value_len);
 			return -EINVAL;
 		}
=20
@@ -913,16 +917,17 @@ static int qtnf_parse_variable_mac_info(struct qtnf_w=
mac *mac,
 				return -ENOMEM;
=20
 			limits =3D mac->macinfo.limits;
-			pr_debug("iface limit record count=3D%zu\n",
-				 record_count);
 			break;
 		case QTN_TLV_ID_IFACE_LIMIT:
 			if (unlikely(!limits)) {
-				pr_warn("limits yet not initialized\n");
+				pr_warn("MAC%u: limits are not inited\n",
+					mac->macid);
 				return -EINVAL;
 			}
+
 			if (unlikely(tlv_value_len !=3D sizeof(*limit_record))) {
-				pr_warn("record size mismatch\n");
+				pr_warn("MAC%u: record size mismatch\n",
+					mac->macid);
 				return -EINVAL;
 			}
=20
@@ -934,7 +939,7 @@ static int qtnf_parse_variable_mac_info(struct qtnf_wma=
c *mac,
 			limits[rec].types &=3D BIT(NL80211_IFTYPE_AP) |
 					     BIT(NL80211_IFTYPE_STATION);
=20
-			pr_debug("MAX: %u; TYPES: %.4X\n",
+			pr_debug("MAC%u: MAX: %u; TYPES: %.4X\n", mac->macid,
 				 limits[rec].max, limits[rec].types);
=20
 			if (limits[rec].types)
@@ -946,14 +951,16 @@ static int qtnf_parse_variable_mac_info(struct qtnf_w=
mac *mac,
 		tlv_buf_size -=3D tlv_full_len;
 		tlv =3D (struct qlink_tlv_hdr *)(tlv->val + tlv_value_len);
 	}
+
 	if (tlv_buf_size) {
-		pr_warn("malformed TLV buf; bytes left: %zu\n", tlv_buf_size);
+		pr_warn("MAC%u: malformed TLV buf; bytes left: %zu\n",
+			mac->macid, tlv_buf_size);
 		return -EINVAL;
 	}
=20
 	if (mac->macinfo.n_limits !=3D rec) {
-		pr_err("iface combination mismatch: reported=3D%zu, parsed=3D%zu\n",
-		       mac->macinfo.n_limits, rec);
+		pr_err("MAC%u: combination mismatch: reported=3D%zu parsed=3D%zu\n",
+		       mac->macid, mac->macinfo.n_limits, rec);
 		return -EINVAL;
 	}
=20
@@ -1160,11 +1167,13 @@ static int qtnf_cmd_resp_proc_phy_params(struct qtn=
f_wmac *mac,
 		tlv_type =3D le16_to_cpu(tlv->type);
 		tlv_value_len =3D le16_to_cpu(tlv->len);
 		tlv_full_len =3D tlv_value_len + sizeof(struct qlink_tlv_hdr);
+
 		if (tlv_full_len > payload_len) {
-			pr_warn("malformed TLV 0x%.2X; LEN: %u\n",
-				tlv_type, tlv_value_len);
+			pr_warn("MAC%u: malformed TLV 0x%.2X; LEN: %u\n",
+				mac->macid, tlv_type, tlv_value_len);
 			return -EINVAL;
 		}
+
 		switch (tlv_type) {
 		case QTN_TLV_ID_FRAG_THRESH:
 			phy_thr =3D (void *)tlv;
@@ -1187,16 +1196,18 @@ static int qtnf_cmd_resp_proc_phy_params(struct qtn=
f_wmac *mac,
 			mac_info->coverage_class =3D class->cclass;
 			break;
 		default:
-			pr_err("Unknown TLV type: %#x\n",
+			pr_err("MAC%u: Unknown TLV type: %#x\n", mac->macid,
 			       le16_to_cpu(tlv->type));
 			break;
 		}
+
 		payload_len -=3D tlv_full_len;
 		tlv =3D (struct qlink_tlv_hdr *)(tlv->val + tlv_value_len);
 	}
=20
 	if (payload_len) {
-		pr_warn("malformed TLV buf; bytes left: %zu\n", payload_len);
+		pr_warn("MAC%u: malformed TLV buf; bytes left: %zu\n",
+			mac->macid, payload_len);
 		return -EINVAL;
 	}
=20
@@ -1225,7 +1236,7 @@ int qtnf_cmd_get_mac_info(struct qtnf_wmac *mac)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("MAC%u: CMD failed: %u\n", mac->macid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1318,14 +1329,15 @@ int qtnf_cmd_get_mac_chan_info(struct qtnf_wmac *ma=
c,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("MAC%u: CMD failed: %u\n", mac->macid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
=20
 	resp =3D (struct qlink_resp_get_chan_info *)resp_skb->data;
 	if (resp->band !=3D qband) {
-		pr_err("reply band %u !=3D cmd band %u\n", resp->band, qband);
+		pr_err("MAC%u: reply band %u !=3D cmd band %u\n", mac->macid,
+		       resp->band, qband);
 		ret =3D -EINVAL;
 		goto out;
 	}
@@ -1361,7 +1373,7 @@ int qtnf_cmd_send_get_phy_params(struct qtnf_wmac *ma=
c)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("MAC%u: CMD failed: %u\n", mac->macid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1407,7 +1419,7 @@ int qtnf_cmd_send_update_phy_params(struct qtnf_wmac =
*mac, u32 changed)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("MAC%u: CMD failed: %u\n", mac->macid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1506,7 +1518,8 @@ int qtnf_cmd_send_add_key(struct qtnf_vif *vif, u8 ke=
y_index, bool pairwise,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n",
+		       vif->mac->macid, vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1546,7 +1559,8 @@ int qtnf_cmd_send_del_key(struct qtnf_vif *vif, u8 ke=
y_index, bool pairwise,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n",
+		       vif->mac->macid, vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1581,7 +1595,8 @@ int qtnf_cmd_send_set_default_key(struct qtnf_vif *vi=
f, u8 key_index,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1613,7 +1628,8 @@ int qtnf_cmd_send_set_default_mgmt_key(struct qtnf_vi=
f *vif, u8 key_index)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1672,7 +1688,8 @@ int qtnf_cmd_send_change_sta(struct qtnf_vif *vif, co=
nst u8 *mac,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1713,7 +1730,8 @@ int qtnf_cmd_send_del_sta(struct qtnf_vif *vif,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1736,7 +1754,7 @@ int qtnf_cmd_send_scan(struct qtnf_wmac *mac)
 	u32 flags;
=20
 	if (scan_req->n_ssids > QTNF_MAX_SSID_LIST_LENGTH) {
-		pr_err("too many SSIDs in scan request\n");
+		pr_err("MAC%u: too many SSIDs in scan request\n", mac->macid);
 		return -EINVAL;
 	}
=20
@@ -1773,8 +1791,9 @@ int qtnf_cmd_send_scan(struct qtnf_wmac *mac)
 				continue;
 			}
=20
-			pr_debug("scan chan=3D%d, freq=3D%d, flags=3D%#x\n",
-				 sc->hw_value, sc->center_freq, sc->flags);
+			pr_debug("MAC%u: scan chan=3D%d, freq=3D%d, flags=3D%#x\n",
+				 mac->macid, sc->hw_value, sc->center_freq,
+				 sc->flags);
 			qchan =3D (struct qlink_tlv_channel *)
 					skb_put(cmd_skb, sizeof(*qchan));
 			memset(qchan, 0, sizeof(*qchan));
@@ -1803,10 +1822,10 @@ int qtnf_cmd_send_scan(struct qtnf_wmac *mac)
 	if (unlikely(ret))
 		goto out;
=20
-	pr_debug("scan started on mac(%u)\n", mac->macid);
+	pr_debug("MAC%u: scan started\n", mac->macid);
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("MAC%u: CMD failed: %u\n", mac->macid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1884,7 +1903,8 @@ int qtnf_cmd_send_connect(struct qtnf_vif *vif,
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1917,7 +1937,8 @@ int qtnf_cmd_send_disconnect(struct qtnf_vif *vif, u1=
6 reason_code)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
@@ -1950,7 +1971,8 @@ int qtnf_cmd_send_updown_intf(struct qtnf_vif *vif, b=
ool up)
 		goto out;
=20
 	if (unlikely(res_code !=3D QLINK_CMD_RESULT_OK)) {
-		pr_err("cmd exec failed: 0x%.4X\n", res_code);
+		pr_err("VIF%u.%u: CMD failed: %u\n", vif->mac->macid,
+		       vif->vifid, res_code);
 		ret =3D -EFAULT;
 		goto out;
 	}
diff --git a/drivers/net/wireless/quantenna/qtnfmac/core.c b/drivers/net/wi=
reless/quantenna/qtnfmac/core.c
index 9ceb4fb5cea9..c5ac252464f4 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/core.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/core.c
@@ -27,6 +27,7 @@
 #include "util.h"
=20
 #define QTNF_DMP_MAX_LEN 48
+#define QTNF_PRIMARY_VIF_IDX	0
=20
 struct qtnf_frame_meta_info {
 	u8 magic_s;
@@ -40,14 +41,14 @@ struct qtnf_wmac *qtnf_core_get_mac(const struct qtnf_b=
us *bus, u8 macid)
 	struct qtnf_wmac *mac =3D NULL;
=20
 	if (unlikely(macid >=3D QTNF_MAX_MAC)) {
-		pr_err("received invalid mac(%u)\n", macid);
+		pr_err("invalid MAC index %u\n", macid);
 		return NULL;
 	}
=20
 	mac =3D bus->mac[macid];
=20
 	if (unlikely(!mac)) {
-		pr_err("mac(%u) not initialized\n", macid);
+		pr_err("MAC%u: not initialized\n", macid);
 		return NULL;
 	}
=20
@@ -90,21 +91,21 @@ qtnf_netdev_hard_start_xmit(struct sk_buff *skb, struct=
 net_device *ndev)
 	}
=20
 	if (unlikely(vif->wdev.iftype =3D=3D NL80211_IFTYPE_UNSPECIFIED)) {
-		pr_err_ratelimited("unsupported vif type (%d)\n",
-				   vif->wdev.iftype);
+		pr_err_ratelimited("%s: VIF not initialized\n", ndev->name);
 		dev_kfree_skb_any(skb);
 		return 0;
 	}
=20
 	mac =3D vif->mac;
 	if (unlikely(!mac)) {
-		pr_err_ratelimited("NULL mac pointer");
+		pr_err_ratelimited("%s: NULL mac pointer", ndev->name);
 		dev_kfree_skb_any(skb);
 		return 0;
 	}
=20
 	if (!skb->len || (skb->len > ETH_FRAME_LEN)) {
-		pr_err_ratelimited("invalid skb len %d\n", skb->len);
+		pr_err_ratelimited("%s: invalid skb len %d\n", ndev->name,
+				   skb->len);
 		dev_kfree_skb_any(skb);
 		ndev->stats.tx_dropped++;
 		return 0;
@@ -137,8 +138,7 @@ static void qtnf_netdev_tx_timeout(struct net_device *n=
dev)
 	mac =3D vif->mac;
 	bus =3D mac->bus;
=20
-	pr_warn("Tx timeout- %lu, mac/vif =3D %d/%d\n",
-		jiffies, mac->macid, vif->vifid);
+	pr_warn("VIF%u.%u: Tx timeout- %lu\n", mac->macid, vif->vifid, jiffies);
=20
 	qtnf_bus_data_tx_timeout(bus, ndev);
 	ndev->stats.tx_errors++;
@@ -173,8 +173,8 @@ static int qtnf_mac_init_single_band(struct wiphy *wiph=
y,
=20
 	ret =3D qtnf_cmd_get_mac_chan_info(mac, wiphy->bands[band]);
 	if (ret) {
-		pr_err("failed to get chans info for band %u\n",
-		       band);
+		pr_err("MAC%u: band %u: failed to get chans info: %d\n",
+		       mac->macid, band, ret);
 		return ret;
 	}
=20
@@ -226,7 +226,7 @@ struct qtnf_vif *qtnf_mac_get_base_vif(struct qtnf_wmac=
 *mac)
 {
 	struct qtnf_vif *vif;
=20
-	vif =3D &mac->iflist[0];
+	vif =3D &mac->iflist[QTNF_PRIMARY_VIF_IDX];
=20
 	if (vif->wdev.iftype =3D=3D NL80211_IFTYPE_UNSPECIFIED)
 		return NULL;
@@ -255,31 +255,23 @@ static void qtnf_vif_reset_handler(struct work_struct=
 *work)
 	rtnl_unlock();
 }
=20
-static int qtnf_mac_add_default_intf(struct qtnf_wmac *mac)
+static void qtnf_mac_init_primary_intf(struct qtnf_wmac *mac)
 {
-	struct qtnf_vif *vif;
-
-	vif =3D qtnf_mac_get_free_vif(mac);
-	if (!vif) {
-		pr_err("could not get free vif structure\n");
-		return -EFAULT;
-	}
+	struct qtnf_vif *vif =3D &mac->iflist[QTNF_PRIMARY_VIF_IDX];
=20
 	vif->wdev.iftype =3D NL80211_IFTYPE_AP;
 	vif->bss_priority =3D QTNF_DEF_BSS_PRIORITY;
 	vif->wdev.wiphy =3D priv_to_wiphy(mac);
 	INIT_WORK(&vif->reset_work, qtnf_vif_reset_handler);
 	vif->cons_tx_timeout_cnt =3D 0;
-
-	return 0;
 }
=20
-static struct qtnf_wmac *qtnf_core_mac_alloc(struct qtnf_bus *bus, int mac=
id)
+static struct qtnf_wmac *qtnf_core_mac_alloc(struct qtnf_bus *bus,
+					     unsigned int macid)
 {
 	struct wiphy *wiphy;
 	struct qtnf_wmac *mac;
 	unsigned int i;
-	int ret;
=20
 	wiphy =3D qtnf_wiphy_allocate(bus);
 	if (!wiphy)
@@ -298,15 +290,9 @@ static struct qtnf_wmac *qtnf_core_mac_alloc(struct qt=
nf_bus *bus, int macid)
 		qtnf_sta_list_init(&mac->iflist[i].sta_list);
 	}
=20
-	ret =3D qtnf_mac_add_default_intf(mac);
-	if (ret) {
-		pr_err("failed to create primary interface for mac(%d)\n",
-		       macid);
-		wiphy_free(wiphy);
-		return ERR_PTR(ret);
-	}
-
+	qtnf_mac_init_primary_intf(mac);
 	bus->mac[macid] =3D mac;
+
 	return mac;
 }
=20
@@ -317,11 +303,11 @@ int qtnf_core_net_attach(struct qtnf_wmac *mac, struc=
t qtnf_vif *vif,
 	struct wiphy *wiphy =3D priv_to_wiphy(mac);
 	struct net_device *dev;
 	void *qdev_vif;
+	int ret;
=20
 	dev =3D alloc_netdev_mqs(sizeof(struct qtnf_vif *), name,
 			       name_assign_type, ether_setup, 1, 1);
 	if (!dev) {
-		pr_err("failed to allocate net_device\n");
 		memset(&vif->wdev, 0, sizeof(vif->wdev));
 		vif->wdev.iftype =3D NL80211_IFTYPE_UNSPECIFIED;
 		return -ENOMEM;
@@ -345,14 +331,13 @@ int qtnf_core_net_attach(struct qtnf_wmac *mac, struc=
t qtnf_vif *vif,
=20
 	SET_NETDEV_DEV(dev, mac->bus->dev);
=20
-	if (register_netdevice(dev)) {
-		pr_err("failed to register virtual network device\n");
+	ret =3D register_netdevice(dev);
+	if (ret) {
 		free_netdev(dev);
 		vif->wdev.iftype =3D NL80211_IFTYPE_UNSPECIFIED;
-		return -EFAULT;
 	}
=20
-	return 0;
+	return ret;
 }
=20
 static void qtnf_core_mac_detach(struct qtnf_bus *bus, unsigned int macid)
@@ -402,66 +387,62 @@ static void qtnf_core_mac_detach(struct qtnf_bus *bus=
, unsigned int macid)
 	bus->mac[macid] =3D NULL;
 }
=20
-static int qtnf_core_mac_attach(struct qtnf_bus *bus, int macid)
+static int qtnf_core_mac_attach(struct qtnf_bus *bus, unsigned int macid)
 {
 	struct qtnf_wmac *mac;
 	struct qtnf_vif *vif;
 	int ret;
=20
-	pr_debug("starting mac(%d) init\n", macid);
-
 	if (!(bus->hw_info.mac_bitmap & BIT(macid))) {
-		pr_info("mac(%d) is not available for host operations\n",
-			macid);
+		pr_info("MAC%u is not active in FW\n", macid);
 		return 0;
 	}
=20
 	mac =3D qtnf_core_mac_alloc(bus, macid);
 	if (IS_ERR(mac)) {
-		pr_err("failed to alloc mac(%d)\n", macid);
+		pr_err("MAC%u allocation failed\n", macid);
 		return PTR_ERR(mac);
 	}
=20
 	ret =3D qtnf_cmd_get_mac_info(mac);
 	if (ret) {
-		pr_err("failed to get mac(%d) info\n", macid);
+		pr_err("MAC%u: failed to get info\n", macid);
 		goto error;
 	}
=20
 	vif =3D qtnf_mac_get_base_vif(mac);
 	if (!vif) {
-		pr_err("could not get valid vif pointer\n");
+		pr_err("MAC%u: primary VIF is not ready\n", macid);
 		ret =3D -EFAULT;
 		goto error;
 	}
=20
 	ret =3D qtnf_cmd_send_add_intf(vif, NL80211_IFTYPE_AP, vif->mac_addr);
 	if (ret) {
-		pr_err("could not add primary vif for mac(%d)\n", macid);
+		pr_err("MAC%u: failed to add VIF\n", macid);
 		goto error;
 	}
=20
 	ret =3D qtnf_cmd_send_get_phy_params(mac);
 	if (ret) {
-		pr_err("could not get phy thresholds for mac(%d)\n", macid);
+		pr_err("MAC%u: failed to get PHY settings\n", macid);
 		goto error;
 	}
=20
 	ret =3D qtnf_mac_init_bands(mac);
 	if (ret) {
-		pr_err("could not get channel info for mac(%d)\n", macid);
+		pr_err("MAC%u: failed to init bands\n", macid);
 		goto error;
 	}
=20
 	ret =3D qtnf_wiphy_register(&bus->hw_info, mac);
 	if (ret) {
-		pr_err("wiphy registration failed for mac(%d)\n", macid);
+		pr_err("MAC%u: wiphy registration failed\n", macid);
 		goto error;
 	}
=20
 	mac->wiphy_registered =3D 1;
=20
-	/* add primary networking interface */
 	rtnl_lock();
=20
 	ret =3D qtnf_core_net_attach(mac, vif, "wlan%d", NET_NAME_ENUM,
@@ -469,13 +450,14 @@ static int qtnf_core_mac_attach(struct qtnf_bus *bus,=
 int macid)
 	rtnl_unlock();
=20
 	if (ret) {
-		pr_err("could not attach primary interface for mac(%d)\n",
-		       macid);
+		pr_err("MAC%u: failed to attach netdev\n", macid);
 		vif->wdev.iftype =3D NL80211_IFTYPE_UNSPECIFIED;
 		vif->netdev =3D NULL;
 		goto error;
 	}
=20
+	pr_debug("MAC%u initialized\n", macid);
+
 	return 0;
=20
 error:
@@ -485,7 +467,7 @@ static int qtnf_core_mac_attach(struct qtnf_bus *bus, i=
nt macid)
=20
 int qtnf_core_attach(struct qtnf_bus *bus)
 {
-	int i;
+	unsigned int i;
 	int ret;
=20
 	qtnf_trans_init(bus);
@@ -504,7 +486,7 @@ int qtnf_core_attach(struct qtnf_bus *bus)
=20
 	ret =3D qtnf_cmd_send_init_fw(bus);
 	if (ret) {
-		pr_err("failed to send FW init commands\n");
+		pr_err("failed to init FW: %d\n", ret);
 		goto error;
 	}
=20
@@ -512,7 +494,7 @@ int qtnf_core_attach(struct qtnf_bus *bus)
=20
 	ret =3D qtnf_cmd_get_hw_info(bus);
 	if (ret) {
-		pr_err("failed to get HW info\n");
+		pr_err("failed to get HW info: %d\n", ret);
 		goto error;
 	}
=20
@@ -524,7 +506,7 @@ int qtnf_core_attach(struct qtnf_bus *bus)
 	}
=20
 	if (bus->hw_info.num_mac > QTNF_MAX_MAC) {
-		pr_err("FW reported invalid mac count: %d\n",
+		pr_err("no support for number of MACs=3D%u\n",
 		       bus->hw_info.num_mac);
 		ret =3D -ERANGE;
 		goto error;
@@ -534,7 +516,7 @@ int qtnf_core_attach(struct qtnf_bus *bus)
 		ret =3D qtnf_core_mac_attach(bus, i);
=20
 		if (ret) {
-			pr_err("mac(%d) init failed\n", i);
+			pr_err("MAC%u: attach failed: %d\n", i, ret);
 			goto error;
 		}
 	}
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/w=
ireless/quantenna/qtnfmac/event.c
index e3bcb92cea90..9b61e9a83670 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -41,25 +41,28 @@ qtnf_event_handle_sta_assoc(struct qtnf_wmac *mac, stru=
ct qtnf_vif *vif,
 	const struct qlink_tlv_hdr *tlv;
=20
 	if (unlikely(len < sizeof(*sta_assoc))) {
-		pr_err("payload is too short (%u < %zu)\n",
-		       len, sizeof(*sta_assoc));
+		pr_err("VIF%u.%u: payload is too short (%u < %zu)\n",
+		       mac->macid, vif->vifid, len, sizeof(*sta_assoc));
 		return -EINVAL;
 	}
=20
 	if (vif->wdev.iftype !=3D NL80211_IFTYPE_AP) {
-		pr_err("STA_ASSOC event when not in AP mode\n");
+		pr_err("VIF%u.%u: STA_ASSOC event when not in AP mode\n",
+		       mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
 	if (!(vif->bss_status & QTNF_STATE_AP_START)) {
-		pr_err("STA_ASSOC event when AP is not started\n");
+		pr_err("VIF%u.%u: STA_ASSOC event when AP is not started\n",
+		       mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
 	sta_addr =3D sta_assoc->sta_addr;
 	frame_control =3D le16_to_cpu(sta_assoc->frame_control);
=20
-	pr_debug("MAC:%pM FC:%x\n", sta_addr, frame_control);
+	pr_debug("VIF%u.%u: MAC:%pM FC:%x\n", mac->macid, vif->vifid, sta_addr,
+		 frame_control);
=20
 	qtnf_sta_list_add(&vif->sta_list, sta_addr);
=20
@@ -75,8 +78,9 @@ qtnf_event_handle_sta_assoc(struct qtnf_wmac *mac, struct=
 qtnf_vif *vif,
 		tlv_full_len =3D tlv_value_len + sizeof(struct qlink_tlv_hdr);
=20
 		if (tlv_full_len > payload_len) {
-			pr_warn("malformed TLV 0x%.2X; LEN: %u\n",
-				tlv_type, tlv_value_len);
+			pr_warn("VIF%u.%u: malformed TLV 0x%.2X; LEN: %u\n",
+				mac->macid, vif->vifid, tlv_type,
+				tlv_value_len);
 			return -EINVAL;
 		}
=20
@@ -90,7 +94,8 @@ qtnf_event_handle_sta_assoc(struct qtnf_wmac *mac, struct=
 qtnf_vif *vif,
 	}
=20
 	if (payload_len) {
-		pr_warn("malformed TLV buf; bytes left: %zu\n", payload_len);
+		pr_warn("VIF%u.%u: malformed TLV buf; bytes left: %zu\n",
+			mac->macid, vif->vifid, payload_len);
 		return -EINVAL;
 	}
=20
@@ -109,25 +114,29 @@ qtnf_event_handle_sta_deauth(struct qtnf_wmac *mac, s=
truct qtnf_vif *vif,
 	u16 reason;
=20
 	if (unlikely(len < sizeof(*sta_deauth))) {
-		pr_err("payload is too short (%u < %zu)\n", len,
+		pr_err("VIF%u.%u: payload is too short (%u < %zu)\n",
+		       mac->macid, vif->vifid, len,
 		       sizeof(struct qlink_event_sta_deauth));
 		return -EINVAL;
 	}
=20
 	if (vif->wdev.iftype !=3D NL80211_IFTYPE_AP) {
-		pr_err("STA_DEAUTH event when not in AP mode\n");
+		pr_err("VIF%u.%u: STA_DEAUTH event when not in AP mode\n",
+		       mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
 	if (!(vif->bss_status & QTNF_STATE_AP_START)) {
-		pr_err("STA_DEAUTH event when AP is not started\n");
+		pr_err("VIF%u.%u: STA_DEAUTH event when AP is not started\n",
+		       mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
 	sta_addr =3D sta_deauth->sta_addr;
 	reason =3D le16_to_cpu(sta_deauth->reason);
=20
-	pr_debug("MAC:%pM; reason:%x\n", sta_addr, reason);
+	pr_debug("VIF%u.%u: MAC:%pM reason:%x\n", mac->macid, vif->vifid,
+		 sta_addr, reason);
=20
 	if (qtnf_sta_list_del(&vif->sta_list, sta_addr))
 		cfg80211_del_sta(vif->netdev, sta_deauth->sta_addr,
@@ -142,22 +151,26 @@ qtnf_event_handle_bss_join(struct qtnf_vif *vif,
 			   u16 len)
 {
 	if (unlikely(len < sizeof(*join_info))) {
-		pr_err("payload is too short (%u < %zu)\n", len,
+		pr_err("VIF%u.%u: payload is too short (%u < %zu)\n",
+		       vif->mac->macid, vif->vifid, len,
 		       sizeof(struct qlink_event_bss_join));
 		return -EINVAL;
 	}
=20
 	if (vif->wdev.iftype !=3D NL80211_IFTYPE_STATION) {
-		pr_err("BSS_JOIN event when not in STA mode\n");
+		pr_err("VIF%u.%u: BSS_JOIN event when not in STA mode\n",
+		       vif->mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
 	if (vif->sta_state !=3D QTNF_STA_CONNECTING) {
-		pr_err("BSS_JOIN event when STA is not connecting\n");
+		pr_err("VIF%u.%u: BSS_JOIN event when STA is not connecting\n",
+		       vif->mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
-	pr_debug("BSSID:%pM\n", join_info->bssid);
+	pr_debug("VIF%u.%u: BSSID:%pM\n", vif->mac->macid, vif->vifid,
+		 join_info->bssid);
=20
 	cfg80211_connect_result(vif->netdev, join_info->bssid, NULL, 0, NULL,
 				0, le16_to_cpu(join_info->status), GFP_KERNEL);
@@ -178,22 +191,25 @@ qtnf_event_handle_bss_leave(struct qtnf_vif *vif,
 			    u16 len)
 {
 	if (unlikely(len < sizeof(*leave_info))) {
-		pr_err("payload is too short (%u < %zu)\n", len,
+		pr_err("VIF%u.%u: payload is too short (%u < %zu)\n",
+		       vif->mac->macid, vif->vifid, len,
 		       sizeof(struct qlink_event_bss_leave));
 		return -EINVAL;
 	}
=20
 	if (vif->wdev.iftype !=3D NL80211_IFTYPE_STATION) {
-		pr_err("BSS_LEAVE event when not in STA mode\n");
+		pr_err("VIF%u.%u: BSS_LEAVE event when not in STA mode\n",
+		       vif->mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
 	if (vif->sta_state !=3D QTNF_STA_CONNECTED) {
-		pr_err("BSS_LEAVE event when STA is not connected\n");
+		pr_err("VIF%u.%u: BSS_LEAVE event when STA is not connected\n",
+		       vif->mac->macid, vif->vifid);
 		return -EPROTO;
 	}
=20
-	pr_debug("disconnected\n");
+	pr_debug("VIF%u.%u: disconnected\n", vif->mac->macid, vif->vifid);
=20
 	cfg80211_disconnected(vif->netdev, leave_info->reason, NULL, 0, 0,
 			      GFP_KERNEL);
@@ -216,7 +232,8 @@ qtnf_event_handle_mgmt_received(struct qtnf_vif *vif,
 	enum nl80211_rxmgmt_flags flags =3D 0;
=20
 	if (unlikely(len < min_len)) {
-		pr_err("payload is too short (%u < %zu)\n", len, min_len);
+		pr_err("VIF%u.%u: payload is too short (%u < %zu)\n",
+		       vif->mac->macid, vif->vifid, len, min_len);
 		return -EINVAL;
 	}
=20
@@ -252,13 +269,15 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif,
 	size_t ies_len =3D 0;
=20
 	if (len < sizeof(*sr)) {
-		pr_err("payload is too short\n");
+		pr_err("VIF%u.%u: payload is too short\n", vif->mac->macid,
+		       vif->vifid);
 		return -EINVAL;
 	}
=20
 	channel =3D ieee80211_get_channel(wiphy, le16_to_cpu(sr->freq));
 	if (!channel) {
-		pr_err("channel at %u MHz not found\n", le16_to_cpu(sr->freq));
+		pr_err("VIF%u.%u: channel at %u MHz not found\n",
+		       vif->mac->macid, vif->vifid, le16_to_cpu(sr->freq));
 		return -EINVAL;
 	}
=20
@@ -282,8 +301,9 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif,
 		tlv_full_len =3D tlv_value_len + sizeof(struct qlink_tlv_hdr);
=20
 		if (tlv_full_len > payload_len) {
-			pr_warn("malformed TLV 0x%.2X; LEN: %u\n",
-				tlv_type, tlv_value_len);
+			pr_warn("VIF%u.%u: malformed TLV 0x%.2X; LEN: %u\n",
+				vif->mac->macid, vif->vifid, tlv_type,
+				tlv_value_len);
 			return -EINVAL;
 		}
=20
@@ -297,7 +317,8 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif,
 	}
=20
 	if (payload_len) {
-		pr_warn("malformed TLV buf; bytes left: %zu\n", payload_len);
+		pr_warn("VIF%u.%u: malformed TLV buf; bytes left: %zu\n",
+			vif->mac->macid, vif->vifid, payload_len);
 		return -EINVAL;
 	}
=20
@@ -320,7 +341,7 @@ qtnf_event_handle_scan_complete(struct qtnf_wmac *mac,
 				u16 len)
 {
 	if (len < sizeof(*status)) {
-		pr_err("payload is too short\n");
+		pr_err("MAC%u: payload is too short\n", mac->macid);
 		return -EINVAL;
 	}
=20
diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/=
net/wireless/quantenna/qtnfmac/pearl/pcie.c
index 70d14aaceb1f..4814d90c8040 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
@@ -1037,7 +1037,7 @@ static int qtnf_bringup_fw(struct qtnf_bus *bus)
 		pr_info("Booting FW from flash\n");
=20
 		if (!qtnf_poll_state(&priv->bda->bda_ep_state, QTN_EP_FW_DONE,
-				    QTN_FW_DL_TIMEOUT_MS))
+				     QTN_FW_DL_TIMEOUT_MS))
 			bus->fw_state =3D QTNF_FW_STATE_FW_DNLD_DONE;
=20
 		return 0;

  reply	other threads:[~2017-05-12 15:20 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-11 21:51 [PATCH v6] qtnfmac: introduce new FullMAC driver for Quantenna chipsets igor.mitsyanko.os
2017-05-12 15:18 ` [v6] " Kalle Valo
2017-05-12 15:20   ` Kalle Valo [this message]
2017-05-12 15:43     ` Joe Perches
2017-05-12 16:37       ` Kalle Valo
2017-05-12 17:47         ` Igor Mitsyanko
2017-05-17 13:12 ` [PATCH v6] " Johannes Berg
2017-05-18 20:08   ` Sergey Matyukevich
2017-05-19 10:18     ` Johannes Berg
2017-05-21 17:08       ` Sergey Matyukevich
2017-05-22  6:28         ` Johannes Berg
2017-05-22 21:04           ` Sergey Matyukevich
2017-05-24  7:11             ` Johannes Berg
2017-05-24 11:08               ` Sergey Matyukevich
2017-05-22  9:09   ` Kalle Valo
2017-05-24 14:06 ` [v6] " Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87shkap0e5.fsf@kamboji.qca.qualcomm.com \
    --to=kvalo@qca.qualcomm.com \
    --cc=avinashp@quantenna.com \
    --cc=btherthala@quantenna.com \
    --cc=dlebed@quantenna.com \
    --cc=hwang@quantenna.com \
    --cc=igor.mitsyanko.os@quantenna.com \
    --cc=johannes@sipsolutions.net \
    --cc=krath@quantenna.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=smaksimenko@quantenna.com \
    --cc=smatyukevich@quantenna.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.