Lines Matching refs:driv
769 * 'driv->board_name' points to a 'const char *' member within the
776 * 'driv->offset' is the size of the private board information
777 * structure, say 'sizeof(struct foo_board)', and 'driv->num_names' is
791 static void *comedi_recognize(struct comedi_driver *driv, const char *name)
793 char **name_ptr = (char **)driv->board_name;
796 for (i = 0; i < driv->num_names; i++) {
799 name_ptr = (void *)name_ptr + driv->offset;
805 static void comedi_report_boards(struct comedi_driver *driv)
811 driv->driver_name);
813 name_ptr = driv->board_name;
814 for (i = 0; i < driv->num_names; i++) {
816 name_ptr = (const char **)((char *)name_ptr + driv->offset);
819 if (driv->num_names == 0)
820 pr_info(" %s\n", driv->driver_name);
952 struct comedi_driver *driv;
960 for (driv = comedi_drivers; driv; driv = driv->next) {
961 if (!try_module_get(driv->module))
963 if (driv->num_names) {
964 dev->board_ptr = comedi_recognize(driv, it->board_name);
967 } else if (strcmp(driv->driver_name, it->board_name) == 0) {
970 module_put(driv->module);
972 if (!driv) {
975 for (driv = comedi_drivers; driv; driv = driv->next) {
976 if (!try_module_get(driv->module))
978 comedi_report_boards(driv);
979 module_put(driv->module);
984 if (!driv->attach) {
988 driv->driver_name);
989 module_put(driv->module);
993 dev->driver = driv;
996 ret = driv->attach(dev, it);
1001 module_put(driv->module);