Lines Matching refs:ce

519 static void __of_changeset_entry_destroy(struct of_changeset_entry *ce)
521 if (ce->action == OF_RECONFIG_ATTACH_NODE &&
522 of_node_check_flag(ce->np, OF_OVERLAY)) {
523 if (kref_read(&ce->np->kobj.kref) > 1) {
525 kref_read(&ce->np->kobj.kref), ce->np);
527 of_node_set_flag(ce->np, OF_OVERLAY_FREE_CSET);
531 of_node_put(ce->np);
532 list_del(&ce->node);
533 kfree(ce);
536 static void __of_changeset_entry_invert(struct of_changeset_entry *ce,
539 memcpy(rce, ce, sizeof(*rce));
541 switch (ce->action) {
555 rce->old_prop = ce->prop;
556 rce->prop = ce->old_prop;
560 rce->prop = ce->prop;
566 static int __of_changeset_entry_notify(struct of_changeset_entry *ce,
574 __of_changeset_entry_invert(ce, &ce_inverted);
575 ce = &ce_inverted;
578 switch (ce->action) {
582 rd.dn = ce->np;
583 ret = of_reconfig_notify(ce->action, &rd);
588 ret = of_property_notify(ce->action, ce->np, ce->prop, ce->old_prop);
592 (int)ce->action);
597 pr_err("changeset notifier error @%pOF\n", ce->np);
601 static int __of_changeset_entry_apply(struct of_changeset_entry *ce)
605 of_changeset_action_debug("apply: ", ce->action, ce->np, ce->prop);
607 switch (ce->action) {
609 __of_attach_node(ce->np);
612 __of_detach_node(ce->np);
615 ret = __of_add_property(ce->np, ce->prop);
618 ret = __of_remove_property(ce->np, ce->prop);
622 ret = __of_update_property(ce->np, ce->prop, &ce->old_prop);
629 of_changeset_action_err("apply failed: ", ce->action, ce->np, ce->prop);
636 static inline int __of_changeset_entry_revert(struct of_changeset_entry *ce)
640 __of_changeset_entry_invert(ce, &ce_inverted);
668 struct of_changeset_entry *ce, *cen;
670 list_for_each_entry_safe_reverse(ce, cen, &ocs->entries, node)
671 __of_changeset_entry_destroy(ce);
687 struct of_changeset_entry *ce;
691 list_for_each_entry(ce, &ocs->entries, node) {
692 ret = __of_changeset_entry_apply(ce);
695 list_for_each_entry_continue_reverse(ce, &ocs->entries,
697 ret_tmp = __of_changeset_entry_revert(ce);
716 struct of_changeset_entry *ce;
723 list_for_each_entry(ce, &ocs->entries, node) {
724 ret_tmp = __of_changeset_entry_notify(ce, 0);
791 struct of_changeset_entry *ce;
795 list_for_each_entry_reverse(ce, &ocs->entries, node) {
796 ret = __of_changeset_entry_revert(ce);
799 list_for_each_entry_continue(ce, &ocs->entries, node) {
800 ret_tmp = __of_changeset_entry_apply(ce);
817 struct of_changeset_entry *ce;
824 list_for_each_entry_reverse(ce, &ocs->entries, node) {
825 ret_tmp = __of_changeset_entry_notify(ce, 1);
892 struct of_changeset_entry *ce;
897 ce = kzalloc(sizeof(*ce), GFP_KERNEL);
898 if (!ce)
902 ce->action = action;
903 ce->np = of_node_get(np);
904 ce->prop = prop;
907 list_add_tail(&ce->node, &ocs->entries);