I am trying to enable BLE in Android 4.3 on Pandaboard ES(with TI's
BR/EDR and BLE chipset WL1271L). But the WL1271L firmware(Version:
TIInit_7.6.15.bts) seems not support a command from Bluedroid, so I can not
start BLE.(BR/EDR works well.) The details see below.
/*******************************************************************************
**
** Function btm_issue_host_support_for_lmp_features
**
** Description This function:
** - issues commands to set host supported LMP features (one at
** a time);
** - after this is done it issues command to re-read LMP
features
** page 1;
** - after this is done it calls the last step of BR
<http://androidxref.com/4.3_r2.1/s?path=BR/>/EDR
<http://androidxref.com/4.3_r2.1/s?path=BR/EDR>
** controller startup sequence.
**
** Returns void
**
*******************************************************************************/*static*
*void* btm_issue_host_support_for_lmp_features
<http://androidxref.com/4.3_r2.1/s?refs=btm_issue_host_support_for_lmp_features&project=external>
(*void*)
{
BTM_TRACE_DEBUG1
<http://androidxref.com/4.3_r2.1/s?defs=BTM_TRACE_DEBUG1&project=external>("btm_issue_host_support_for_lmp_features
lmp_features_host_may_support: 0x%02x", btm_cb
<http://androidxref.com/4.3_r2.1/s?defs=btm_cb&project=external>.devcb
<http://androidxref.com/4.3_r2.1/s?defs=devcb&project=external>.lmp_features_host_may_support
<http://androidxref.com/4.3_r2.1/s?defs=lmp_features_host_may_support&project=external>);
*if* (btm_cb
<http://androidxref.com/4.3_r2.1/s?defs=btm_cb&project=external>.devcb
<http://androidxref.com/4.3_r2.1/s?defs=devcb&project=external>.lmp_features_host_may_support
<http://androidxref.com/4.3_r2.1/s?defs=lmp_features_host_may_support&project=external>
& BTM_HOST_MAY_SUPP_SSP
<http://androidxref.com/4.3_r2.1/s?defs=BTM_HOST_MAY_SUPP_SSP&project=external>)
{
btsnd_hcic_write_simple_pairing_mode
<http://androidxref.com/4.3_r2.1/s?defs=btsnd_hcic_write_simple_pairing_mode&project=external>(HCI_SP_MODE_ENABLED
<http://androidxref.com/4.3_r2.1/s?defs=HCI_SP_MODE_ENABLED&project=external>);
*return*;
}
#*if* (BLE_INCLUDED
<http://androidxref.com/4.3_r2.1/s?defs=BLE_INCLUDED&project=external> == TRUE
<http://androidxref.com/4.3_r2.1/s?defs=TRUE&project=external>)
*if* (btm_cb
<http://androidxref.com/4.3_r2.1/s?defs=btm_cb&project=external>.devcb
<http://androidxref.com/4.3_r2.1/s?defs=devcb&project=external>.lmp_features_host_may_support
<http://androidxref.com/4.3_r2.1/s?defs=lmp_features_host_may_support&project=external>
& BTM_HOST_MAY_SUPP_LE
<http://androidxref.com/4.3_r2.1/s?defs=BTM_HOST_MAY_SUPP_LE&project=external>)
{
*if* (btm_cb
<http://androidxref.com/4.3_r2.1/s?defs=btm_cb&project=external>.devcb
<http://androidxref.com/4.3_r2.1/s?defs=devcb&project=external>.lmp_features_host_may_support
<http://androidxref.com/4.3_r2.1/s?defs=lmp_features_host_may_support&project=external>
& BTM_HOST_MAY_SUPP_SIMULT_BR_LE
<http://androidxref.com/4.3_r2.1/s?defs=BTM_HOST_MAY_SUPP_SIMULT_BR_LE&project=external>)
{
/* At the moment the host can't work simultaneously with BR
<http://androidxref.com/4.3_r2.1/s?path=BR/>/EDR
<http://androidxref.com/4.3_r2.1/s?path=BR/EDR> and LE */
btsnd_hcic_ble_write_host_supported
<http://androidxref.com/4.3_r2.1/s?defs=btsnd_hcic_ble_write_host_supported&project=external>(BTM_BLE_HOST_SUPPORT
<http://androidxref.com/4.3_r2.1/s?defs=BTM_BLE_HOST_SUPPORT&project=external>,
0);
}
*else*
{
btsnd_hcic_ble_write_host_supported
<http://androidxref.com/4.3_r2.1/s?defs=btsnd_hcic_ble_write_host_supported&project=external>(BTM_BLE_HOST_SUPPORT
<http://androidxref.com/4.3_r2.1/s?defs=BTM_BLE_HOST_SUPPORT&project=external>,
0);
}
*return*;
}
#*endif*
* ...*
*}*
*
*
btsnd_hcic_ble_write_host_supported() send the command
*HCI_WRITE_LE_HOST_SUPPORTED*, btm_write_le_host_supported_complete() received
the status *HCI_ERR_UNSUPPORTED_VALUE*.
So when I started LE Scan, BTM_BleObserve() returned failed status
*BTM_ILLEGAL_VALUE*.
/*******************************************************************************
**
** Function BTM_BleObserve
**
** Description This procedure keep the device listening for advertising
** events from a broadcast device.
**
** Parameters start: start or stop observe.
** white_list: use white list in observer mode or not.
**
** Returns void
**
*******************************************************************************/tBTM_STATUS
<http://androidxref.com/4.3_r2.1/s?defs=tBTM_STATUS&project=external>
BTM_BleObserve
<http://androidxref.com/4.3_r2.1/s?refs=BTM_BleObserve&project=external>(BOOLEAN
<http://androidxref.com/4.3_r2.1/s?defs=BOOLEAN&project=external> start
<http://androidxref.com/4.3_r2.1/s?refs=start&project=external>, UINT8
<http://androidxref.com/4.3_r2.1/s?defs=UINT8&project=external> duration
<http://androidxref.com/4.3_r2.1/s?refs=duration&project=external>,
tBTM_INQ_RESULTS_CB
<http://androidxref.com/4.3_r2.1/s?defs=tBTM_INQ_RESULTS_CB&project=external>
*p_results_cb
<http://androidxref.com/4.3_r2.1/xref/external/bluetooth/bluedroid/stack/btm/btm_ble_gap.c#p_results_cb>,
tBTM_CMPL_CB
<http://androidxref.com/4.3_r2.1/s?defs=tBTM_CMPL_CB&project=external>
*p_cmpl_cb
<http://androidxref.com/4.3_r2.1/xref/external/bluetooth/bluedroid/stack/btm/btm_ble_gap.c#p_cmpl_cb>)
{
tBTM_BLE_INQ_CB
<http://androidxref.com/4.3_r2.1/s?defs=tBTM_BLE_INQ_CB&project=external>
*p_inq <http://androidxref.com/4.3_r2.1/s?refs=p_inq&project=external> =
&btm_cb
<http://androidxref.com/4.3_r2.1/s?defs=btm_cb&project=external>.ble_ctr_cb
<http://androidxref.com/4.3_r2.1/s?defs=ble_ctr_cb&project=external>.inq_var
<http://androidxref.com/4.3_r2.1/s?defs=inq_var&project=external>;
tBTM_STATUS
<http://androidxref.com/4.3_r2.1/s?defs=tBTM_STATUS&project=external>
status <http://androidxref.com/4.3_r2.1/s?refs=status&project=external> =
BTM_NO_RESOURCES
<http://androidxref.com/4.3_r2.1/s?defs=BTM_NO_RESOURCES&project=external>;
BTM_TRACE_EVENT0
<http://androidxref.com/4.3_r2.1/s?defs=BTM_TRACE_EVENT0&project=external>
("BTM_BleObserve ");
*if* (!HCI_LE_HOST_SUPPORTED
<http://androidxref.com/4.3_r2.1/s?defs=HCI_LE_HOST_SUPPORTED&project=external>(btm_cb
<http://androidxref.com/4.3_r2.1/s?defs=btm_cb&project=external>.devcb
<http://androidxref.com/4.3_r2.1/s?defs=devcb&project=external>.local_lmp_features
<http://androidxref.com/4.3_r2.1/s?defs=local_lmp_features&project=external>[HCI_EXT_FEATURES_PAGE_1
<http://androidxref.com/4.3_r2.1/s?defs=HCI_EXT_FEATURES_PAGE_1&project=external>]))
*return* BTM_ILLEGAL_VALUE
<http://androidxref.com/4.3_r2.1/s?defs=BTM_ILLEGAL_VALUE&project=external>;
...
}
Is there anyone to enable BLE successfully in Android 4.3 on Pandaboard ES? Is
it a firmware issue?
--
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
---
You received this message because you are subscribed to the Google Groups
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.