BLuetooth: controller: hci: fix wrong sync handle in IQ samples report
There were no assignment to iq_report->hdr.handle in the code hence all IQ samples reports had the same handle value which was zero. Since the handle is related with ll_sync_set pointer the handle value may not be set in LLL. The best place to set handle value is thread context where bt_hci_evt_le_connectionless_iq_report is prepared. Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
This commit is contained in:
parent
131f04c32a
commit
a9ab805983
1 changed files with 8 additions and 2 deletions
|
@ -47,6 +47,7 @@
|
|||
#include "ll_sw/ull_adv_types.h"
|
||||
#include "ll_sw/ull_scan_types.h"
|
||||
#include "ll_sw/ull_sync_types.h"
|
||||
#include "ll_sw/ull_sync_internal.h"
|
||||
#include "ll_sw/ull_conn_types.h"
|
||||
#include "ll_sw/ull_conn_internal.h"
|
||||
#include "ll_sw/ull_conn_iso_types.h"
|
||||
|
@ -2685,7 +2686,7 @@ static void le_df_connectionless_iq_report(struct pdu_data *pdu_rx,
|
|||
{
|
||||
struct bt_hci_evt_le_connectionless_iq_report *sep;
|
||||
struct node_rx_iq_report *iq_report;
|
||||
|
||||
struct ll_sync_set *sync;
|
||||
struct lll_sync *lll;
|
||||
uint8_t samples_cnt;
|
||||
int16_t iq_tmp;
|
||||
|
@ -2723,7 +2724,12 @@ static void le_df_connectionless_iq_report(struct pdu_data *pdu_rx,
|
|||
|
||||
rssi = RSSI_DBM_TO_DECI_DBM(iq_report->hdr.rx_ftr.rssi);
|
||||
|
||||
sep->sync_handle = sys_cpu_to_le16(iq_report->hdr.handle);
|
||||
/* Get the sync handle corresponding to the LLL context passed in the
|
||||
* node rx footer field.
|
||||
*/
|
||||
sync = HDR_LLL2ULL(lll);
|
||||
|
||||
sep->sync_handle = sys_cpu_to_le16(ull_sync_handle_get(sync));
|
||||
sep->rssi = sys_cpu_to_le16(rssi);
|
||||
sep->rssi_ant_id = iq_report->rssi_ant_id;
|
||||
sep->cte_type = iq_report->cte_info.type;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue