summaryrefslogtreecommitdiffstats
path: root/halimpl/bcm2079x/hal
diff options
context:
space:
mode:
authorEvan Chu <evanchu@broadcom.com>2013-05-01 11:29:02 -0700
committerMartijn Coenen <maco@google.com>2013-05-01 17:52:52 -0700
commit45e68232b8524aca5165dca28b994ec8c11593b1 (patch)
treecacb5bfd74b8549717a115daa36b6d49b1aa2a6e /halimpl/bcm2079x/hal
parentd2e38f8f4c231d56d66a7f806587fd2c942a9f12 (diff)
downloadandroid_hardware_broadcom_nfc-45e68232b8524aca5165dca28b994ec8c11593b1.tar.gz
android_hardware_broadcom_nfc-45e68232b8524aca5165dca28b994ec8c11593b1.tar.bz2
android_hardware_broadcom_nfc-45e68232b8524aca5165dca28b994ec8c11593b1.zip
Send config params on HAL_NfcPreDiscover().
Bug: 8776949 Change-Id: Idbfb9c77304ce0df8521b167f25004bfd18b59d8
Diffstat (limited to 'halimpl/bcm2079x/hal')
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_api.c18
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_dm.c2
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c17
-rw-r--r--halimpl/bcm2079x/hal/hal/nfc_hal_main.c40
4 files changed, 76 insertions, 1 deletions
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_api.c b/halimpl/bcm2079x/hal/hal/nfc_hal_api.c
index 742f542..2cd95b2 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_api.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_api.c
@@ -233,6 +233,24 @@ BOOLEAN HAL_NfcPreDiscover (void)
{
BOOLEAN status = FALSE;
+ NFC_HDR *p_msg;
+
+ HAL_TRACE_API0 ("HAL_NfcPreDiscover ()");
+ if (nfc_hal_cb.pre_discover_done == FALSE)
+ {
+ nfc_hal_cb.pre_discover_done = TRUE;
+ if (p_nfc_hal_pre_discover_cfg && *p_nfc_hal_pre_discover_cfg)
+ {
+ status = TRUE;
+ /* Send message to NFC_HAL_TASK */
+ if ((p_msg = (NFC_HDR *)GKI_getpoolbuf (NFC_HAL_NCI_POOL_ID)) != NULL)
+ {
+ p_msg->event = NFC_HAL_EVT_PRE_DISCOVER;
+ GKI_send_msg (NFC_HAL_TASK, NFC_HAL_TASK_MBOX, p_msg);
+ }
+ }
+ }
+
HAL_TRACE_API1 ("HAL_NfcPreDiscover status:%d", status);
return status;
}
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c b/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c
index 2b4aba6..4b0f034 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_dm.c
@@ -998,6 +998,8 @@ void nfc_hal_dm_init (void)
nfc_hal_cb.hci_cb.hci_timer.p_cback = nfc_hal_hci_timeout_cback;
+ nfc_hal_cb.pre_discover_done = FALSE;
+
nfc_post_reset_cb.spd_nvm_detection_cur_count = 0;
nfc_post_reset_cb.spd_skip_on_power_cycle = FALSE;
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c b/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c
index 68ee089..76208c4 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c
@@ -82,6 +82,23 @@ UINT8 nfc_hal_dm_start_up_vsc_cfg[] = {
UINT8 *p_nfc_hal_dm_start_up_vsc_cfg = NULL;
+/* the SetConfig at HAL_NfcPreDiscover. This is done once after HAL_NfcOpen */
+UINT8 nfc_hal_pre_discover_cfg[] = {
+ /* TLV len */ 0x0A,
+ /* B0 */ NCI_PARAM_ID_SWPCFG,
+ /* B1 */ 0x08,
+ /* B2 */ 0x01,
+ /* B3 */ 0x08,
+ /* B4 */ 0x00,
+ /* B5 */ 0x04,
+ /* B6 */ 0x80,
+ /* B7 */ 0xC3,
+ /* B8 */ 0xC9,
+ /* B9 */ 0x01
+};
+
+UINT8 *p_nfc_hal_pre_discover_cfg = NULL;
+
/* LPTD parameters (LowPowerTagDetection)
* This is typical values for 20791B2
* The timing and threshold parameters used for a customer handset/hardware may vary
diff --git a/halimpl/bcm2079x/hal/hal/nfc_hal_main.c b/halimpl/bcm2079x/hal/hal/nfc_hal_main.c
index a3fb215..7a7284a 100644
--- a/halimpl/bcm2079x/hal/hal/nfc_hal_main.c
+++ b/halimpl/bcm2079x/hal/hal/nfc_hal_main.c
@@ -53,7 +53,6 @@ static void nfc_hal_main_userial_cback (tUSERIAL_PORT port, tUSERIAL_EVT evt, tU
static void nfc_hal_main_handle_terminate (void);
static void nfc_hal_main_timeout_cback (void *p_tle);
-
#if (NFC_HAL_DEBUG == TRUE)
const char * const nfc_hal_init_state_str[] =
{
@@ -132,6 +131,41 @@ static void nfc_hal_main_open_transport (void)
/*******************************************************************************
**
+** Function nfa_hal_pre_discover_done_cback
+**
+** Description Pre-discovery CFG is sent.
+**
+** Returns nothing
+**
+*******************************************************************************/
+void nfa_hal_pre_discover_done_cback (tNFC_HAL_NCI_EVT event, UINT16 data_len, UINT8 *p_data)
+{
+ NFC_HAL_SET_INIT_STATE(NFC_HAL_INIT_STATE_IDLE);
+ nfc_hal_main_stop_quick_timer (&nfc_hal_cb.ncit_cb.nci_wait_rsp_timer);
+ nfc_hal_cb.p_stack_cback (HAL_NFC_PRE_DISCOVER_CPLT_EVT, HAL_NFC_STATUS_OK);
+}
+
+/*******************************************************************************
+**
+** Function nfa_hal_send_pre_discover_cfg
+**
+** Description sending Pre-discovery CFG
+**
+** Returns nothing
+**
+*******************************************************************************/
+void nfa_hal_send_pre_discover_cfg (void)
+{
+ if (nfc_hal_dm_set_config (p_nfc_hal_pre_discover_cfg [0],
+ &p_nfc_hal_pre_discover_cfg[1],
+ nfa_hal_pre_discover_done_cback) != HAL_NFC_STATUS_OK)
+ {
+ nfa_hal_pre_discover_done_cback(0, 0, NULL);
+ }
+}
+
+/*******************************************************************************
+**
** Function nfc_hal_main_send_error
**
** Description send an Error event to NFC stack
@@ -628,6 +662,10 @@ UINT32 nfc_hal_main_task (UINT32 param)
nfc_hal_hci_evt_hdlr ((tNFC_HAL_HCI_EVENT_DATA *) p_msg);
break;
+ case NFC_HAL_EVT_PRE_DISCOVER:
+ NFC_HAL_SET_INIT_STATE(NFC_HAL_INIT_STATE_W4_PREDISCOVER_DONE);
+ nfa_hal_send_pre_discover_cfg ();
+ break;
case NFC_HAL_EVT_CONTROL_GRANTED:
nfc_hal_dm_send_pend_cmd ();