diff --git a/src/kernel/linux/v4.19/net/wireless/nl80211.c b/src/kernel/linux/v4.19/net/wireless/nl80211.c
index ae91a89..67f8a3a 100644
--- a/src/kernel/linux/v4.19/net/wireless/nl80211.c
+++ b/src/kernel/linux/v4.19/net/wireless/nl80211.c
@@ -9569,6 +9569,7 @@
 
 	err = cfg80211_connect(rdev, dev, &connect, connkeys,
 			       connect.prev_bssid);
+	printk("DeBugAssoc cfg80211_conenct return %d  nl80211.c %s %d",err,__func__,__LINE__);
 	if (err)
 		kzfree(connkeys);
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c
index 9434891..dbee70c 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/src/drivers/driver_nl80211.c
@@ -6901,6 +6901,7 @@
 		os_memset(drv->auth_attempt_bssid, 0, ETH_ALEN);
 
 	ret = wpa_driver_nl80211_try_connect(drv, params, bss);
+	wpa_printf(MSG_INFO,"DebugAssoc wpa_friver_nl80211_try_conenct ret %d %s %d",ret,__func__,__LINE__);
 	if (ret == -EALREADY) {
 		wpa_printf(MSG_DEBUG, "nl80211: Explicitly "
 			   "disconnecting before reassociation "
@@ -6947,7 +6948,7 @@
 
 	nl80211_mark_disconnected(drv);
 
-	wpa_printf(MSG_DEBUG, "nl80211: Associate (ifindex=%d)",
+	wpa_printf(MSG_INFO, "nl80211: Associate (ifindex=%d)",
 		   drv->ifindex);
 	msg = nl80211_drv_msg(drv, 0, NL80211_CMD_ASSOCIATE);
 	if (!msg)
@@ -6980,17 +6981,19 @@
 	ret = send_and_recv_msgs_connect_handle(drv, msg, drv->first_bss, 1);
 	msg = NULL;
 	if (ret) {
-		wpa_dbg(drv->ctx, MSG_DEBUG,
+		wpa_printf(MSG_INFO,"DebugAssoc : nl80211: MLME command failed %s %d",__func__,__LINE__);
+		wpa_dbg(drv->ctx, MSG_INFO,
 			"nl80211: MLME command failed (assoc): ret=%d (%s)",
 			ret, strerror(-ret));
 		nl80211_dump_scan(drv);
 	} else {
-		wpa_printf(MSG_DEBUG,
+		wpa_printf(MSG_INFO,
 			   "nl80211: Association request send successfully");
 	}
 
 fail:
 	nlmsg_free(msg);
+	wpa_printf(MSG_INFO,"Debug_Assoc %s %d return failed",__func__,__LINE__);
 	return ret;
 }
 
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c
index 574e6e6..9c35d94 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/wpa_supplicant.c
@@ -4753,11 +4753,12 @@
 #ifdef CONFIG_SAE
 	params.sae_pwe = wpa_s->conf->sae_pwe;
 #endif /* CONFIG_SAE */
-
-	ret = wpa_drv_associate(wpa_s, &params);
+        wpa_printf(MSG_INFO,"Debug_Assoc Failed %s %d",__func__,__LINE__);
+	ret = wpa_drv_associate(wpa_s, &params);	
+        wpa_printf(MSG_INFO,"Debug_Assoc Failed--wpa_drv_associate ret is %d  %s %d",ret,__func__,__LINE__);
 	os_free(wpa_ie);
 	if (ret < 0) {
-		wpa_msg(wpa_s, MSG_INFO, "Association request to the driver "
+		wpa_msg(wpa_s, MSG_INFO, "Debug_Assoc_WPA Association request to the driver "
 			"failed");
 		if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_VALID_ERROR_CODES) {
 			/*
