diff --git a/bta/dm/bta_dm_api.cc b/bta/dm/bta_dm_api.cc
index b884b96..0087866 100644
--- a/bta/dm/bta_dm_api.cc
+++ b/bta/dm/bta_dm_api.cc
@@ -33,6 +33,7 @@
 #include "stack/btm/btm_sec.h"
 #include "stack/include/bt_octets.h"
 #include "stack/include/btm_api.h"
+#include "stack/include/btm_client_interface.h"
 #include "stack/include/btu.h"  // do_in_main_thread
 #include "types/bluetooth/uuid.h"
 #include "types/raw_address.h"
@@ -287,8 +288,8 @@
   uint16_t* p_uuid16 = (uint16_t*)uuid_list;
   tBTA_SERVICE_MASK mask;
 
-  BTM_GetEirUuidList(p_eir, eir_len, Uuid::kNumBytes16, &num_uuid, uuid_list,
-                     max_num_uuid);
+  get_btm_client_interface().eir.BTM_GetEirUuidList(
+      p_eir, eir_len, Uuid::kNumBytes16, &num_uuid, uuid_list, max_num_uuid);
   for (xx = 0; xx < num_uuid; xx++) {
     mask = 1;
     for (yy = 0; yy < BTA_MAX_SERVICE_ID; yy++) {
diff --git a/main/shim/btm_api.cc b/main/shim/btm_api.cc
index 6d79049..2e0a338 100644
--- a/main/shim/btm_api.cc
+++ b/main/shim/btm_api.cc
@@ -936,18 +936,6 @@
   return BTM_NO_RESOURCES;
 }
 
-uint8_t bluetooth::shim::BTM_GetEirUuidList(uint8_t* p_eir, size_t eir_len,
-                                            uint8_t uuid_size,
-                                            uint8_t* p_num_uuid,
-                                            uint8_t* p_uuid_list,
-                                            uint8_t max_num_uuid) {
-  LOG_INFO("UNIMPLEMENTED %s", __func__);
-  CHECK(p_eir != nullptr);
-  CHECK(p_num_uuid != nullptr);
-  CHECK(p_uuid_list != nullptr);
-  return 0;
-}
-
 void bluetooth::shim::BTM_SecAddBleDevice(const RawAddress& bd_addr,
                                           tBT_DEVICE_TYPE dev_type,
                                           tBLE_ADDR_TYPE addr_type) {
diff --git a/main/shim/btm_api.h b/main/shim/btm_api.h
index cd3d08a..8eb81d9 100644
--- a/main/shim/btm_api.h
+++ b/main/shim/btm_api.h
@@ -386,33 +386,6 @@
 
 /*******************************************************************************
  *
- * Function         BTM_GetEirUuidList
- *
- * Description      This function parses EIR and returns UUID list.
- *
- * Parameters       p_eir - EIR
- *                  eirl_len - EIR len
- *                  uuid_size - Uuid::kNumBytes16, Uuid::kNumBytes32,
- *                              Uuid::kNumBytes128
- *                  p_num_uuid - return number of UUID in found list
- *                  p_uuid_list - return UUID 16-bit list
- *                  max_num_uuid - maximum number of UUID to be returned
- *
- * Returns          0 - if not found
- *                  HCI_EIR_COMPLETE_16BITS_UUID_TYPE
- *                  HCI_EIR_MORE_16BITS_UUID_TYPE
- *                  HCI_EIR_COMPLETE_32BITS_UUID_TYPE
- *                  HCI_EIR_MORE_32BITS_UUID_TYPE
- *                  HCI_EIR_COMPLETE_128BITS_UUID_TYPE
- *                  HCI_EIR_MORE_128BITS_UUID_TYPE
- *
- ******************************************************************************/
-uint8_t BTM_GetEirUuidList(uint8_t* p_eir, size_t eir_len, uint8_t uuid_size,
-                           uint8_t* p_num_uuid, uint8_t* p_uuid_list,
-                           uint8_t max_num_uuid);
-
-/*******************************************************************************
- *
  * Function         BTM_SecAddBleDevice
  *
  * Description      Add/modify device.  This function will be normally called
diff --git a/test/mock/mock_main_shim_btm_api.cc b/test/mock/mock_main_shim_btm_api.cc
index c02ce8c..83aeb03 100644
--- a/test/mock/mock_main_shim_btm_api.cc
+++ b/test/mock/mock_main_shim_btm_api.cc
@@ -251,14 +251,6 @@
   mock_function_count_map[__func__]++;
   return 0;
 }
-uint8_t bluetooth::shim::BTM_GetEirUuidList(uint8_t* p_eir, size_t eir_len,
-                                            uint8_t uuid_size,
-                                            uint8_t* p_num_uuid,
-                                            uint8_t* p_uuid_list,
-                                            uint8_t max_num_uuid) {
-  mock_function_count_map[__func__]++;
-  return 0;
-}
 void bluetooth::shim::BTM_AddEirService(uint32_t* p_eir_uuid, uint16_t uuid16) {
   mock_function_count_map[__func__]++;
 }
