Connect gd acl shim sniff subrating

Bug: 175344733
Test: cert
Tag: #refactor

Change-Id: I824dc66f9ddcf11f88ebf75eed06d97144428bd8
diff --git a/system/main/shim/acl_legacy_interface.cc b/system/main/shim/acl_legacy_interface.cc
index c5e8e60..68533ce 100644
--- a/system/main/shim/acl_legacy_interface.cc
+++ b/system/main/shim/acl_legacy_interface.cc
@@ -48,7 +48,7 @@
       .link.classic.on_qos_setup_complete = nullptr,
       .link.classic.on_read_afh_channel_map_complete = nullptr,
       .link.classic.on_read_automatic_flush_timeout_complete = nullptr,
-      .link.classic.on_sniff_subrating = nullptr,
+      .link.classic.on_sniff_subrating = btm_pm_on_sniff_subrating,
       .link.classic.on_read_clock_complete = nullptr,
       .link.classic.on_read_clock_offset_complete = nullptr,
       .link.classic.on_read_failed_contact_counter_complete = nullptr,
diff --git a/system/stack/acl/btm_pm.cc b/system/stack/acl/btm_pm.cc
index 883b110..1e4b57c 100644
--- a/system/stack/acl/btm_pm.cc
+++ b/system/stack/acl/btm_pm.cc
@@ -831,6 +831,15 @@
       hci_error_code_text(status).c_str());
 }
 
+void btm_pm_on_sniff_subrating(tHCI_STATUS status, uint16_t handle,
+                               uint16_t maximum_transmit_latency,
+                               uint16_t maximum_receive_latency,
+                               UNUSED_ATTR uint16_t minimum_remote_timeout,
+                               UNUSED_ATTR uint16_t minimum_local_timeout) {
+  process_ssr_event(status, handle, maximum_transmit_latency,
+                    maximum_receive_latency);
+}
+
 void btm_pm_proc_ssr_evt(uint8_t* p, UNUSED_ATTR uint16_t evt_len) {
   uint8_t status;
   uint16_t handle;
diff --git a/system/stack/include/acl_hci_link_interface.h b/system/stack/include/acl_hci_link_interface.h
index 0985ab2..86ba395 100644
--- a/system/stack/include/acl_hci_link_interface.h
+++ b/system/stack/include/acl_hci_link_interface.h
@@ -68,3 +68,8 @@
                                    uint8_t max_page_number, uint64_t features);
 void btm_pm_on_mode_change(tHCI_STATUS status, uint16_t handle,
                            tHCI_MODE current_mode, uint16_t interval);
+void btm_pm_on_sniff_subrating(tHCI_STATUS status, uint16_t handle,
+                               uint16_t maximum_transmit_latency,
+                               uint16_t maximum_receive_latency,
+                               uint16_t minimum_remote_timeout,
+                               uint16_t minimum_local_timeout);