Lines Matching refs:tree
79 * Widget tree sysfs
81 * This is a tree showing the attributes of each widget. It appears like
322 struct hdac_widget_tree *tree = codec->widgets;
325 if (!tree)
327 free_widget_node(tree->afg, &widget_afg_group);
328 if (tree->nodes) {
329 for (p = tree->nodes; *p; p++)
331 kfree(tree->nodes);
333 kobject_put(tree->root);
334 kfree(tree);
365 struct hdac_widget_tree *tree;
369 tree = codec->widgets = kzalloc(sizeof(*tree), GFP_KERNEL);
370 if (!tree)
373 tree->root = kobject_create_and_add("widgets", &codec->dev.kobj);
374 if (!tree->root)
377 tree->nodes = kcalloc(codec->num_nodes + 1, sizeof(*tree->nodes),
379 if (!tree->nodes)
383 err = add_widget_node(tree->root, nid, &widget_node_group,
384 &tree->nodes[i]);
390 err = add_widget_node(tree->root, codec->afg,
391 &widget_afg_group, &tree->afg);
396 kobject_uevent(tree->root, KOBJ_CHANGE);
427 struct hdac_widget_tree *tree;
435 tree = kmemdup(codec->widgets, sizeof(*tree), GFP_KERNEL);
436 if (!tree)
439 tree->nodes = kcalloc(num_nodes + 1, sizeof(*tree->nodes), GFP_KERNEL);
440 if (!tree->nodes) {
441 kfree(tree);
455 add_widget_node(tree->root, nid, &widget_node_group,
456 &tree->nodes[i]);
458 tree->nodes[i] =
462 /* replace with the new tree */
465 codec->widgets = tree;
467 kobject_uevent(tree->root, KOBJ_CHANGE);