Bluetooth: ISO: Don't reject BT_ISO_QOS if parameters are unset

Consider certain values (0x00) as unset and load proper default if
an application has not set them properly.

Fixes: 0fe8c8d0 ("Bluetooth: Split bt_iso_qos into dedicated structures")
Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
parent 19fa4f2a
...@@ -1451,8 +1451,8 @@ static bool check_ucast_qos(struct bt_iso_qos *qos) ...@@ -1451,8 +1451,8 @@ static bool check_ucast_qos(struct bt_iso_qos *qos)
static bool check_bcast_qos(struct bt_iso_qos *qos) static bool check_bcast_qos(struct bt_iso_qos *qos)
{ {
if (qos->bcast.sync_factor == 0x00) if (!qos->bcast.sync_factor)
return false; qos->bcast.sync_factor = 0x01;
if (qos->bcast.packing > 0x01) if (qos->bcast.packing > 0x01)
return false; return false;
...@@ -1475,6 +1475,9 @@ static bool check_bcast_qos(struct bt_iso_qos *qos) ...@@ -1475,6 +1475,9 @@ static bool check_bcast_qos(struct bt_iso_qos *qos)
if (qos->bcast.skip > 0x01f3) if (qos->bcast.skip > 0x01f3)
return false; return false;
if (!qos->bcast.sync_timeout)
qos->bcast.sync_timeout = BT_ISO_SYNC_TIMEOUT;
if (qos->bcast.sync_timeout < 0x000a || qos->bcast.sync_timeout > 0x4000) if (qos->bcast.sync_timeout < 0x000a || qos->bcast.sync_timeout > 0x4000)
return false; return false;
...@@ -1484,6 +1487,9 @@ static bool check_bcast_qos(struct bt_iso_qos *qos) ...@@ -1484,6 +1487,9 @@ static bool check_bcast_qos(struct bt_iso_qos *qos)
if (qos->bcast.mse > 0x1f) if (qos->bcast.mse > 0x1f)
return false; return false;
if (!qos->bcast.timeout)
qos->bcast.sync_timeout = BT_ISO_SYNC_TIMEOUT;
if (qos->bcast.timeout < 0x000a || qos->bcast.timeout > 0x4000) if (qos->bcast.timeout < 0x000a || qos->bcast.timeout > 0x4000)
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment