Blame view

Documentation/devicetree/changesets.txt 1.38 KB
201c910bd   Pantelis Antoniou   of: Transactional...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  A DT changeset is a method which allows one to apply changes
  in the live tree in such a way that either the full set of changes
  will be applied, or none of them will be. If an error occurs partway
  through applying the changeset, then the tree will be rolled back to the
  previous state. A changeset can also be removed after it has been
  applied.
  
  When a changeset is applied, all of the changes get applied to the tree
  at once before emitting OF_RECONFIG notifiers. This is so that the
  receiver sees a complete and consistent state of the tree when it
  receives the notifier.
  
  The sequence of a changeset is as follows.
  
  1. of_changeset_init() - initializes a changeset
  
  2. A number of DT tree change calls, of_changeset_attach_node(),
  of_changeset_detach_node(), of_changeset_add_property(),
  of_changeset_remove_property, of_changeset_update_property() to prepare
  a set of changes. No changes to the active tree are made at this point.
  All the change operations are recorded in the of_changeset 'entries'
  list.
63b77d6d5   Wolfram Sang   Documentation: de...
23
  3. of_changeset_apply() - Apply the changes to the tree. Either the
201c910bd   Pantelis Antoniou   of: Transactional...
24
  entire changeset will get applied, or if there is an error the tree will
63b77d6d5   Wolfram Sang   Documentation: de...
25
26
27
  be restored to the previous state. The core ensures proper serialization
  through locking. An unlocked version __of_changeset_apply is available,
  if needed.
201c910bd   Pantelis Antoniou   of: Transactional...
28
29
  
  If a successfully applied changeset needs to be removed, it can be done
63b77d6d5   Wolfram Sang   Documentation: de...
30
  with of_changeset_revert().