Lines Matching refs:ce

518 static void __of_changeset_entry_destroy(struct of_changeset_entry *ce)  in __of_changeset_entry_destroy()  argument
520 if (ce->action == OF_RECONFIG_ATTACH_NODE && in __of_changeset_entry_destroy()
521 of_node_check_flag(ce->np, OF_OVERLAY)) { in __of_changeset_entry_destroy()
522 if (kref_read(&ce->np->kobj.kref) > 1) { in __of_changeset_entry_destroy()
524 kref_read(&ce->np->kobj.kref), ce->np); in __of_changeset_entry_destroy()
526 of_node_set_flag(ce->np, OF_OVERLAY_FREE_CSET); in __of_changeset_entry_destroy()
530 of_node_put(ce->np); in __of_changeset_entry_destroy()
531 list_del(&ce->node); in __of_changeset_entry_destroy()
532 kfree(ce); in __of_changeset_entry_destroy()
535 static void __of_changeset_entry_invert(struct of_changeset_entry *ce, in __of_changeset_entry_invert() argument
538 memcpy(rce, ce, sizeof(*rce)); in __of_changeset_entry_invert()
540 switch (ce->action) { in __of_changeset_entry_invert()
554 rce->old_prop = ce->prop; in __of_changeset_entry_invert()
555 rce->prop = ce->old_prop; in __of_changeset_entry_invert()
559 rce->prop = ce->prop; in __of_changeset_entry_invert()
565 static int __of_changeset_entry_notify(struct of_changeset_entry *ce, in __of_changeset_entry_notify() argument
573 __of_changeset_entry_invert(ce, &ce_inverted); in __of_changeset_entry_notify()
574 ce = &ce_inverted; in __of_changeset_entry_notify()
577 switch (ce->action) { in __of_changeset_entry_notify()
581 rd.dn = ce->np; in __of_changeset_entry_notify()
582 ret = of_reconfig_notify(ce->action, &rd); in __of_changeset_entry_notify()
587 ret = of_property_notify(ce->action, ce->np, ce->prop, ce->old_prop); in __of_changeset_entry_notify()
591 (int)ce->action); in __of_changeset_entry_notify()
596 pr_err("changeset notifier error @%pOF\n", ce->np); in __of_changeset_entry_notify()
600 static int __of_changeset_entry_apply(struct of_changeset_entry *ce) in __of_changeset_entry_apply() argument
604 of_changeset_action_debug("apply: ", ce->action, ce->np, ce->prop); in __of_changeset_entry_apply()
606 switch (ce->action) { in __of_changeset_entry_apply()
608 __of_attach_node(ce->np); in __of_changeset_entry_apply()
611 __of_detach_node(ce->np); in __of_changeset_entry_apply()
614 ret = __of_add_property(ce->np, ce->prop); in __of_changeset_entry_apply()
617 ret = __of_remove_property(ce->np, ce->prop); in __of_changeset_entry_apply()
621 ret = __of_update_property(ce->np, ce->prop, &ce->old_prop); in __of_changeset_entry_apply()
628 of_changeset_action_err("apply failed: ", ce->action, ce->np, ce->prop); in __of_changeset_entry_apply()
635 static inline int __of_changeset_entry_revert(struct of_changeset_entry *ce) in __of_changeset_entry_revert() argument
639 __of_changeset_entry_invert(ce, &ce_inverted); in __of_changeset_entry_revert()
667 struct of_changeset_entry *ce, *cen; in of_changeset_destroy() local
669 list_for_each_entry_safe_reverse(ce, cen, &ocs->entries, node) in of_changeset_destroy()
670 __of_changeset_entry_destroy(ce); in of_changeset_destroy()
686 struct of_changeset_entry *ce; in __of_changeset_apply_entries() local
690 list_for_each_entry(ce, &ocs->entries, node) { in __of_changeset_apply_entries()
691 ret = __of_changeset_entry_apply(ce); in __of_changeset_apply_entries()
694 list_for_each_entry_continue_reverse(ce, &ocs->entries, in __of_changeset_apply_entries()
696 ret_tmp = __of_changeset_entry_revert(ce); in __of_changeset_apply_entries()
715 struct of_changeset_entry *ce; in __of_changeset_apply_notify() local
722 list_for_each_entry(ce, &ocs->entries, node) { in __of_changeset_apply_notify()
723 ret_tmp = __of_changeset_entry_notify(ce, 0); in __of_changeset_apply_notify()
790 struct of_changeset_entry *ce; in __of_changeset_revert_entries() local
794 list_for_each_entry_reverse(ce, &ocs->entries, node) { in __of_changeset_revert_entries()
795 ret = __of_changeset_entry_revert(ce); in __of_changeset_revert_entries()
798 list_for_each_entry_continue(ce, &ocs->entries, node) { in __of_changeset_revert_entries()
799 ret_tmp = __of_changeset_entry_apply(ce); in __of_changeset_revert_entries()
816 struct of_changeset_entry *ce; in __of_changeset_revert_notify() local
823 list_for_each_entry_reverse(ce, &ocs->entries, node) { in __of_changeset_revert_notify()
824 ret_tmp = __of_changeset_entry_notify(ce, 1); in __of_changeset_revert_notify()
891 struct of_changeset_entry *ce; in of_changeset_action() local
896 ce = kzalloc(sizeof(*ce), GFP_KERNEL); in of_changeset_action()
897 if (!ce) in of_changeset_action()
901 ce->action = action; in of_changeset_action()
902 ce->np = of_node_get(np); in of_changeset_action()
903 ce->prop = prop; in of_changeset_action()
906 list_add_tail(&ce->node, &ocs->entries); in of_changeset_action()