diff options
| author | Evan Chu <evanchu@broadcom.com> | 2013-05-01 11:29:02 -0700 |
|---|---|---|
| committer | Martijn Coenen <maco@google.com> | 2013-05-01 17:52:52 -0700 |
| commit | 45e68232b8524aca5165dca28b994ec8c11593b1 (patch) | |
| tree | cacb5bfd74b8549717a115daa36b6d49b1aa2a6e /halimpl/bcm2079x/hal | |
| parent | d2e38f8f4c231d56d66a7f806587fd2c942a9f12 (diff) | |
| download | android_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.c | 18 | ||||
| -rw-r--r-- | halimpl/bcm2079x/hal/hal/nfc_hal_dm.c | 2 | ||||
| -rw-r--r-- | halimpl/bcm2079x/hal/hal/nfc_hal_dm_cfg.c | 17 | ||||
| -rw-r--r-- | halimpl/bcm2079x/hal/hal/nfc_hal_main.c | 40 |
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 (); |
