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));
_adi = (void *)_pp;
did = _adi->did;
did = sys_le16_to_cpu(_adi->did);
} else {
ap->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++;
}
ap->did = did;
as->did = did;
ap->did = sys_cpu_to_le16(did);
as->did = sys_cpu_to_le16(did);
}
/* No CTEInfo field in primary channel PDU */

View file

@ -5,6 +5,7 @@
*/
#include <zephyr/types.h>
#include <sys/byteorder.h>
#include <bluetooth/hci.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->offs = 0; /* NOTE: Filled by secondary prepare */
si->offs_units = 0;
si->interval = interval;
si->interval = sys_cpu_to_le16(interval);
memcpy(si->sca_chm, lll_sync->data_chan_map,
sizeof(si->sca_chm));
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));
_adi = (void *)_pp;
did = _adi->did;
did = sys_le16_to_cpu(_adi->did);
} else {
ap->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++;
ap->did = did;
as->did = did;
ap->did = sys_cpu_to_le16(did);
as->did = sys_cpu_to_le16(did);
}
/* No CTEInfo field in primary channel PDU */