English
设备树变更集¶
设备树变更集(Devicetree changeset)是一种允许在活动树中应用更改的方法,其方式是要么应用全套更改,要么什么都不应用。如果应用变更集的过程中途发生错误,树将回滚到之前的状态。变更集在应用后也可以被移除。
当应用变更集时,所有的更改会在触发 OF_RECONFIG 通知器之前一次性应用到树中。这样做是为了让接收者在收到通知时看到树的完整且一致的状态。
变更集的顺序如下。
of_changeset_init()- 初始化一个变更集一系列 DT 树变更调用,
of_changeset_attach_node()、of_changeset_detach_node()、of_changeset_add_property()、of_changeset_remove_property、of_changeset_update_property(),用于准备一组更改。此时不会对活动树进行任何更改。所有的更改操作都被记录在 of_changeset 的“entries”列表中。of_changeset_apply()- 将更改应用到树中。要么应用整个变更集,或者如果发生错误,树将恢复到之前的状态。核心部分通过加锁确保正确的序列化。如果需要,可以使用未加锁版本 __of_changeset_apply。
如果需要移除一个已成功应用的变更集,可以通过 of_changeset_revert() 来完成。