Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37c6e32a authored by Rahul Arya's avatar Rahul Arya Committed by Automerger Merge Worker
Browse files

Merge "Fix issue where HIDH gets stuck after HIDD toggles" am: d821d8f8

parents c8c3be79 d821d8f8
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -79,7 +79,10 @@ void BTA_HdEnable(tBTA_HD_CBACK* p_cback) {
void BTA_HdDisable(void) {
  APPL_TRACE_API("%s", __func__);

  if (!bluetooth::common::init_flags::
          delay_hidh_cleanup_until_hidh_ready_start_is_enabled()) {
    bta_sys_deregister(BTA_ID_HD);
  }

  BT_HDR_RIGID* p_buf = (BT_HDR_RIGID*)osi_malloc(sizeof(BT_HDR_RIGID));
  p_buf->event = BTA_HD_API_DISABLE_EVT;
+8 −1
Original line number Diff line number Diff line
@@ -33,9 +33,11 @@

#include "bt_target.h"  // Must be first to define build configuration
#include "bta/include/bta_hd_api.h"
#include "bta/sys/bta_sys.h"
#include "btif/include/btif_common.h"
#include "btif/include/btif_profile_storage.h"
#include "btif/include/btif_util.h"
#include "gd/common/init_flags.h"
#include "include/hardware/bt_hd.h"
#include "osi/include/allocator.h"
#include "osi/include/compat.h"
@@ -162,6 +164,7 @@ static void btif_hd_upstreams_evt(uint16_t event, char* p_param) {
      BTIF_TRACE_DEBUG("%s: status=%d", __func__, p_data->status);
      btif_hd_cb.status = BTIF_HD_DISABLED;
      if (btif_hd_cb.service_dereg_active) {
        bta_sys_deregister(BTA_ID_HD);
        BTIF_TRACE_WARNING("registering hid host now");
        btif_hh_service_registration(TRUE);
        btif_hd_cb.service_dereg_active = FALSE;
@@ -181,6 +184,7 @@ static void btif_hd_upstreams_evt(uint16_t event, char* p_param) {
        addr = NULL;
      }

      LOG_INFO("Registering HID device app");
      btif_hd_cb.app_registered = TRUE;
      HAL_CBACK(bt_hd_callbacks, application_state_cb, addr,
                BTHD_APP_STATE_REGISTERED);
@@ -192,7 +196,10 @@ static void btif_hd_upstreams_evt(uint16_t event, char* p_param) {
                BTHD_APP_STATE_NOT_REGISTERED);
      if (btif_hd_cb.service_dereg_active) {
        BTIF_TRACE_WARNING("disabling hid device service now");
        if (!bluetooth::common::init_flags::
                delay_hidh_cleanup_until_hidh_ready_start_is_enabled()) {
          btif_hd_free_buf();
        }
        BTA_HdDisable();
      }
      break;
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ table InitFlagsData {
    bta_dm_clear_conn_id_on_client_close_is_enabled:bool (privacy:"Any");
    btm_dm_flush_discovery_queue_on_search_cancel_is_enabled:bool (privacy:"Any");
    clear_hidd_interrupt_cid_on_disconnect_is_enabled:bool (privacy:"Any");
    delay_hidh_cleanup_until_hidh_ready_start_is_enabled:bool (privacy:"Any");
    device_iot_config_logging_is_enabled:bool (privacy:"Any");
    dynamic_avrcp_version_enhancement_is_enabled:bool (privacy:"Any");
    finite_att_timeout_is_enabled:bool (privacy:"Any");
+2 −0
Original line number Diff line number Diff line
@@ -45,6 +45,8 @@ flatbuffers::Offset<bluetooth::common::InitFlagsData> bluetooth::dumpsys::InitFl
      initFlags::device_iot_config_logging_is_enabled());
  builder.add_clear_hidd_interrupt_cid_on_disconnect_is_enabled(
      initFlags::clear_hidd_interrupt_cid_on_disconnect_is_enabled());
  builder.add_delay_hidh_cleanup_until_hidh_ready_start_is_enabled(
      initFlags::delay_hidh_cleanup_until_hidh_ready_start_is_enabled());
  builder.add_dynamic_avrcp_version_enhancement_is_enabled(
      initFlags::dynamic_avrcp_version_enhancement_is_enabled());
  builder.add_gd_hal_snoop_logger_filtering_is_enabled(
+1 −0
Original line number Diff line number Diff line
@@ -257,6 +257,7 @@ init_flags!(
        bta_dm_clear_conn_id_on_client_close = true,
        btm_dm_flush_discovery_queue_on_search_cancel,
        clear_hidd_interrupt_cid_on_disconnect = true,
        delay_hidh_cleanup_until_hidh_ready_start = true,
        device_iot_config_logging,
        dynamic_avrcp_version_enhancement = true,
        finite_att_timeout = true,
Loading