Bluetooth: controller: split: Fix endianness in filling DID

Handle endianness when filling the DID value in advertising
PDU extended header.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2020-05-12 18:27:16 +05:30 committed by Carles Cufí
commit 5d13bf4e98
2 changed files with 8 additions and 7 deletions

View file

@ -376,7 +376,7 @@ uint8_t ll_adv_aux_ad_data_set(uint8_t handle, uint8_t op, uint8_t frag_pref, ui
memcpy(ps, _ps, sizeof(struct ext_adv_adi)); memcpy(ps, _ps, sizeof(struct ext_adv_adi));
_adi = (void *)_pp; _adi = (void *)_pp;
did = _adi->did; did = sys_le16_to_cpu(_adi->did);
} else { } else {
ap->sid = adv->sid; ap->sid = adv->sid;
as->sid = adv->sid; as->sid = adv->sid;
@ -387,8 +387,8 @@ uint8_t ll_adv_aux_ad_data_set(uint8_t handle, uint8_t op, uint8_t frag_pref, ui
did++; did++;
} }
ap->did = did; ap->did = sys_cpu_to_le16(did);
as->did = did; as->did = sys_cpu_to_le16(did);
} }
/* No CTEInfo field in primary channel PDU */ /* No CTEInfo field in primary channel PDU */

View file

@ -5,6 +5,7 @@
*/ */
#include <zephyr/types.h> #include <zephyr/types.h>
#include <sys/byteorder.h>
#include <bluetooth/hci.h> #include <bluetooth/hci.h>
#include "hal/ticker.h" #include "hal/ticker.h"
@ -279,7 +280,7 @@ uint8_t ll_adv_sync_param_set(uint8_t handle, uint16_t interval, uint16_t flags)
si = (void *)ps; si = (void *)ps;
si->offs = 0; /* NOTE: Filled by secondary prepare */ si->offs = 0; /* NOTE: Filled by secondary prepare */
si->offs_units = 0; si->offs_units = 0;
si->interval = interval; si->interval = sys_cpu_to_le16(interval);
memcpy(si->sca_chm, lll_sync->data_chan_map, memcpy(si->sca_chm, lll_sync->data_chan_map,
sizeof(si->sca_chm)); sizeof(si->sca_chm));
memcpy(&si->aa, lll_sync->access_addr, sizeof(si->aa)); memcpy(&si->aa, lll_sync->access_addr, sizeof(si->aa));
@ -346,7 +347,7 @@ uint8_t ll_adv_sync_param_set(uint8_t handle, uint16_t interval, uint16_t flags)
memcpy(ps, _ps, sizeof(struct ext_adv_adi)); memcpy(ps, _ps, sizeof(struct ext_adv_adi));
_adi = (void *)_pp; _adi = (void *)_pp;
did = _adi->did; did = sys_le16_to_cpu(_adi->did);
} else { } else {
ap->sid = adv->sid; ap->sid = adv->sid;
as->sid = adv->sid; as->sid = adv->sid;
@ -354,8 +355,8 @@ uint8_t ll_adv_sync_param_set(uint8_t handle, uint16_t interval, uint16_t flags)
did++; did++;
ap->did = did; ap->did = sys_cpu_to_le16(did);
as->did = did; as->did = sys_cpu_to_le16(did);
} }
/* No CTEInfo field in primary channel PDU */ /* No CTEInfo field in primary channel PDU */