Lines Matching refs:drv
45 static void gameport_attach_driver(struct gameport_driver *drv);
214 static int gameport_bind_driver(struct gameport *gameport, struct gameport_driver *drv) in gameport_bind_driver() argument
218 gameport->dev.driver = &drv->driver; in gameport_bind_driver()
219 if (drv->connect(gameport, drv)) { in gameport_bind_driver()
229 drv->description, error); in gameport_bind_driver()
230 drv->disconnect(gameport); in gameport_bind_driver()
469 struct device_driver *drv; in drvctl_store() local
483 } else if ((drv = driver_find(buf, &gameport_bus)) != NULL) { in drvctl_store()
485 error = gameport_bind_driver(gameport, to_gameport_driver(drv)); in drvctl_store()
609 if (!gameport->drv || !gameport->drv->reconnect || gameport->drv->reconnect(gameport)) { in gameport_reconnect_port()
678 static ssize_t description_show(struct device_driver *drv, char *buf) in description_show() argument
680 struct gameport_driver *driver = to_gameport_driver(drv); in description_show()
694 struct gameport_driver *drv = to_gameport_driver(dev->driver); in gameport_driver_probe() local
696 drv->connect(gameport, drv); in gameport_driver_probe()
697 return gameport->drv ? 0 : -ENODEV; in gameport_driver_probe()
703 struct gameport_driver *drv = to_gameport_driver(dev->driver); in gameport_driver_remove() local
705 drv->disconnect(gameport); in gameport_driver_remove()
708 static void gameport_attach_driver(struct gameport_driver *drv) in gameport_attach_driver() argument
712 error = driver_attach(&drv->driver); in gameport_attach_driver()
715 drv->driver.name, error); in gameport_attach_driver()
718 int __gameport_register_driver(struct gameport_driver *drv, struct module *owner, in __gameport_register_driver() argument
723 drv->driver.bus = &gameport_bus; in __gameport_register_driver()
724 drv->driver.owner = owner; in __gameport_register_driver()
725 drv->driver.mod_name = mod_name; in __gameport_register_driver()
731 drv->ignore = true; in __gameport_register_driver()
733 error = driver_register(&drv->driver); in __gameport_register_driver()
736 drv->driver.name, error); in __gameport_register_driver()
743 drv->ignore = false; in __gameport_register_driver()
744 error = gameport_queue_event(drv, NULL, GAMEPORT_ATTACH_DRIVER); in __gameport_register_driver()
746 driver_unregister(&drv->driver); in __gameport_register_driver()
754 void gameport_unregister_driver(struct gameport_driver *drv) in gameport_unregister_driver() argument
760 drv->ignore = true; /* so gameport_find_driver ignores it */ in gameport_unregister_driver()
761 gameport_remove_pending_events(drv); in gameport_unregister_driver()
765 if (gameport->drv == drv) { in gameport_unregister_driver()
773 driver_unregister(&drv->driver); in gameport_unregister_driver()
779 static int gameport_bus_match(struct device *dev, struct device_driver *drv) in gameport_bus_match() argument
781 struct gameport_driver *gameport_drv = to_gameport_driver(drv); in gameport_bus_match()
795 static void gameport_set_drv(struct gameport *gameport, struct gameport_driver *drv) in gameport_set_drv() argument
798 gameport->drv = drv; in gameport_set_drv()
802 int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mode) in gameport_open() argument
813 gameport_set_drv(gameport, drv); in gameport_open()