Lines Matching defs:drv

515 static int cx8802_request_acquire(struct cx8802_driver *drv)
517 struct cx88_core *core = drv->core;
522 core->active_type_id != drv->type_id)
525 if (drv->type_id == CX88_MPEG_DVB) {
540 if (drv->advise_acquire) {
543 core->active_type_id = drv->type_id;
544 drv->advise_acquire(drv);
554 static int cx8802_request_release(struct cx8802_driver *drv)
556 struct cx88_core *core = drv->core;
558 if (drv->advise_release && --core->active_ref == 0) {
559 if (drv->type_id == CX88_MPEG_DVB) {
567 drv->advise_release(drv);
575 static int cx8802_check_driver(struct cx8802_driver *drv)
577 if (!drv)
580 if ((drv->type_id != CX88_MPEG_DVB) &&
581 (drv->type_id != CX88_MPEG_BLACKBIRD))
584 if ((drv->hw_access != CX8802_DRVCTL_SHARED) &&
585 (drv->hw_access != CX8802_DRVCTL_EXCLUSIVE))
588 if ((!drv->probe) ||
589 (!drv->remove) ||
590 (!drv->advise_acquire) ||
591 (!drv->advise_release))
597 int cx8802_register_driver(struct cx8802_driver *drv)
604 drv->type_id == CX88_MPEG_DVB ? "dvb" : "blackbird",
605 drv->hw_access == CX8802_DRVCTL_SHARED ?
608 err = cx8802_check_driver(drv);
623 driver = kzalloc(sizeof(*drv), GFP_KERNEL);
630 drv->core = dev->core;
631 drv->suspend = cx8802_suspend_common;
632 drv->resume = cx8802_resume_common;
633 drv->request_acquire = cx8802_request_acquire;
634 drv->request_release = cx8802_request_release;
635 memcpy(driver, drv, sizeof(*driver));
637 mutex_lock(&drv->core->lock);
638 err = drv->probe(driver);
645 mutex_unlock(&drv->core->lock);
655 int cx8802_unregister_driver(struct cx8802_driver *drv)
662 drv->type_id == CX88_MPEG_DVB ? "dvb" : "blackbird",
663 drv->hw_access == CX8802_DRVCTL_SHARED ?
678 if (d->type_id != drv->type_id)
762 struct cx8802_driver *drv, *tmp;
767 list_for_each_entry_safe(drv, tmp, &dev->drvlist, drvlist) {
768 err = drv->remove(drv);
770 list_del(&drv->drvlist);
774 kfree(drv);