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

Commit d821d8f8 authored by Rahul Arya's avatar Rahul Arya Committed by Gerrit Code Review
Browse files

Merge "Fix issue where HIDH gets stuck after HIDD toggles"

parents 54f7de2c 1093aee1
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