Commit f4573cf8 authored by Chirayu Desai's avatar Chirayu Desai
Browse files

Initial kitakami common tree

Change-Id: Iada79bef3460bb97b866dd1f872af4180a544e19
parent 39df30e2
#
# Copyright (C) 2016 The CyanogenMod Project
#
# 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.
#
LOCAL_PATH := $(call my-dir)
ifeq ($(filter-out,$(TARGET_DEVICE),ivy karin karin_windy satsuki sumire suzuran),)
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
ADSP_IMAGES := \
adsp.b00 adsp.b01 adsp.b02 adsp.b03 adsp.b04 adsp.b05 adsp.b06 adsp.b07 \
adsp.b08 adsp.b09 adsp.b10 adsp.b11 adsp.b12 adsp.b13 adsp.b14 adsp.b15 adsp.mdt
ADSP_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(ADSP_IMAGES)))
$(ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "ADSP firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(ADSP_SYMLINKS)
CPE_IMAGES := \
cpe.b02 cpe.b04 cpe.b05 cpe.b06 cpe.b08 cpe.b10 cpe.b11 \
cpe.b12 cpe.b14 cpe.b16 cpe.b18 cpe.b20 cpe.b21 cpe.mdt \
CPE_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(CPE_IMAGES)))
$(CPE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "CPE firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(CPE_SYMLINKS)
KM_IMAGES := \
keymaste.b00 keymaste.b01 keymaste.b02 keymaste.b03 keymaste.mdt
KM_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(KM_IMAGES)))
$(KM_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Keymaster firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(KM_SYMLINKS)
KMOTA_IMAGES := \
kmota.b00 kmota.b01 kmota.b02 kmota.b03 kmota.mdt
KMOTA_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(KMOTA_IMAGES)))
$(KMOTA_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "KMOTA firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(KMOTA_SYMLINKS)
MBA_IMAGES := \
mba.b00 mba.mdt
MBA_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(MBA_IMAGES)))
$(MBA_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "MBA firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(MBA_SYMLINKS)
MODEM_IMAGES := \
modem.b00 modem.b01 modem.b03 modem.b04 modem.b05 \
modem.b06 modem.b07 modem.b08 modem.b09 modem.b10 \
modem.b11 modem.b12 modem.b13 modem.b14 modem.b18 \
modem.b19 modem.b20 modem.b22 modem.mdt
MODEM_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(MODEM_IMAGES)))
$(MODEM_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Modem firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(MODEM_SYMLINKS)
# Create links for audcal data files
$(shell mkdir -p $(TARGET_OUT)/etc/firmware/wcd9320; \
ln -sf /data/misc/audio/mbhc.bin \
$(TARGET_OUT_ETC)/firmware/wcd9320/wcd9320_mbhc.bin; \
ln -sf /data/misc/audio/wcd9320_anc.bin \
$(TARGET_OUT_ETC)/firmware/wcd9320/wcd9320_anc.bin;\
ln -sf /data/misc/audio/wcd9320_mad_audio.bin \
$(TARGET_OUT_ETC)/firmware/wcd9320/wcd9320_mad_audio.bin)
endif
#
# Copyright (C) 2016 The CyanogenMod Project
#
# 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.
#
COMMON_PATH := device/sony/kitakami-common
TARGET_SPECIFIC_HEADER_PATH += $(COMMON_PATH)/include
BOARD_VENDOR := sony
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := MSM8994
TARGET_NO_BOOTLOADER := true
# Platform
TARGET_BOARD_PLATFORM := msm8994
TARGET_BOARD_PLATFORM_GPU := qcom-adreno430
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53.a57
TARGET_USES_64_BIT_BINDER := true
TARGET_USES_64_BIT_BCMDHD := true
ENABLE_CPUSETS := true
# Boot image/kernel
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-5 dwc3_msm.hvdcp_max_current=1500 dwc3_msm.prop_chg_detect=Y coherent_pool=2M androidboot.selinux=enforcing
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_TAGS_OFFSET := 0x00000100
BOARD_RAMDISK_OFFSET := 0x02000000
TARGET_KERNEL_APPEND_DTB := true
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_HEADER_ARCH := arm64
TARGET_KERNEL_CROSS_COMPILE_PREFIX := aarch64-linux-android-
TARGET_KERNEL_SOURCE := kernel/sony/msm8994
# Audio
AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
BOARD_USES_ALSA_AUDIO := true
# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
# Charger
BOARD_CHARGER_ENABLE_SUSPEND := true
BOARD_CHARGER_SHOW_PERCENTAGE := true
BOARD_CHARGER_DISABLE_INIT_BLANK := true
# Display
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
TARGET_USES_ION := true
TARGET_USES_NEW_ION_API := true
TARGET_USES_C2D_COMPOSITION := true
USE_OPENGL_RENDERER := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
HAVE_ADRENO_SOURCE := false
OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
VSYNC_EVENT_PHASE_OFFSET_NS := 2000000
SF_VSYNC_EVENT_PHASE_OFFSET_NS := 6000000
# Lights
TARGET_PROVIDES_LIBLIGHT := true
# Init
TARGET_PLATFORM_DEVICE_BASE := /devices/soc.0/
# Power
TARGET_POWERHAL_VARIANT := qcom
# RPC
TARGET_NO_RPC := true
# Keymaster
TARGET_PROVIDES_KEYMASTER := true
# Sensors
USE_SENSOR_MULTI_HAL := true
# Qualcomm support
BOARD_USES_QCOM_HARDWARE := true
# Recovery
TARGET_RECOVERY_FSTAB := $(COMMON_PATH)/rootdir/fstab.qcom
TARGET_USERIMAGES_USE_EXT4 := true
# RIL
TARGET_RIL_VARIANT := caf
# SELinux
include device/qcom/sepolicy/sepolicy.mk
BOARD_SEPOLICY_DIRS += \
$(COMMON_PATH)/sepolicy
ifeq ($(BOARD_HAVE_BCM_FM), true)
LOCAL_PATH := $(call my-dir)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#
# UIM Application
#
LOCAL_C_INCLUDES:= $(LOCAL_PATH)/include
LOCAL_SRC_FILES:= \
uim.c \
upio.c \
brcm_hci_dump.c \
btsnoop.c \
utils.c
LOCAL_CLANG := false
LOCAL_CFLAGS:= -c -W -Wall -O2 -D_POSIX_SOURCE -DUIM_DEBUG -DBLUEDROID_ENABLE_V4L2
LOCAL_SHARED_LIBRARIES:= libnetutils libcutils liblog
LOCAL_MODULE := brcm-uim-sysfs
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
This diff is collapsed.
This diff is collapsed.
/*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program;if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Copyright (C) 2009-2015 Broadcom Corporation
* Copyright (C) 2015 Sony Mobile Communications Inc.
*
* NOTE: This file has been modified by Sony Mobile Communications Inc.
* Modifications are licensed under the License.
*/
#ifndef __HCI_SNOOP_DUMP_V4L2
#define __HCI_SNOOP_DUMP_V4L2
#define HCI_SNOOP_PATH_LEN 200
#define MSG_FM_TO_HC_HCI_CMD 0x4000
#define MSG_HC_TO_FM_HCI_EVT 0x3000
#define TRUE 1
#define FALSE 0
/* function declarations */
int v4l2_start_hci_snoop();
int v4l2_stop_hci_snoop();
int v4l2_get_hci_snoop_status();
typedef enum
{
HCI_SNOOP_STARTING,
HCI_SNOOP_RUNNING,
HCI_SNOOP_STOP
} HCI_SNOOP_STATUS;
enum {
HCISNOOP_EXIT,
};
/* HCI HCI_V4L2 message type definitions */
#define HCI_V4L2_TYPE_COMMAND 1
#define HCI_V4L2_TYPE_ACL_DATA 2
#define HCI_V4L2_TYPE_SCO_DATA 3
#define HCI_V4L2_TYPE_EVENT 4
#define HCI_V4L2_TYPE_FM_CMD 8
/* 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 */
#define MSG_FM_TO_HC_HCI_CMD 0x4000
#define MSG_HC_TO_STACK_HCI_EVT 0x1000 /* eq. BT_EVT_TO_BTU_HCI_EVT */
#define MSG_HC_TO_FM_HCI_EVT 0x3000
/* Preamble length for HCI Commands:
** 2-bytes for opcode and 1 byte for length
*/
#define HCI_CMD_PREAMBLE_SIZE 3
/* Preamble length for HCI Events:
** 1-byte for opcode and 1 byte for length
*/
#define HCI_EVT_PREAMBLE_SIZE 2
/* Preamble length for SCO Data:
** 2-byte for Handle and 1 byte for length
*/
#define HCI_SCO_PREAMBLE_SIZE 3
/* Preamble length for ACL Data:
** 2-byte for Handle and 2 byte for length
*/
#define HCI_ACL_PREAMBLE_SIZE 4
/* Table of HCI preamble sizes for the different HCI message types */
static const uint8_t hci_preamble_table[] =
{
HCI_CMD_PREAMBLE_SIZE,
HCI_ACL_PREAMBLE_SIZE,
HCI_SCO_PREAMBLE_SIZE,
HCI_EVT_PREAMBLE_SIZE
};
#define ACL_RX_PKT_START 2
#define ACL_RX_PKT_CONTINUE 1
#define L2CAP_HEADER_SIZE 4
#define MAX_ACL_PDU_SIZE ((uint16_t)0xFFFF - HCI_ACL_PREAMBLE_SIZE \
- L2CAP_HEADER_SIZE)
/* Preamble length for ACL Data:
** 2-byte for Handle and 2 byte for length
*/
#define HCI_ACL_PREAMBLE_SIZE 4
#define MSG_HC_TO_STACK_HCI_ACL 0x1100 /* eq. BT_EVT_TO_BTU_HCI_ACL */
/******************************************************************************
** Constants & Macros
******************************************************************************/
#define STREAM_TO_UINT16(u16, p) {u16 = ((uint16_t)(*(p)) + (((uint16_t)(*((p) + 1))) << 8)); (p) += 2;}
#define UINT16_TO_STREAM(p, u16) {*(p)++ = (uint8_t)(u16); *(p)++ = (uint8_t)((u16) >> 8);}
#define UINT32_TO_STREAM(p, u32) {*(p)++ = (uint8_t)(u32); *(p)++ = (uint8_t)((u32) >> 8); *(p)++ = (uint8_t)((u32) >> 16); *(p)++ = (uint8_t)((u32) >> 24);}
#endif
/*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program;if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Copyright (C) 2009-2015 Broadcom Corporation
*/
#ifndef V4L2_SNOOP
#define V4L2_SNOOP
#ifndef BTSNOOPDISP_INCLUDED
#define BTSNOOPDISP_INCLUDED TRUE
#endif
/* Disable external parser for production */
#ifndef BTSNOOP_EXT_PARSER_INCLUDED
#define BTSNOOP_EXT_PARSER_INCLUDED FALSE
#endif
typedef struct
{
uint16_t event;
uint16_t len;
uint16_t offset;
uint16_t layer_specific;
} HC_BT_HDR;
#define BT_HC_HDR_SIZE (sizeof(HC_BT_HDR))
/* 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 */
/* Message event/cmd related to FM*/
#define MSG_FM_TO_HC_HCI_CMD 0x4000
#define MSG_HC_TO_FM_HCI_EVT 0x3000
void btsnoop_capture(HC_BT_HDR *p_buf, uint8_t is_rcvd);
void btsnoop_open(char *p_path);
void btsnoop_init(void);
void btsnoop_close(void);
void btsnoop_cleanup (void);
#endif
/*
* User Mode Init manager - For shared transport
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program;if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Copyright (C) 2009-2015 Broadcom Corporation
*/
/************************************************************************************
*
* Filename: brcm_uim.h
*
* Description: User Interface Module header file.
*
***********************************************************************************/
#ifndef UIM_H
#define UIM_H
#define TRUE 1
#define FALSE 0
/*HCI Command and Event information*/
#define HCI_HDR_OPCODE 0xff36
#define WRITE_BD_ADDR_OPCODE 0xFC06
#define RESP_PREFIX 0x04
#define MAX_TRY 10
/* HCI Packet types */
#define HCI_COMMAND_PKT 0x01
#define HCI_EVENT_PKT 0x04
/* HCI command macros */
#define HCI_EVENT_HDR_SIZE 2
#define HCI_COMMAND_HDR_SIZE 3
#define UIM_WRITE_BD_ADDR_CP_SIZE 6
/* HCI event macros */
#define EVT_CMD_COMPLETE_SIZE 3
#define EVT_CMD_STATUS_SIZE 4
#define EVT_CMD_COMPLETE 0x0E
#define EVT_CMD_STATUS 0x0F
/* Set proto for shared LDISC */
#define HCIUARTSETPROTO _IOW('U', 200, int)
#define HCI_UART_H4 0
#define HCI_UART_BCSP 1
#define HCI_UART_3WIRE 2
#define HCI_UART_H4DS 3
#define HCI_UART_LL 4
#define LPM_SLEEP_MODE 1
#define LPM_IDLE_THRESHOLD 1
#define LPM_HC_IDLE_THRESHOLD 1
#define LPM_BT_WAKE_POLARITY 1
#define LPM_HOST_WAKE_POLARITY 1
#define LPM_ALLOW_HOST_SLEEP_DURING_SCO 1
#define LPM_COMBINE_SLEEP_MODE_AND_LPM 1
#define LPM_ENABLE_UART_TXD_TRI_STATE 0
#define LPM_PULSED_HOST_WAKE 0
#define LPM_CMD_PARAM_SIZE 12
/* low power mode parameters */
typedef struct
{
uint8_t sleep_mode; /* 0(disable),1(UART),9(H5) */
uint8_t host_stack_idle_threshold; /* Unit scale 300ms/25ms */
uint8_t host_controller_idle_threshold; /* Unit scale 300ms/25ms */
uint8_t bt_wake_polarity; /* 0=Active Low, 1= Active High */
uint8_t host_wake_polarity; /* 0=Active Low, 1= Active High */
uint8_t allow_host_sleep_during_sco;
uint8_t combine_sleep_mode_and_lpm;
uint8_t enable_uart_txd_tri_state; /* UART_TXD Tri-State */
uint8_t sleep_guard_time; /* sleep guard time in 12.5ms */
uint8_t wakeup_guard_time; /* wakeup guard time in 12.5ms */
uint8_t txd_config; /* TXD is high in sleep state */
uint8_t pulsed_host_wake; /* pulsed host wake if mode = 1 */
} btuim_lpm_param_t;
/* HCI command header*/
typedef struct {
uint16_t opcode; /* OCF & OGF */
uint8_t plen;
} __attribute__ ((packed)) hci_command_hdr;
/* HCI event header*/
typedef struct {
uint8_t evt;
uint8_t plen;
} __attribute__ ((packed)) hci_event_hdr;
/* HCI command complete event*/
typedef struct {
uint8_t ncmd;
uint16_t opcode;
} __attribute__ ((packed)) evt_cmd_complete;
/* HCI event status*/
typedef struct {
uint8_t status;
uint8_t ncmd;
uint16_t opcode;
} __attribute__ ((packed)) evt_cmd_status;
/* HCI Event structure to set the cusrom baud rate*/
typedef struct {
uint8_t uart_prefix;
hci_event_hdr hci_hdr;
evt_cmd_complete cmd_complete;
uint8_t status;
uint8_t data[16];
} __attribute__ ((packed)) command_complete_t;
typedef struct {
unsigned char address[6];
} __attribute__((packed)) bdaddr_t;
/* HCI Command structure to set the uim BD address*/
typedef struct {
uint8_t uart_prefix;
hci_command_hdr hci_hdr;
bdaddr_t addr;
} __attribute__ ((packed)) uim_bdaddr_change_cmd;
/* Sys_fs entry. The Line discipline driver sets this to 1 when bluedroid open BT protocol driver */
/* Note: This entry is used in bt_hci_bdroid.c (Android source). Also present in
* brcm_sh_ldisc.c (v4l2_drivers) and board specific file (android kernel source) */
#define INSTALL_SYSFS_ENTRY "/sys/devices/platform/bcm_ldisc/install"
#define LDISC_VENDOR_PARAMS "/sys/devices/platform/bcm_ldisc/vendor_params"
#define BDADDR_SYSFS_ENTRY "/sys/devices/platform/bcm_ldisc/bdaddr"
#define FW_PATCHFILE_SYSFS_ENTRY "/sys/devices/platform/bcm_ldisc/fw_patchfile"
#define LDISC_SYSFS_SNOOP "/sys/devices/platform/bcm_ldisc/snoop_enable"
/* install sysfs entry values */
#define V4L2_STATUS_ERR '2' // error occured in BT application (HCI command timeout or HW error)
#define V4L2_STATUS_ON '1' // Atleast one procol driver is registered
#define V4L2_STATUS_OFF '0' // No procol drivers registered
</