Lines Matching refs:component

39 struct component;
46 struct component *component; member
65 struct component { struct
98 struct component *component = match->compare[i].component; in component_devices_show() local
101 component ? dev_name(component->dev) : "(unknown)", in component_devices_show()
102 component ? (component->bound ? "bound" : "not bound") : "not registered"); in component_devices_show()
153 static struct component *find_component(struct aggregate_device *adev, in find_component()
156 struct component *c; in find_component()
185 struct component *c; in find_components()
189 if (match->compare[i].component) in find_components()
203 match->compare[i].component = c; in find_components()
210 static void remove_component(struct aggregate_device *adev, struct component *c) in remove_component()
216 if (adev->match->compare[i].component == c) in remove_component()
217 adev->match->compare[i].component = NULL; in remove_component()
228 struct component *component) in try_to_bring_up_aggregate_device() argument
239 if (component && component->adev != adev) { in try_to_bring_up_aggregate_device()
241 dev_name(component->dev)); in try_to_bring_up_aggregate_device()
262 static int try_to_bring_up_masters(struct component *component) in try_to_bring_up_masters() argument
269 ret = try_to_bring_up_aggregate_device(adev, component); in try_to_bring_up_masters()
421 match->compare[match->num].component = NULL; in __component_match_add()
491 struct component *c = match->compare[i].component; in free_aggregate_device()
572 static void component_unbind(struct component *component, in component_unbind() argument
575 WARN_ON(!component->bound); in component_unbind()
577 if (component->ops && component->ops->unbind) in component_unbind()
578 component->ops->unbind(component->dev, adev->parent, data); in component_unbind()
579 component->bound = false; in component_unbind()
582 devres_release_group(component->dev, component); in component_unbind()
597 struct component *c; in component_unbind_all()
609 c = adev->match->compare[i].component; in component_unbind_all()
615 static int component_bind(struct component *component, struct aggregate_device *adev, in component_bind() argument
633 if (!devres_open_group(component->dev, component, GFP_KERNEL)) { in component_bind()
639 dev_name(component->dev), component->ops); in component_bind()
641 ret = component->ops->bind(component->dev, adev->parent, data); in component_bind()
643 component->bound = true; in component_bind()
651 devres_close_group(component->dev, NULL); in component_bind()
655 dev_name(component->dev), component->ops); in component_bind()
657 devres_release_group(component->dev, NULL); in component_bind()
662 dev_name(component->dev), component->ops, ret); in component_bind()
680 struct component *c; in component_bind_all()
693 c = adev->match->compare[i].component; in component_bind_all()
702 c = adev->match->compare[i - 1].component; in component_bind_all()
714 struct component *component; in __component_add() local
717 component = kzalloc(sizeof(*component), GFP_KERNEL); in __component_add()
718 if (!component) in __component_add()
721 component->ops = ops; in __component_add()
722 component->dev = dev; in __component_add()
723 component->subcomponent = subcomponent; in __component_add()
728 list_add_tail(&component->node, &component_list); in __component_add()
730 ret = try_to_bring_up_masters(component); in __component_add()
732 if (component->adev) in __component_add()
733 remove_component(component->adev, component); in __component_add()
734 list_del(&component->node); in __component_add()
736 kfree(component); in __component_add()
804 struct component *c, *component = NULL; in component_del() local
810 component = c; in component_del()
814 if (component && component->adev) { in component_del()
815 take_down_aggregate_device(component->adev); in component_del()
816 remove_component(component->adev, component); in component_del()
821 WARN_ON(!component); in component_del()
822 kfree(component); in component_del()