Lines Matching refs:ddev
240 dfl_match_one_device(const struct dfl_device_id *id, struct dfl_device *ddev) in dfl_match_one_device() argument
242 if (id->type == ddev->type && id->feature_id == ddev->feature_id) in dfl_match_one_device()
250 struct dfl_device *ddev = to_dfl_dev(dev); in dfl_bus_match() local
257 if (dfl_match_one_device(id_entry, ddev)) { in dfl_bus_match()
258 ddev->id_entry = id_entry; in dfl_bus_match()
271 struct dfl_device *ddev = to_dfl_dev(dev); in dfl_bus_probe() local
273 return ddrv->probe(ddev); in dfl_bus_probe()
279 struct dfl_device *ddev = to_dfl_dev(dev); in dfl_bus_remove() local
282 ddrv->remove(ddev); in dfl_bus_remove()
287 const struct dfl_device *ddev = to_dfl_dev(dev); in dfl_bus_uevent() local
290 ddev->type, ddev->feature_id); in dfl_bus_uevent()
296 struct dfl_device *ddev = to_dfl_dev(dev); in type_show() local
298 return sprintf(buf, "0x%x\n", ddev->type); in type_show()
305 struct dfl_device *ddev = to_dfl_dev(dev); in feature_id_show() local
307 return sprintf(buf, "0x%x\n", ddev->feature_id); in feature_id_show()
329 struct dfl_device *ddev = to_dfl_dev(dev); in release_dfl_dev() local
331 if (ddev->mmio_res.parent) in release_dfl_dev()
332 release_resource(&ddev->mmio_res); in release_dfl_dev()
334 kfree(ddev->params); in release_dfl_dev()
336 ida_free(&dfl_device_ida, ddev->id); in release_dfl_dev()
337 kfree(ddev->irqs); in release_dfl_dev()
338 kfree(ddev); in release_dfl_dev()
347 struct dfl_device *ddev; in dfl_dev_add() local
350 ddev = kzalloc_obj(*ddev); in dfl_dev_add()
351 if (!ddev) in dfl_dev_add()
357 kfree(ddev); in dfl_dev_add()
362 device_initialize(&ddev->dev); in dfl_dev_add()
363 ddev->dev.parent = &pdev->dev; in dfl_dev_add()
364 ddev->dev.bus = &dfl_bus_type; in dfl_dev_add()
365 ddev->dev.release = release_dfl_dev; in dfl_dev_add()
366 ddev->id = id; in dfl_dev_add()
367 ret = dev_set_name(&ddev->dev, "dfl_dev.%d", id); in dfl_dev_add()
371 ddev->type = fdata->type; in dfl_dev_add()
372 ddev->feature_id = feature->id; in dfl_dev_add()
373 ddev->revision = feature->revision; in dfl_dev_add()
374 ddev->dfh_version = feature->dfh_version; in dfl_dev_add()
375 ddev->cdev = fdata->dfl_cdev; in dfl_dev_add()
377 ddev->params = kmemdup(feature->params, feature->param_size, GFP_KERNEL); in dfl_dev_add()
378 if (!ddev->params) { in dfl_dev_add()
382 ddev->param_size = feature->param_size; in dfl_dev_add()
387 ddev->mmio_res.flags = IORESOURCE_MEM; in dfl_dev_add()
388 ddev->mmio_res.start = parent_res->start; in dfl_dev_add()
389 ddev->mmio_res.end = parent_res->end; in dfl_dev_add()
390 ddev->mmio_res.name = dev_name(&ddev->dev); in dfl_dev_add()
391 ret = insert_resource(parent_res, &ddev->mmio_res); in dfl_dev_add()
394 dev_name(&ddev->dev), &ddev->mmio_res); in dfl_dev_add()
400 ddev->irqs = kzalloc_objs(*ddev->irqs, feature->nr_irqs); in dfl_dev_add()
401 if (!ddev->irqs) { in dfl_dev_add()
407 ddev->irqs[i] = feature->irq_ctx[i].irq; in dfl_dev_add()
409 ddev->num_irqs = feature->nr_irqs; in dfl_dev_add()
412 ret = device_add(&ddev->dev); in dfl_dev_add()
416 dev_dbg(&pdev->dev, "add dfl_dev: %s\n", dev_name(&ddev->dev)); in dfl_dev_add()
417 return ddev; in dfl_dev_add()
421 put_device(&ddev->dev); in dfl_dev_add()
430 if (feature->ddev) { in dfl_devs_remove()
431 device_unregister(&feature->ddev->dev); in dfl_devs_remove()
432 feature->ddev = NULL; in dfl_devs_remove()
440 struct dfl_device *ddev; in dfl_devs_add() local
447 if (feature->ddev) { in dfl_devs_add()
452 ddev = dfl_dev_add(fdata, feature); in dfl_devs_add()
453 if (IS_ERR(ddev)) { in dfl_devs_add()
454 ret = PTR_ERR(ddev); in dfl_devs_add()
458 feature->ddev = ddev; in dfl_devs_add()