From: DoHyun Pyun Date: Wed, 29 Jan 2020 06:18:36 +0000 (+0900) Subject: Fix BT enable issue on XU3 TV profile X-Git-Tag: accepted/tizen/unified/20200130.215032^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F69%2F223369%2F1;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git Fix BT enable issue on XU3 TV profile Change-Id: I3cb7e00890057a354032365ff34c0b3deb2c8902 Signed-off-by: DoHyun Pyun --- diff --git a/bt-core/bt-core-adapter.c b/bt-core/bt-core-adapter.c index 8481d86..3dcd9a8 100644 --- a/bt-core/bt-core-adapter.c +++ b/bt-core/bt-core-adapter.c @@ -353,6 +353,7 @@ int _bt_disable_adapter(void) __bt_core_set_status(BT_ACTIVATED); return -1; } + g_timeout_add(BT_CORE_IDLE_TERM_TIME, __bt_core_idle_terminate, NULL); } else { #ifdef TIZEN_FEATURE_RADIO int radio_status = VCONFKEY_RADIO_STATUS_OFF; diff --git a/bt-oal/CMakeLists.txt b/bt-oal/CMakeLists.txt index 4d95d2c..a84da6f 100755 --- a/bt-oal/CMakeLists.txt +++ b/bt-oal/CMakeLists.txt @@ -12,6 +12,7 @@ ELSE("$ENV{BT_INCLUDE_OAL_BLUEZ}" STREQUAL "ENABLED") ENDIF("$ENV{BT_INCLUDE_OAL_BLUEZ}" STREQUAL "ENABLED") SET(SRCS +../include/bt-internal-types.c oal-hardware.c oal-manager.c oal-adapter-mgr.c diff --git a/bt-oal/bluez_hal/src/bt-hal-adapter-dbus-handler.c b/bt-oal/bluez_hal/src/bt-hal-adapter-dbus-handler.c index f14ca79..8c71c01 100644 --- a/bt-oal/bluez_hal/src/bt-hal-adapter-dbus-handler.c +++ b/bt-oal/bluez_hal/src/bt-hal-adapter-dbus-handler.c @@ -34,9 +34,10 @@ #include "bt-hal-msg.h" #include "bt-hal-utils.h" #include "bt-hal-adapter-le.h" +#include "bt-hal-adapter-dbus-handler.h" +#include "bt-hal-dbus-common-utils.h" -#include -#include +#include "bt-internal-types.h" #define BT_ENABLE_TIMEOUT 20000 /* 20 seconds */ #define BT_CORE_NAME "org.projectx.bt_core" @@ -198,6 +199,14 @@ int _bt_hal_dbus_enable_adapter(void) g_idle_add(__bt_hal_send_adapter_event, (gpointer)user_data); return BT_STATUS_SUCCESS; } + + if (TIZEN_FEATURE_BT_USB_DONGLE && powered == 1) { + gboolean *user_data = g_new0(int, 1); + *user_data = TRUE; + g_idle_add(__bt_hal_send_adapter_event, (gpointer)user_data); + return BT_STATUS_SUCCESS; + } + proxy = __bt_get_core_proxy(); if (!proxy) { diff --git a/bt-oal/bluez_hal/src/bt-hal-event-receiver.c b/bt-oal/bluez_hal/src/bt-hal-event-receiver.c index 824a7ab..654560f 100644 --- a/bt-oal/bluez_hal/src/bt-hal-event-receiver.c +++ b/bt-oal/bluez_hal/src/bt-hal-event-receiver.c @@ -41,6 +41,8 @@ #include "bt-hal-gatt-client.h" #include "bt-hal-adapter-dbus-handler.h" +#include "bt-internal-types.h" + #define BASELEN_PROP_CHANGED (sizeof(struct hal_ev_adapter_props_changed) \ + sizeof(struct hal_property)) @@ -288,21 +290,21 @@ static void __bt_hal_adapter_property_changed_event(GVariant *msg) /* TODO: Need to check this operation!! */ if (powered == FALSE) { DBG("###### Adapter Powered Down ######"); - DBG("Pending disalbed event after bluetoothd is terminated"); -#if 0 - /* We should send the disable event for USB dongle type's target in here. So remain thie code */ - struct hal_ev_adapter_state_changed ev; - ev.state = HAL_POWER_OFF; - event_cb(HAL_EV_ADAPTER_STATE_CHANGED, &ev, sizeof(ev)); + if (TIZEN_FEATURE_BT_USB_DONGLE) { + struct hal_ev_adapter_state_changed ev; + ev.state = HAL_POWER_OFF; + event_cb(HAL_EV_ADAPTER_STATE_CHANGED, &ev, sizeof(ev)); #ifdef TIZEN_BT_HAL - struct hal_ev_le_state_changed le_ev; - le_ev.state = HAL_POWER_OFF; - event_cb(HAL_EV_LE_STATE_CHANGED, &le_ev, sizeof(le_ev)); -#endif - /* Destroy Agent */ - _bt_hal_destroy_adapter_agent(); + struct hal_ev_le_state_changed le_ev; + le_ev.state = HAL_POWER_OFF; + event_cb(HAL_EV_LE_STATE_CHANGED, &le_ev, sizeof(le_ev)); #endif + /* Destroy Agent */ + _bt_hal_destroy_adapter_agent(); + } else { + DBG("Pending disalbed event after bluetoothd is terminated"); + } } else { DBG("###### Adapter Powered Up ######"); if (_bt_hal_get_adapter_request_state()) { diff --git a/bt-service-adaptation/services/adapter/bt-service-core-adapter.c b/bt-service-adaptation/services/adapter/bt-service-core-adapter.c index 83ca1d2..777aa2b 100644 --- a/bt-service-adaptation/services/adapter/bt-service-core-adapter.c +++ b/bt-service-adaptation/services/adapter/bt-service-core-adapter.c @@ -1388,6 +1388,8 @@ static gboolean __bt_adapter_post_set_disabled(gpointer user_data) if (!TIZEN_FEATURE_BT_USB_DONGLE) { /* TODO: Implement to check if it is the recovery mode or not */ _bt_reliable_terminate_service(NULL); + } else { + _bt_set_disabled(BLUETOOTH_ERROR_NONE); } return FALSE;