diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2021-01-19 13:51:12 -0800 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2021-01-19 14:06:45 -0800 |
commit | 83c8c1e9283d969cd606b04d70f219431408bb76 (patch) | |
tree | f621d92882a23454019dafff01658101e8beb1ec /emulator | |
parent | f1839c569813e902d197ce14293fef880177e45b (diff) |
btdev: Fix using CIG settings from the peripheral not the central
SetCIGParameters is only used by the central while accept/reject CIS is
performed on in the peripheral so le_cis_estabilished shall use the
parameters set in the conn->link->dev.
Diffstat (limited to 'emulator')
-rw-r--r-- | emulator/btdev.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/emulator/btdev.c b/emulator/btdev.c index 73c0db3e41..2af349e404 100644 --- a/emulator/btdev.c +++ b/emulator/btdev.c @@ -4343,26 +4343,28 @@ static void le_cis_estabilished(struct btdev *dev, struct btdev_conn *conn, evt.status = status; if (!evt.status) { + struct btdev *remote = conn->link->dev; + evt.conn_handle = cpu_to_le16(conn->handle); /* TODO: Figure out if these values makes sense */ - memcpy(evt.cig_sync_delay, dev->le_cig.params.m_interval, - sizeof(dev->le_cig.params.m_interval)); - memcpy(evt.cis_sync_delay, dev->le_cig.params.s_interval, - sizeof(dev->le_cig.params.s_interval)); - memcpy(evt.m_latency, &dev->le_cig.params.m_latency, - sizeof(dev->le_cig.params.m_latency)); - memcpy(evt.s_latency, &dev->le_cig.params.s_latency, - sizeof(dev->le_cig.params.s_latency)); - evt.m_phy = dev->le_cig.cis.m_phy; - evt.s_phy = dev->le_cig.cis.s_phy; + memcpy(evt.cig_sync_delay, remote->le_cig.params.m_interval, + sizeof(remote->le_cig.params.m_interval)); + memcpy(evt.cis_sync_delay, remote->le_cig.params.s_interval, + sizeof(remote->le_cig.params.s_interval)); + memcpy(evt.m_latency, &remote->le_cig.params.m_latency, + sizeof(remote->le_cig.params.m_latency)); + memcpy(evt.s_latency, &remote->le_cig.params.s_latency, + sizeof(remote->le_cig.params.s_latency)); + evt.m_phy = remote->le_cig.cis.m_phy; + evt.s_phy = remote->le_cig.cis.s_phy; evt.nse = 0x01; evt.m_bn = 0x01; evt.s_bn = 0x01; evt.m_ft = 0x01; evt.s_ft = 0x01; - evt.m_mtu = dev->le_cig.cis.m_sdu; - evt.s_mtu = dev->le_cig.cis.s_sdu; - evt.interval = dev->le_cig.params.m_latency; + evt.m_mtu = remote->le_cig.cis.m_sdu; + evt.s_mtu = remote->le_cig.cis.s_sdu; + evt.interval = remote->le_cig.params.m_latency; } le_meta_event(dev, BT_HCI_EVT_LE_CIS_ESTABLISHED, &evt, sizeof(evt)); |