Lines Matching refs:controller

21 	struct peci_controller *controller = to_peci_controller(dev);
23 mutex_destroy(&controller->bus_lock);
24 ida_free(&peci_controller_ida, controller->id);
25 kfree(controller);
32 int peci_controller_scan_devices(struct peci_controller *controller)
38 ret = peci_device_create(controller, addr);
49 struct peci_controller *controller;
55 controller = kzalloc(sizeof(*controller), GFP_KERNEL);
56 if (!controller)
62 controller->id = ret;
64 controller->ops = ops;
66 controller->dev.parent = dev;
67 controller->dev.bus = &peci_bus_type;
68 controller->dev.type = &peci_controller_type;
70 device_initialize(&controller->dev);
72 mutex_init(&controller->bus_lock);
74 return controller;
77 kfree(controller);
90 struct peci_controller *controller = _controller;
96 device_for_each_child_reverse(&controller->dev, NULL, unregister_child);
98 device_unregister(&controller->dev);
100 fwnode_handle_put(controller->dev.fwnode);
102 pm_runtime_disable(&controller->dev);
106 * devm_peci_controller_add() - add PECI controller
108 * @ops: pointer to controller specific methods
113 * Return: Pointer to the newly allocated controller or ERR_PTR() in case of failure.
118 struct peci_controller *controller;
121 controller = peci_controller_alloc(dev, ops);
122 if (IS_ERR(controller))
123 return controller;
125 ret = dev_set_name(&controller->dev, "peci-%d", controller->id);
129 pm_runtime_no_callbacks(&controller->dev);
130 pm_suspend_ignore_children(&controller->dev, true);
131 pm_runtime_enable(&controller->dev);
133 device_set_node(&controller->dev, fwnode_handle_get(dev_fwnode(dev)));
135 ret = device_add(&controller->dev);
139 ret = devm_add_action_or_reset(dev, unregister_controller, controller);
145 * controller itself.
147 peci_controller_scan_devices(controller);
149 return controller;
152 fwnode_handle_put(controller->dev.fwnode);
154 pm_runtime_disable(&controller->dev);
157 put_device(&controller->dev);