Revert APF change from pa/2664258

In b/318892842, we found that APF update always failed because of
this change.

Long term fix is to enable WLAN FW to overwrite APF program.

For 24Q1, since it's already in cut off stage, we revert this change to
restore APF overwrite function.

Bug: 318892842
Test: Regression test passed
Change-Id: I261d5448b63008abaebe42505ce0f46890d6bf87
Signed-off-by: Ken Sun <kensun@google.com>
diff --git a/dhd_linux.c b/dhd_linux.c
index 6df22b0..c257308 100644
--- a/dhd_linux.c
+++ b/dhd_linux.c
@@ -2509,6 +2509,9 @@
 				 */
 				dhd_enable_packet_filter(1, dhd);
 #endif /* PKT_FILTER_SUPPORT */
+#ifdef APF
+				dhd_dev_apf_enable_filter(dhd_linux_get_primary_netdev(dhd));
+#endif /* APF */
 #ifdef ARP_OFFLOAD_SUPPORT
 				if (dhd->arpoe_enable) {
 					dhd_arp_offload_enable(dhd, TRUE);
@@ -2607,6 +2610,9 @@
 				/* disable pkt filter */
 				dhd_enable_packet_filter(0, dhd);
 #endif /* PKT_FILTER_SUPPORT */
+#ifdef APF
+				dhd_dev_apf_disable_filter(dhd_linux_get_primary_netdev(dhd));
+#endif /* APF */
 #ifdef PASS_ALL_MCAST_PKTS
 				allmulti = 1;
 				for (i = 0; i < DHD_MAX_IFS; i++) {
@@ -17858,6 +17864,16 @@
 
 	DHD_APF_LOCK(ndev);
 
+	/* delete, if filter already exists */
+	if (dhdp->apf_set) {
+		ret = _dhd_apf_delete_filter(ndev, PKT_FILTER_APF_ID);
+		if (unlikely(ret)) {
+			DHD_ERROR(("%s: Failed to delete APF filter\n", __FUNCTION__));
+			goto exit;
+		}
+		dhdp->apf_set = FALSE;
+	}
+
 	ret = _dhd_apf_add_filter(ndev, PKT_FILTER_APF_ID, program, program_len);
 	if (ret) {
 		DHD_ERROR(("%s: Failed to add APF filter\n", __FUNCTION__));
diff --git a/wl_cfg80211.c b/wl_cfg80211.c
index 60cf031..f44c074 100644
--- a/wl_cfg80211.c
+++ b/wl_cfg80211.c
@@ -10092,14 +10092,6 @@
 		}
 	}
 #endif /* CONFIG_SILENT_ROAM */
-
-#ifdef APF
-	if (suspend) {
-		dhd_dev_apf_enable_filter(dev);
-	} else {
-		dhd_dev_apf_disable_filter(dev);
-	}
-#endif /* APF */
 	return BCME_OK;
 }