Lines Matching full:drv

19 static const struct pnp_card_device_id *match_card(struct pnp_card_driver *drv,  in match_card()  argument
22 const struct pnp_card_device_id *drv_id = drv->id_table; in match_card()
60 struct pnp_card_driver *drv = to_pnp_card_driver(dev->driver); in card_remove_first() local
62 if (!dev->card || !drv) in card_remove_first()
64 if (drv->remove) in card_remove_first()
65 drv->remove(dev->card_link); in card_remove_first()
66 drv->link.remove = &card_remove; in card_remove_first()
71 static int card_probe(struct pnp_card *card, struct pnp_card_driver *drv) in card_probe() argument
77 if (!drv->probe) in card_probe()
79 id = match_card(drv, card); in card_probe()
87 clink->driver = drv; in card_probe()
90 if (drv->probe(clink, id) >= 0) in card_probe()
264 struct pnp_card_driver *drv = in pnp_add_card() local
267 card_probe(card, drv); in pnp_add_card()
301 struct pnp_card_driver *drv; in pnp_request_card_device() local
308 drv = clink->driver; in pnp_request_card_device()
327 dev->dev.driver = &drv->link.driver; in pnp_request_card_device()
348 struct pnp_card_driver *drv = dev->card_link->driver; in pnp_release_card_device() local
350 drv->link.remove = &card_remove; in pnp_release_card_device()
352 drv->link.remove = &card_remove_first; in pnp_release_card_device()
382 * @drv: pointer to the driver to register
384 int pnp_register_card_driver(struct pnp_card_driver *drv) in pnp_register_card_driver() argument
389 drv->link.name = drv->name; in pnp_register_card_driver()
390 drv->link.id_table = NULL; /* this will disable auto matching */ in pnp_register_card_driver()
391 drv->link.flags = drv->flags; in pnp_register_card_driver()
392 drv->link.probe = NULL; in pnp_register_card_driver()
393 drv->link.remove = &card_remove_first; in pnp_register_card_driver()
394 drv->link.suspend = drv->suspend ? card_suspend : NULL; in pnp_register_card_driver()
395 drv->link.resume = drv->resume ? card_resume : NULL; in pnp_register_card_driver()
397 error = pnp_register_driver(&drv->link); in pnp_register_card_driver()
402 list_add_tail(&drv->global_list, &pnp_card_drivers); in pnp_register_card_driver()
408 card_probe(card, drv); in pnp_register_card_driver()
416 * @drv: pointer to the driver to unregister
418 void pnp_unregister_card_driver(struct pnp_card_driver *drv) in pnp_unregister_card_driver() argument
421 list_del(&drv->global_list); in pnp_unregister_card_driver()
423 pnp_unregister_driver(&drv->link); in pnp_unregister_card_driver()