Lines Matching refs:db9

87 struct db9 {
98 static struct db9 *db9_base[3];
357 struct db9 *db9 = from_timer(db9, t, timer);
358 struct parport *port = db9->pd->port;
359 struct input_dev *dev = db9->dev[0];
360 struct input_dev *dev2 = db9->dev[1];
363 switch (db9->mode) {
479 db9_saturn(db9->mode, port, db9->dev);
504 mod_timer(&db9->timer, jiffies + DB9_REFRESH_TIME);
509 struct db9 *db9 = input_get_drvdata(dev);
510 struct parport *port = db9->pd->port;
513 err = mutex_lock_interruptible(&db9->mutex);
517 if (!db9->used++) {
518 parport_claim(db9->pd);
520 if (db9_modes[db9->mode].reverse) {
524 mod_timer(&db9->timer, jiffies + DB9_REFRESH_TIME);
527 mutex_unlock(&db9->mutex);
533 struct db9 *db9 = input_get_drvdata(dev);
534 struct parport *port = db9->pd->port;
536 mutex_lock(&db9->mutex);
537 if (!--db9->used) {
538 del_timer_sync(&db9->timer);
541 parport_release(db9->pd);
543 mutex_unlock(&db9->mutex);
548 struct db9 *db9;
573 printk(KERN_ERR "db9.c: Bad device type %d\n", mode);
580 printk(KERN_ERR "db9.c: specified parport is not bidirectional\n");
587 pd = parport_register_dev_model(pp, "db9", &db9_parport_cb, port_idx);
589 printk(KERN_ERR "db9.c: parport busy already - lp.o loaded?\n");
593 db9 = kzalloc(sizeof(struct db9), GFP_KERNEL);
594 if (!db9)
597 mutex_init(&db9->mutex);
598 db9->pd = pd;
599 db9->mode = mode;
600 db9->parportno = pp->number;
601 timer_setup(&db9->timer, db9_timer, 0);
605 db9->dev[i] = input_dev = input_allocate_device();
607 printk(KERN_ERR "db9.c: Not enough memory for input device\n");
611 snprintf(db9->phys[i], sizeof(db9->phys[i]),
612 "%s/input%d", db9->pd->port->name, i);
615 input_dev->phys = db9->phys[i];
621 input_set_drvdata(input_dev, db9);
640 db9_base[port_idx] = db9;
644 input_free_device(db9->dev[i]);
647 input_unregister_device(db9->dev[i]);
648 kfree(db9);
656 struct db9 *db9;
666 db9 = db9_base[i];
669 for (i = 0; i < min(db9_modes[db9->mode].n_pads, DB9_MAX_DEVICES); i++)
670 input_unregister_device(db9->dev[i]);
671 parport_unregister_device(db9->pd);
672 kfree(db9);
676 .name = "db9",
692 printk(KERN_ERR "db9.c: Device type must be specified.\n");