Bluetooth: Mesh: Restore default device configuration on reset

This commit fixes an issue where bt_mesh_reset() call just erases all
mesh flags set at the initialization instead of restoring them and
thus disabling some features until the board reboot.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
This commit is contained in:
Pavel Vasilyev 2021-06-23 16:27:35 +02:00 committed by Johan Hedberg
commit 6c9411656c
5 changed files with 7 additions and 6 deletions

View file

@ -250,7 +250,7 @@ bool bt_mesh_fixed_group_match(uint16_t addr)
}
}
void bt_mesh_cfg_init(void)
void bt_mesh_cfg_default_set(void)
{
bt_mesh.default_ttl = CONFIG_BT_MESH_DEFAULT_TTL;
bt_mesh.net_xmit =

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
void bt_mesh_cfg_init(void);
void bt_mesh_cfg_default_set(void);
void bt_mesh_cfg_pending_store(void);
bool bt_mesh_fixed_group_match(uint16_t addr);

View file

@ -2442,7 +2442,7 @@ static void mod_reset(struct bt_mesh_model *mod, struct bt_mesh_elem *elem,
}
}
void bt_mesh_cfg_reset(void)
void bt_mesh_model_reset(void)
{
bt_mesh_model_foreach(mod_reset, NULL);
}

View file

@ -112,7 +112,7 @@
#define STATUS_UNSPECIFIED 0x10
#define STATUS_INVALID_BINDING 0x11
void bt_mesh_cfg_reset(void);
void bt_mesh_model_reset(void);
void bt_mesh_attention(struct bt_mesh_model *model, uint8_t time);

View file

@ -174,7 +174,8 @@ void bt_mesh_reset(void)
*/
(void)k_work_cancel_delayable(&bt_mesh.ivu_timer);
bt_mesh_cfg_reset();
bt_mesh_model_reset();
bt_mesh_cfg_default_set();
bt_mesh_trans_reset();
bt_mesh_app_keys_reset();
bt_mesh_net_keys_reset();
@ -331,7 +332,7 @@ int bt_mesh_init(const struct bt_mesh_prov *prov,
}
}
bt_mesh_cfg_init();
bt_mesh_cfg_default_set();
bt_mesh_net_init();
bt_mesh_trans_init();
bt_mesh_hb_init();