diff --git a/system/bta/dm/bta_dm_act.cc b/system/bta/dm/bta_dm_act.cc
index 2ecc3e906afd3037eda023eb39bbb34753837ef2..752a31ffc8cb635cf3cb535255f2486b6714087f 100644
--- a/system/bta/dm/bta_dm_act.cc
+++ b/system/bta/dm/bta_dm_act.cc
@@ -3996,6 +3996,20 @@ void bta_dm_proc_open_evt(tBTA_GATTC_OPEN* p_data) {
   }
 }
 
+/*******************************************************************************
+ *
+ * Function         bta_dm_proc_open_evt
+ *
+ * Description      process BTA_GATTC_OPEN_EVT in DM.
+ *
+ * Parameters:
+ *
+ ******************************************************************************/
+void bta_dm_clear_event_filter(void) {
+  VLOG(1) << "bta_dm_clear_event_filter in bta_dm_act";
+  bluetooth::shim::BTM_ClearEventFilter();
+}
+
 /*******************************************************************************
  *
  * Function         bta_dm_gattc_callback
diff --git a/system/bta/dm/bta_dm_api.cc b/system/bta/dm/bta_dm_api.cc
index c9e5166353897d0f42d3b8dddbfba5ed9cfc1b34..5e1a8787f7807c704307861a7689895a29518bfe 100644
--- a/system/bta/dm/bta_dm_api.cc
+++ b/system/bta/dm/bta_dm_api.cc
@@ -670,3 +670,17 @@ void BTA_DmBleCsisObserve(bool observe, tBTA_DM_SEARCH_CBACK* p_results_cb) {
  *
  ******************************************************************************/
 void BTA_VendorInit(void) { APPL_TRACE_API("BTA_VendorInit"); }
+
+/*******************************************************************************
+ *
+ * Function         BTA_DmClearEventFilter
+ *
+ * Description      This function clears the event filter
+ *
+ * Returns          void
+ *
+ ******************************************************************************/
+void BTA_DmClearEventFilter(void) {
+  APPL_TRACE_API("BTA_DmClearEventFilter");
+  do_in_main_thread(FROM_HERE, base::Bind(bta_dm_clear_event_filter));
+}
diff --git a/system/bta/dm/bta_dm_int.h b/system/bta/dm/bta_dm_int.h
index 02d25eb12bc2d358a813dfe693ca7d36e03117c2..e6c5c0cdacd06723c179d0d24d2817b3cc3b8e92 100644
--- a/system/bta/dm/bta_dm_int.h
+++ b/system/bta/dm/bta_dm_int.h
@@ -553,6 +553,8 @@ extern void bta_dm_disc_rmt_name(tBTA_DM_MSG* p_data);
 extern tBTA_DM_PEER_DEVICE* bta_dm_find_peer_device(
     const RawAddress& peer_addr);
 
+extern void bta_dm_clear_event_filter(void);
+
 uint8_t bta_dm_search_get_state();
 void bta_dm_search_set_state(uint8_t state);
 
diff --git a/system/bta/include/bta_api.h b/system/bta/include/bta_api.h
index 701de0aee89c07e9e4a6be668beb953c2be37711..3c0bd4b38a35f67c6ad962f256edc326e6c66fd5 100644
--- a/system/bta/include/bta_api.h
+++ b/system/bta/include/bta_api.h
@@ -1194,4 +1194,15 @@ extern void BTA_DmBleGetEnergyInfo(tBTA_BLE_ENERGY_INFO_CBACK* p_cmpl_cback);
  ******************************************************************************/
 extern void BTA_VendorInit(void);
 
+/*******************************************************************************
+ *
+ * Function         BTA_DmClearEventFilter
+ *
+ * Description      This function clears the event filter
+ *
+ * Returns          void
+ *
+ ******************************************************************************/
+extern void BTA_DmClearEventFilter(void);
+
 #endif /* BTA_API_H */
diff --git a/system/test/mock/mock_bta_dm_act.h b/system/test/mock/mock_bta_dm_act.h
index 2c99aa172d5692a3f02dc91a1314ce89665f676a..5a566dcb7dece4e7a36922fd8ac571d92cc7e06b 100644
--- a/system/test/mock/mock_bta_dm_act.h
+++ b/system/test/mock/mock_bta_dm_act.h
@@ -255,6 +255,15 @@ struct bta_dm_ble_observe {
 };
 extern struct bta_dm_ble_observe bta_dm_ble_observe;
 
+// Name: bta_dm_clear_event_filter
+// Params: None
+// Return: void
+struct bta_dm_clear_event_filter {
+  std::function<void()> body{[]() {}};
+  void operator()() { body(); };
+};
+extern struct bta_dm_clear_event_filter bta_dm_clear_event_filter;
+
 // Name: bta_dm_ble_passkey_reply
 // Params: const RawAddress& bd_addr, bool accept, uint32_t passkey
 // Return: void