Lines Matching refs:scmi_dev

23 scmi_dev_match_id(struct scmi_device *scmi_dev, struct scmi_driver *scmi_drv)  in scmi_dev_match_id()  argument
31 if (id->protocol_id == scmi_dev->protocol_id) { in scmi_dev_match_id()
34 else if (!strcmp(id->name, scmi_dev->name)) in scmi_dev_match_id()
44 struct scmi_device *scmi_dev = to_scmi_dev(dev); in scmi_dev_match() local
47 id = scmi_dev_match_id(scmi_dev, scmi_drv); in scmi_dev_match()
106 struct scmi_device *scmi_dev = to_scmi_dev(dev); in scmi_dev_probe() local
108 if (!scmi_dev->handle) in scmi_dev_probe()
111 return scmi_drv->probe(scmi_dev); in scmi_dev_probe()
117 struct scmi_device *scmi_dev = to_scmi_dev(dev); in scmi_dev_remove() local
120 scmi_drv->remove(scmi_dev); in scmi_dev_remove()
172 struct scmi_device *scmi_dev; in scmi_device_create() local
174 scmi_dev = kzalloc(sizeof(*scmi_dev), GFP_KERNEL); in scmi_device_create()
175 if (!scmi_dev) in scmi_device_create()
178 scmi_dev->name = kstrdup_const(name ?: "unknown", GFP_KERNEL); in scmi_device_create()
179 if (!scmi_dev->name) { in scmi_device_create()
180 kfree(scmi_dev); in scmi_device_create()
186 kfree_const(scmi_dev->name); in scmi_device_create()
187 kfree(scmi_dev); in scmi_device_create()
191 scmi_dev->id = id; in scmi_device_create()
192 scmi_dev->protocol_id = protocol; in scmi_device_create()
193 scmi_dev->dev.parent = parent; in scmi_device_create()
194 scmi_dev->dev.of_node = np; in scmi_device_create()
195 scmi_dev->dev.bus = &scmi_bus_type; in scmi_device_create()
196 scmi_dev->dev.release = scmi_device_release; in scmi_device_create()
197 dev_set_name(&scmi_dev->dev, "scmi_dev.%d", id); in scmi_device_create()
199 retval = device_register(&scmi_dev->dev); in scmi_device_create()
203 return scmi_dev; in scmi_device_create()
205 kfree_const(scmi_dev->name); in scmi_device_create()
206 put_device(&scmi_dev->dev); in scmi_device_create()
211 void scmi_device_destroy(struct scmi_device *scmi_dev) in scmi_device_destroy() argument
213 kfree_const(scmi_dev->name); in scmi_device_destroy()
214 scmi_handle_put(scmi_dev->handle); in scmi_device_destroy()
215 ida_simple_remove(&scmi_bus_id, scmi_dev->id); in scmi_device_destroy()
216 device_unregister(&scmi_dev->dev); in scmi_device_destroy()
219 void scmi_set_handle(struct scmi_device *scmi_dev) in scmi_set_handle() argument
221 scmi_dev->handle = scmi_handle_get(&scmi_dev->dev); in scmi_set_handle()
268 struct scmi_device *scmi_dev = to_scmi_dev(dev); in __scmi_devices_unregister() local
270 scmi_device_destroy(scmi_dev); in __scmi_devices_unregister()