From 8b6b810a77cf2b960c1590e359b0651817920570 Mon Sep 17 00:00:00 2001 From: Mister Oyster Date: Thu, 27 Apr 2017 18:53:49 +0200 Subject: [PATCH] bt: remove libbt-vendor-mtk (now using prebuilt) --- bluetooth/bdroid_buildcfg.h | 2 - mtk/libbt-vendor-mtk/Android.mk | 27 -- mtk/libbt-vendor-mtk/bt_hci_bdroid.h | 135 --------- mtk/libbt-vendor-mtk/bt_hci_lib.h | 208 -------------- mtk/libbt-vendor-mtk/bt_vendor_lib.h | 362 ------------------------ mtk/libbt-vendor-mtk/libbt-vendor-mtk.c | 151 ---------- product/packages.mk | 3 - 7 files changed, 888 deletions(-) delete mode 100644 mtk/libbt-vendor-mtk/Android.mk delete mode 100644 mtk/libbt-vendor-mtk/bt_hci_bdroid.h delete mode 100644 mtk/libbt-vendor-mtk/bt_hci_lib.h delete mode 100644 mtk/libbt-vendor-mtk/bt_vendor_lib.h delete mode 100644 mtk/libbt-vendor-mtk/libbt-vendor-mtk.c diff --git a/bluetooth/bdroid_buildcfg.h b/bluetooth/bdroid_buildcfg.h index 30056bf..52d1769 100644 --- a/bluetooth/bdroid_buildcfg.h +++ b/bluetooth/bdroid_buildcfg.h @@ -3,6 +3,4 @@ #define BTM_DEF_LOCAL_NAME "Meizu M2Note" -/* Defined if the kernel does not have support for CLOCK_BOOTTIME_ALARM */ -#define KERNEL_MISSING_CLOCK_BOOTTIME_ALARM TRUE #endif diff --git a/mtk/libbt-vendor-mtk/Android.mk b/mtk/libbt-vendor-mtk/Android.mk deleted file mode 100644 index 64a5ab3..0000000 --- a/mtk/libbt-vendor-mtk/Android.mk +++ /dev/null @@ -1,27 +0,0 @@ -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_C_INCLUDES := \ - system/bt/hci/include \ - $(LOCAL_PATH) - -LOCAL_CFLAGS := -g -c -W -Wall -O2 -D_POSIX_SOURCE - -LOCAL_SRC_FILES := libbt-vendor-mtk.c - -LOCAL_SHARED_LIBRARIES := \ - libnativehelper \ - libcutils \ - libutils \ - liblog \ - libdl - -LOCAL_PRELINK_MODULE := false -LOCAL_MODULE := libbt-vendor -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR_SHARED_LIBRARIES) -LOCAL_MODULE_PATH_32 := $(2ND_TARGET_OUT_VENDOR_SHARED_LIBRARIES) -LOCAL_MULTILIB := both - -include $(BUILD_SHARED_LIBRARY) \ No newline at end of file diff --git a/mtk/libbt-vendor-mtk/bt_hci_bdroid.h b/mtk/libbt-vendor-mtk/bt_hci_bdroid.h deleted file mode 100644 index 220946b..0000000 --- a/mtk/libbt-vendor-mtk/bt_hci_bdroid.h +++ /dev/null @@ -1,135 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 2009-2012 Broadcom Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - -/****************************************************************************** - * - * Filename: bt_hci_bdroid.h - * - * Description: A wrapper header file of bt_hci_lib.h - * - * Contains definitions specific for interfacing with Bluedroid - * Bluetooth stack - * - ******************************************************************************/ - -#pragma once - -#include "bt_hci_lib.h" - -#ifdef HAS_BDROID_BUILDCFG -#include "bdroid_buildcfg.h" -#endif - -/****************************************************************************** -** Constants & Macros -******************************************************************************/ - -#if __STDC_VERSION__ < 199901L -# ifndef FALSE -# define FALSE 0 -# endif -# ifndef TRUE -# define TRUE (!FALSE) -# endif -#else -# include -# ifndef FALSE -# define FALSE false -# endif -# ifndef TRUE -# define TRUE true -# endif -#endif - -#define HCI_ACL_MAX_SIZE 1024 -#define HCI_MAX_FRAME_SIZE (HCI_ACL_MAX_SIZE + 4) - -/* Host/Controller lib internal event ID */ -typedef enum { - HC_EVENT_LPM_IDLE_TIMEOUT, -} bthc_event_t; - -#define MSG_CTRL_TO_HC_CMD 0x0100 /* evt mask used by HC_EVENT_TX_CMD */ - -/* Message event mask across Host/Controller lib and stack */ -#define MSG_EVT_MASK 0xFF00 /* eq. BT_EVT_MASK */ -#define MSG_SUB_EVT_MASK 0x00FF /* eq. BT_SUB_EVT_MASK */ - -/* Message event ID passed from Host/Controller lib to stack */ -#define MSG_HC_TO_STACK_HCI_ERR 0x1300 /* eq. BT_EVT_TO_BTU_HCIT_ERR */ -#define MSG_HC_TO_STACK_HCI_ACL 0x1100 /* eq. BT_EVT_TO_BTU_HCI_ACL */ -#define MSG_HC_TO_STACK_HCI_SCO 0x1200 /* eq. BT_EVT_TO_BTU_HCI_SCO */ -#define MSG_HC_TO_STACK_HCI_EVT 0x1000 /* eq. BT_EVT_TO_BTU_HCI_EVT */ -#define MSG_HC_TO_STACK_L2C_SEG_XMIT 0x1900 /* eq. BT_EVT_TO_BTU_L2C_SEG_XMIT */ - -/* Message event ID passed from stack to vendor lib */ -#define MSG_STACK_TO_HC_HCI_ACL 0x2100 /* eq. BT_EVT_TO_LM_HCI_ACL */ -#define MSG_STACK_TO_HC_HCI_SCO 0x2200 /* eq. BT_EVT_TO_LM_HCI_SCO */ -#define MSG_STACK_TO_HC_HCI_CMD 0x2000 /* eq. BT_EVT_TO_LM_HCI_CMD */ - -/* Local Bluetooth Controller ID for BR/EDR */ -#define LOCAL_BR_EDR_CONTROLLER_ID 0 - -/* Definitions of audio codec type - * inherited from AG callout function "codec" parameter - */ -#define SCO_CODEC_NONE 0x0000 /* BTA_AG_CODEC_NONE/BTM_SCO_CODEC_NONE */ -#define SCO_CODEC_CVSD 0x0001 /* BTA_AG_CODEC_CVSD/BTM_SCO_CODEC_CVSD */ -#define SCO_CODEC_MSBC 0x0002 /* BTA_AG_CODEC_MSBC/BTM_SCO_CODEC_MSBC */ - -/****************************************************************************** -** Type definitions and return values -******************************************************************************/ - -typedef struct -{ - uint16_t event; - uint16_t len; - uint16_t offset; - uint16_t layer_specific; - uint8_t data[]; -} HC_BT_HDR; - -#define BT_HC_HDR_SIZE (sizeof(HC_BT_HDR)) - -typedef struct _hc_buffer_hdr -{ - struct _hc_buffer_hdr *p_next; /* next buffer in the queue */ - uint8_t reserved1; - uint8_t reserved2; - uint8_t reserved3; - uint8_t reserved4; -} HC_BUFFER_HDR_T; - -#define BT_HC_BUFFER_HDR_SIZE (sizeof(HC_BUFFER_HDR_T)) - -/****************************************************************************** -** Extern variables and functions -******************************************************************************/ - -extern bt_hc_callbacks_t *bt_hc_cbacks; - -/****************************************************************************** -** Functions -******************************************************************************/ - -// Called when a buffer has been produced by the serial layer and should be -// processed by the HCI layer. -void bthc_rx_ready(void); -void bthc_tx(HC_BT_HDR *buf); -void bthc_idle_timeout(void); diff --git a/mtk/libbt-vendor-mtk/bt_hci_lib.h b/mtk/libbt-vendor-mtk/bt_hci_lib.h deleted file mode 100644 index c9f8cd7..0000000 --- a/mtk/libbt-vendor-mtk/bt_hci_lib.h +++ /dev/null @@ -1,208 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 2009-2012 Broadcom Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - -#ifndef BT_HCI_LIB_H -#define BT_HCI_LIB_H - -#include -#include -#include -#include - -/** Struct types */ - - -/** Typedefs and defines */ - -/* Generic purpose transac returned upon request complete */ -typedef void* TRANSAC; - -/** Bluetooth Power Control States */ -typedef enum { - BT_HC_CHIP_PWR_OFF, - BT_HC_CHIP_PWR_ON, -} bt_hc_chip_power_state_t; - -/** Bluetooth Low Power Mode */ -typedef enum { - BT_HC_LPM_DISABLE, - BT_HC_LPM_ENABLE, - BT_HC_LPM_WAKE_ASSERT, - BT_HC_LPM_WAKE_DEASSERT, -} bt_hc_low_power_event_t; - -/** Receive flow control */ -typedef enum { - BT_RXFLOW_OFF, /* add transport device fd to select set */ - BT_RXFLOW_ON, /* remove transport device to from select set */ -} bt_rx_flow_state_t; - -/** HCI logging control */ -typedef enum { - BT_HC_LOGGING_OFF, - BT_HC_LOGGING_ON, -} bt_hc_logging_state_t; - -/* commands to be used in LSB with MSG_CTRL_TO_HC_CMD */ -typedef enum { - BT_HC_AUDIO_STATE = 0, - BT_HC_CMD_MAX -} bt_hc_tx_cmd_t; -/** Result of write request */ -typedef enum { - BT_HC_TX_SUCCESS, /* a buffer is fully processed and can be released */ - BT_HC_TX_FAIL, /* transmit fail */ - BT_HC_TX_FRAGMENT, /* send split ACL pkt back to stack to reprocess */ -} bt_hc_transmit_result_t; - -/** Result of preload initialization */ -typedef enum { - BT_HC_PRELOAD_SUCCESS, - BT_HC_PRELOAD_FAIL, -} bt_hc_preload_result_t; - -/** Result of postload initialization */ -typedef enum { - BT_HC_POSTLOAD_SUCCESS, - BT_HC_POSTLOAD_FAIL, -} bt_hc_postload_result_t; - -/** Result of low power enable/disable request */ -typedef enum { - BT_HC_LPM_DISABLED, - BT_HC_LPM_ENABLED, -} bt_hc_lpm_request_result_t; - -/** Host/Controller Library Return Status */ -typedef enum { - BT_HC_STATUS_SUCCESS, - BT_HC_STATUS_FAIL, - BT_HC_STATUS_NOT_READY, - BT_HC_STATUS_NOMEM, - BT_HC_STATUS_BUSY, - BT_HC_STATUS_CORRUPTED_BUFFER -} bt_hc_status_t; - - -/* Section comment */ - -/* - * Bluetooth Host/Controller callback structure. - */ - -/* called upon bt host wake signal */ -typedef void (*hostwake_ind_cb)(bt_hc_low_power_event_t event); - -/* preload initialization callback */ -typedef void (*preload_result_cb)(TRANSAC transac, bt_hc_preload_result_t result); - -/* postload initialization callback */ -typedef void (*postload_result_cb)(TRANSAC transac, bt_hc_postload_result_t result); - -/* lpm enable/disable callback */ -typedef void (*lpm_result_cb)(bt_hc_lpm_request_result_t result); - -/* datapath buffer allocation callback (callout) */ -typedef char* (*alloc_mem_cb)(int size); - -/* datapath buffer deallocation callback (callout) */ -typedef void (*dealloc_mem_cb)(TRANSAC transac); - -/* transmit result callback */ -typedef int (*tx_result_cb)(TRANSAC transac, char *p_buf, bt_hc_transmit_result_t result); - -/* a previously setup buffer is read and available for processing - buffer is deallocated in stack when processed */ -typedef int (*data_ind_cb)(TRANSAC transac, char *p_buf, int len); - -typedef struct { - /** set to sizeof(bt_hc_callbacks_t) */ - size_t size; - - /* notifies caller result of preload request */ - preload_result_cb preload_cb; - - /* notifies caller result of postload request */ - postload_result_cb postload_cb; - - /* notifies caller result of lpm enable/disable */ - lpm_result_cb lpm_cb; - - /* notifies hardware on host wake state */ - hostwake_ind_cb hostwake_ind; - - /* buffer allocation request */ - alloc_mem_cb alloc; - - /* buffer deallocation request */ - dealloc_mem_cb dealloc; - - /* notifies stack data is available */ - data_ind_cb data_ind; - - /* notifies caller when a buffer is transmitted (or failed) */ - tx_result_cb tx_result; -} bt_hc_callbacks_t; - -/* - * Bluetooth Host/Controller Interface - */ -typedef struct { - /** Set to sizeof(bt_hc_interface_t) */ - size_t size; - - /** - * Opens the interface and provides the callback routines - * to the implemenation of this interface. - */ - int (*init)(const bt_hc_callbacks_t* p_cb, unsigned char *local_bdaddr); - - /** Chip power control */ - void (*set_power)(bt_hc_chip_power_state_t state); - - /** Set low power mode wake */ - int (*lpm)(bt_hc_low_power_event_t event); - - /** Called prior to stack initialization */ - void (*preload)(TRANSAC transac); - - /** Called post stack initialization */ - void (*postload)(TRANSAC transac); - - /** Transmit buffer */ - int (*transmit_buf)(TRANSAC transac, char *p_buf, int len); - - /** Controls HCI logging on/off */ - int (*logging)(bt_hc_logging_state_t state, char *p_path, bool save_existing); - - /** Closes the interface */ - void (*cleanup)( void ); - - /** sends commands to hc layer (e.g. SCO state) */ - int (*tx_cmd)(TRANSAC transac, char *p_buf, int len); -} bt_hc_interface_t; - - -/* - * External shared lib functions - */ - -extern const bt_hc_interface_t* bt_hc_get_interface(void); - -#endif /* BT_HCI_LIB_H */ - diff --git a/mtk/libbt-vendor-mtk/bt_vendor_lib.h b/mtk/libbt-vendor-mtk/bt_vendor_lib.h deleted file mode 100644 index 65d448b..0000000 --- a/mtk/libbt-vendor-mtk/bt_vendor_lib.h +++ /dev/null @@ -1,362 +0,0 @@ -/****************************************************************************** - * - * Copyright (C) 2009-2012 Broadcom Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - ******************************************************************************/ - -#ifndef BT_VENDOR_LIB_H -#define BT_VENDOR_LIB_H - -#include -#include -#include - -/** Struct types */ - - -/** Typedefs and defines */ - -/** Vendor specific operations OPCODE */ -typedef enum { -/* [operation] - * Power on or off the BT Controller. - * [input param] - * A pointer to int type with content of bt_vendor_power_state_t. - * Typecasting conversion: (int *) param. - * [return] - * 0 - default, don't care. - * [callback] - * None. - */ - BT_VND_OP_POWER_CTRL, - -/* [operation] - * Perform any vendor specific initialization or configuration - * on the BT Controller. This is called before stack initialization. - * [input param] - * None. - * [return] - * 0 - default, don't care. - * [callback] - * Must call fwcfg_cb to notify the stack of the completion of vendor - * specific initialization once it has been done. - */ - BT_VND_OP_FW_CFG, - -/* [operation] - * Perform any vendor specific SCO/PCM configuration on the BT Controller. - * This is called after stack initialization. - * [input param] - * None. - * [return] - * 0 - default, don't care. - * [callback] - * Must call scocfg_cb to notify the stack of the completion of vendor - * specific SCO configuration once it has been done. - */ - BT_VND_OP_SCO_CFG, - -/* [operation] - * Open UART port on where the BT Controller is attached. - * This is called before stack initialization. - * [input param] - * A pointer to int array type for open file descriptors. - * The mapping of HCI channel to fd slot in the int array is given in - * bt_vendor_hci_channels_t. - * And, it requires the vendor lib to fill up the content before returning - * the call. - * Typecasting conversion: (int (*)[]) param. - * [return] - * Numbers of opened file descriptors. - * Valid number: - * 1 - CMD/EVT/ACL-In/ACL-Out via the same fd (e.g. UART) - * 2 - CMD/EVT on one fd, and ACL-In/ACL-Out on the other fd - * 4 - CMD, EVT, ACL-In, ACL-Out are on their individual fd - * [callback] - * None. - */ - BT_VND_OP_USERIAL_OPEN, - -/* [operation] - * Close the previously opened UART port. - * [input param] - * None. - * [return] - * 0 - default, don't care. - * [callback] - * None. - */ - BT_VND_OP_USERIAL_CLOSE, - -/* [operation] - * Get the LPM idle timeout in milliseconds. - * The stack uses this information to launch a timer delay before it - * attempts to de-assert LPM WAKE signal once downstream HCI packet - * has been delivered. - * [input param] - * A pointer to uint32_t type which is passed in by the stack. And, it - * requires the vendor lib to fill up the content before returning - * the call. - * Typecasting conversion: (uint32_t *) param. - * [return] - * 0 - default, don't care. - * [callback] - * None. - */ - BT_VND_OP_GET_LPM_IDLE_TIMEOUT, - -/* [operation] - * Enable or disable LPM mode on BT Controller. - * [input param] - * A pointer to uint8_t type with content of bt_vendor_lpm_mode_t. - * Typecasting conversion: (uint8_t *) param. - * [return] - * 0 - default, don't care. - * [callback] - * Must call lpm_cb to notify the stack of the completion of LPM - * disable/enable process once it has been done. - */ - BT_VND_OP_LPM_SET_MODE, - -/* [operation] - * Assert or Deassert LPM WAKE on BT Controller. - * [input param] - * A pointer to uint8_t type with content of bt_vendor_lpm_wake_state_t. - * Typecasting conversion: (uint8_t *) param. - * [return] - * 0 - default, don't care. - * [callback] - * None. - */ - BT_VND_OP_LPM_WAKE_SET_STATE, - -/* [operation] - * Perform any vendor specific commands related to audio state changes. - * [input param] - * a pointer to bt_vendor_op_audio_state_t indicating what audio state is - * set. - * [return] - * 0 - default, don't care. - * [callback] - * None. - */ - BT_VND_OP_SET_AUDIO_STATE, - -/* [operation] - * The epilog call to the vendor module so that it can perform any - * vendor-specific processes (e.g. send a HCI_RESET to BT Controller) - * before the caller calls for cleanup(). - * [input param] - * None. - * [return] - * 0 - default, don't care. - * [callback] - * Must call epilog_cb to notify the stack of the completion of vendor - * specific epilog process once it has been done. - */ - BT_VND_OP_EPILOG, -} bt_vendor_opcode_t; - -/** Power on/off control states */ -typedef enum { - BT_VND_PWR_OFF, - BT_VND_PWR_ON, -} bt_vendor_power_state_t; - -/** Define HCI channel identifier in the file descriptors array - used in BT_VND_OP_USERIAL_OPEN operation. - */ -typedef enum { - CH_CMD, // HCI Command channel - CH_EVT, // HCI Event channel - CH_ACL_OUT, // HCI ACL downstream channel - CH_ACL_IN, // HCI ACL upstream channel - - CH_MAX // Total channels -} bt_vendor_hci_channels_t; - -/** LPM disable/enable request */ -typedef enum { - BT_VND_LPM_DISABLE, - BT_VND_LPM_ENABLE, -} bt_vendor_lpm_mode_t; - -/** LPM WAKE set state request */ -typedef enum { - BT_VND_LPM_WAKE_ASSERT, - BT_VND_LPM_WAKE_DEASSERT, -} bt_vendor_lpm_wake_state_t; - -/** Callback result values */ -typedef enum { - BT_VND_OP_RESULT_SUCCESS, - BT_VND_OP_RESULT_FAIL, -} bt_vendor_op_result_t; - -/** audio (SCO) state changes triggering VS commands for configuration */ -typedef struct { - uint16_t handle; - uint16_t peer_codec; - uint16_t state; -} bt_vendor_op_audio_state_t; - -/* - * Bluetooth Host/Controller Vendor callback structure. - */ - -/* vendor initialization/configuration callback */ -typedef void (*cfg_result_cb)(bt_vendor_op_result_t result); - -/* datapath buffer allocation callback (callout) - * - * Vendor lib needs to request a buffer through the alloc callout function - * from HCI lib if the buffer is for constructing a HCI Command packet which - * will be sent through xmit_cb to BT Controller. - * - * For each buffer allocation, the requested size needs to be big enough to - * accommodate the below header plus a complete HCI packet -- - * typedef struct - * { - * uint16_t event; - * uint16_t len; - * uint16_t offset; - * uint16_t layer_specific; - * } HC_BT_HDR; - * - * HCI lib returns a pointer to the buffer where Vendor lib should use to - * construct a HCI command packet as below format: - * - * -------------------------------------------- - * | HC_BT_HDR | HCI command | - * -------------------------------------------- - * where - * HC_BT_HDR.event = 0x2000; - * HC_BT_HDR.len = Length of HCI command; - * HC_BT_HDR.offset = 0; - * HC_BT_HDR.layer_specific = 0; - * - * For example, a HCI_RESET Command will be formed as - * ------------------------ - * | HC_BT_HDR |03|0c|00| - * ------------------------ - * with - * HC_BT_HDR.event = 0x2000; - * HC_BT_HDR.len = 3; - * HC_BT_HDR.offset = 0; - * HC_BT_HDR.layer_specific = 0; - */ -typedef void* (*malloc_cb)(int size); - -/* datapath buffer deallocation callback (callout) */ -typedef void (*mdealloc_cb)(void *p_buf); - -/* define callback of the cmd_xmit_cb - * - * The callback function which HCI lib will call with the return of command - * complete packet. Vendor lib is responsible for releasing the buffer passed - * in at the p_mem parameter by calling dealloc callout function. - */ -typedef void (*tINT_CMD_CBACK)(void *p_mem); - -/* hci command packet transmit callback (callout) - * - * Vendor lib calls xmit_cb callout function in order to send a HCI Command - * packet to BT Controller. The buffer carrying HCI Command packet content - * needs to be first allocated through the alloc callout function. - * HCI lib will release the buffer for Vendor lib once it has delivered the - * packet content to BT Controller. - * - * Vendor lib needs also provide a callback function (p_cback) which HCI lib - * will call with the return of command complete packet. - * - * The opcode parameter gives the HCI OpCode (combination of OGF and OCF) of - * HCI Command packet. For example, opcode = 0x0c03 for the HCI_RESET command - * packet. - */ -typedef uint8_t (*cmd_xmit_cb)(uint16_t opcode, void *p_buf, tINT_CMD_CBACK p_cback); - -typedef struct { - /** set to sizeof(bt_vendor_callbacks_t) */ - size_t size; - - /* - * Callback and callout functions have implemented in HCI libray - * (libbt-hci.so). - */ - - /* notifies caller result of firmware configuration request */ - cfg_result_cb fwcfg_cb; - - /* notifies caller result of sco configuration request */ - cfg_result_cb scocfg_cb; - - /* notifies caller result of lpm enable/disable */ - cfg_result_cb lpm_cb; - - /* notifies the result of codec setting */ - cfg_result_cb audio_state_cb; - - /* buffer allocation request */ - malloc_cb alloc; - - /* buffer deallocation request */ - mdealloc_cb dealloc; - - /* hci command packet transmit request */ - cmd_xmit_cb xmit_cb; - - /* notifies caller completion of epilog process */ - cfg_result_cb epilog_cb; -} bt_vendor_callbacks_t; - -/* - * Bluetooth Host/Controller VENDOR Interface - */ -typedef struct { - /** Set to sizeof(bt_vndor_interface_t) */ - size_t size; - - /* - * Functions need to be implemented in Vendor libray (libbt-vendor.so). - */ - - /** - * Caller will open the interface and pass in the callback routines - * to the implemenation of this interface. - */ - int (*init)(const bt_vendor_callbacks_t* p_cb, unsigned char *local_bdaddr); - - /** Vendor specific operations */ - int (*op)(bt_vendor_opcode_t opcode, void *param); - - /** Closes the interface */ - void (*cleanup)(void); -} bt_vendor_interface_t; - - -/* - * External shared lib functions/data - */ - -/* Entry point of DLib -- - * Vendor library needs to implement the body of bt_vendor_interface_t - * structure and uses the below name as the variable name. HCI library - * will use this symbol name to get address of the object through the - * dlsym call. - */ -extern const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE; - -#endif /* BT_VENDOR_LIB_H */ - diff --git a/mtk/libbt-vendor-mtk/libbt-vendor-mtk.c b/mtk/libbt-vendor-mtk/libbt-vendor-mtk.c deleted file mode 100644 index 87f4c08..0000000 --- a/mtk/libbt-vendor-mtk/libbt-vendor-mtk.c +++ /dev/null @@ -1,151 +0,0 @@ -#define LOG_TAG "libbt_vendor_mtk" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/** - * TODO: check/fix this value. does this make sense for MTK? It is taken from TI - * Low power mode: default transport idle timer - */ -#define WL_DEFAULT_LPM_IDLE_TIMEOUT 200 - -static void *mtklib_handle = NULL; -typedef int (*ENABLE)(int flag, void *func_cb); -typedef int (*DISABLE)(int bt_fd); - -unsigned int hci_tty_fd = -1; - -ENABLE mtk_bt_enable = NULL; -DISABLE mtk_bt_disable = NULL; - -bt_vendor_callbacks_t *bt_vendor_cbacks = NULL; -void hw_config_cback(HC_BT_HDR *p_evt_buf); - -/******************************************************************************* - * - * Function hw_config_cback - * - * Description Callback function for controller configuration - * - * Returns None - * - * *******************************************************************************/ -void hw_config_cback(HC_BT_HDR *p_evt_buf) -{ - ALOGI("hw_config_cback"); -} - -int mtk_init(const bt_vendor_callbacks_t* p_cb, unsigned char *local_bdaddr) { - const char *dlerrors; - - ALOGI("libbt-vendor init for MTK blob"); - - if (p_cb == NULL) - { - ALOGE("init failed with no user callbacks!"); - return BT_HC_STATUS_FAIL; - } - - bt_vendor_cbacks = (bt_vendor_callbacks_t *) p_cb; - - dlerror(); - - mtklib_handle = dlopen("libbluetoothdrv.so", RTLD_LAZY); - - mtk_bt_enable = dlsym(mtklib_handle, "mtk_bt_enable"); - mtk_bt_disable = dlsym(mtklib_handle, "mtk_bt_disable"); - - if ((dlerrors = dlerror()) != NULL){ - ALOGE("Errors while opening symbols from mtk blob"); - dlclose(mtklib_handle); - } - return 0; -} - -void mtk_cleanup(void) { - ALOGI("vendor cleanup"); - bt_vendor_cbacks = NULL; - - if (mtklib_handle) { - dlclose(mtklib_handle); - } -} - -int mtk_open(void **param) { - int (*fd_array)[] = (int (*)[]) param; - int fd, idx; - fd = mtk_bt_enable(0, NULL); - if (fd < 0) { - ALOGE("Can't open mtk fd"); - return -1; - } - for (idx = 0; idx < CH_MAX; idx++) - (*fd_array)[idx] = fd; - - hci_tty_fd = fd; /* for userial_close op */ - return 1; /* CMD/EVT/ACL on same fd */ -} - -int mtk_close() { - if (hci_tty_fd == (unsigned int) -1) - return -1; - return mtk_bt_disable(hci_tty_fd); -} - -int mtk_op(bt_vendor_opcode_t opcode, void **param) { - int ret = 0; - - switch(opcode) - { - case BT_VND_OP_POWER_CTRL: - break; - case BT_VND_OP_SCO_CFG: - break; - case BT_VND_OP_GET_LPM_IDLE_TIMEOUT: - *((uint32_t *) param) = WL_DEFAULT_LPM_IDLE_TIMEOUT; - break; - case BT_VND_OP_LPM_SET_MODE: - break; - case BT_VND_OP_LPM_WAKE_SET_STATE: - break; - case BT_VND_OP_USERIAL_OPEN: - ret = mtk_open(param); - break; - case BT_VND_OP_USERIAL_CLOSE: - ret = mtk_close(); - break; - /* Since new stack expects fwcfg_cb we are returning SUCCESS here - * in actual, firmware download is already happened when /dev/hci_tty - * opened. - */ - case BT_VND_OP_FW_CFG: - bt_vendor_cbacks->fwcfg_cb(BT_VND_OP_RESULT_SUCCESS); - break; - case BT_VND_OP_EPILOG: - bt_vendor_cbacks->epilog_cb(BT_VND_OP_RESULT_SUCCESS); - break; - default: - ALOGW("Unknown opcode: %d", opcode); - break; - } - - return ret; -} -const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE = { - .init = mtk_init, - .op = mtk_op, - .cleanup = mtk_cleanup, -}; - -int main() -{ - return 0; -} diff --git a/product/packages.mk b/product/packages.mk index 092a069..0f2e6b0 100644 --- a/product/packages.mk +++ b/product/packages.mk @@ -20,9 +20,6 @@ PRODUCT_PACKAGES += libstlport # Ion PRODUCT_PACKAGES += libion -# Bt -PRODUCT_PACKAGES += libbt-vendor - # Audio PRODUCT_PACKAGES += \ audio.a2dp.default \