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) {
539 if (drv->advise_acquire) {
542 core->active_type_id = drv->type_id;
543 drv->advise_acquire(drv);
553 static int cx8802_request_release(struct cx8802_driver *drv)
555 struct cx88_core *core = drv->core;
557 if (drv->advise_release && --core->active_ref == 0) {
558 if (drv->type_id == CX88_MPEG_DVB) {
566 drv->advise_release(drv);
574 static int cx8802_check_driver(struct cx8802_driver *drv)
576 if (!drv)
579 if ((drv->type_id != CX88_MPEG_DVB) &&
580 (drv->type_id != CX88_MPEG_BLACKBIRD))
583 if ((drv->hw_access != CX8802_DRVCTL_SHARED) &&
584 (drv->hw_access != CX8802_DRVCTL_EXCLUSIVE))
587 if ((!drv->probe) ||
588 (!drv->remove) ||
589 (!drv->advise_acquire) ||
590 (!drv->advise_release))
596 int cx8802_register_driver(struct cx8802_driver *drv)
603 drv->type_id == CX88_MPEG_DVB ? "dvb" : "blackbird",
604 drv->hw_access == CX8802_DRVCTL_SHARED ?
607 err = cx8802_check_driver(drv);
622 driver = kzalloc(sizeof(*drv), GFP_KERNEL);
629 drv->core = dev->core;
630 drv->suspend = cx8802_suspend_common;
631 drv->resume = cx8802_resume_common;
632 drv->request_acquire = cx8802_request_acquire;
633 drv->request_release = cx8802_request_release;
634 memcpy(driver, drv, sizeof(*driver));
636 mutex_lock(&drv->core->lock);
637 err = drv->probe(driver);
644 mutex_unlock(&drv->core->lock);
654 int cx8802_unregister_driver(struct cx8802_driver *drv)
661 drv->type_id == CX88_MPEG_DVB ? "dvb" : "blackbird",
662 drv->hw_access == CX8802_DRVCTL_SHARED ?
677 if (d->type_id != drv->type_id)
761 struct cx8802_driver *drv, *tmp;
766 list_for_each_entry_safe(drv, tmp, &dev->drvlist, drvlist) {
767 err = drv->remove(drv);
769 list_del(&drv->drvlist);
773 kfree(drv);