Lines Matching defs:ddev

250 dfl_match_one_device(const struct dfl_device_id *id, struct dfl_device *ddev)
252 if (id->type == ddev->type && id->feature_id == ddev->feature_id)
260 struct dfl_device *ddev = to_dfl_dev(dev);
267 if (dfl_match_one_device(id_entry, ddev)) {
268 ddev->id_entry = id_entry;
281 struct dfl_device *ddev = to_dfl_dev(dev);
283 return ddrv->probe(ddev);
289 struct dfl_device *ddev = to_dfl_dev(dev);
292 ddrv->remove(ddev);
299 struct dfl_device *ddev = to_dfl_dev(dev);
303 ddev->type, ddev->feature_id);
309 struct dfl_device *ddev = to_dfl_dev(dev);
311 return sprintf(buf, "0x%x\n", ddev->type);
318 struct dfl_device *ddev = to_dfl_dev(dev);
320 return sprintf(buf, "0x%x\n", ddev->feature_id);
342 struct dfl_device *ddev = to_dfl_dev(dev);
344 if (ddev->mmio_res.parent)
345 release_resource(&ddev->mmio_res);
347 ida_simple_remove(&dfl_device_ida, ddev->id);
348 kfree(ddev->irqs);
349 kfree(ddev);
358 struct dfl_device *ddev;
361 ddev = kzalloc(sizeof(*ddev), GFP_KERNEL);
362 if (!ddev)
368 kfree(ddev);
373 device_initialize(&ddev->dev);
374 ddev->dev.parent = &pdev->dev;
375 ddev->dev.bus = &dfl_bus_type;
376 ddev->dev.release = release_dfl_dev;
377 ddev->id = id;
378 ret = dev_set_name(&ddev->dev, "dfl_dev.%d", id);
382 ddev->type = feature_dev_id_type(pdev);
383 ddev->feature_id = feature->id;
384 ddev->cdev = pdata->dfl_cdev;
388 ddev->mmio_res.flags = IORESOURCE_MEM;
389 ddev->mmio_res.start = parent_res->start;
390 ddev->mmio_res.end = parent_res->end;
391 ddev->mmio_res.name = dev_name(&ddev->dev);
392 ret = insert_resource(parent_res, &ddev->mmio_res);
395 dev_name(&ddev->dev), &ddev->mmio_res);
401 ddev->irqs = kcalloc(feature->nr_irqs,
402 sizeof(*ddev->irqs), GFP_KERNEL);
403 if (!ddev->irqs) {
409 ddev->irqs[i] = feature->irq_ctx[i].irq;
411 ddev->num_irqs = feature->nr_irqs;
414 ret = device_add(&ddev->dev);
418 dev_dbg(&pdev->dev, "add dfl_dev: %s\n", dev_name(&ddev->dev));
419 return ddev;
423 put_device(&ddev->dev);
432 if (feature->ddev) {
433 device_unregister(&feature->ddev->dev);
434 feature->ddev = NULL;
442 struct dfl_device *ddev;
449 if (feature->ddev) {
454 ddev = dfl_dev_add(pdata, feature);
455 if (IS_ERR(ddev)) {
456 ret = PTR_ERR(ddev);
460 feature->ddev = ddev;