Lines Matching refs:db9

84 struct db9 {
95 static struct db9 *db9_base[3];
354 struct db9 *db9 = from_timer(db9, t, timer);
355 struct parport *port = db9->pd->port;
356 struct input_dev *dev = db9->dev[0];
357 struct input_dev *dev2 = db9->dev[1];
360 switch (db9->mode) {
476 db9_saturn(db9->mode, port, db9->dev);
501 mod_timer(&db9->timer, jiffies + DB9_REFRESH_TIME);
506 struct db9 *db9 = input_get_drvdata(dev);
507 struct parport *port = db9->pd->port;
510 err = mutex_lock_interruptible(&db9->mutex);
514 if (!db9->used++) {
515 parport_claim(db9->pd);
517 if (db9_modes[db9->mode].reverse) {
521 mod_timer(&db9->timer, jiffies + DB9_REFRESH_TIME);
524 mutex_unlock(&db9->mutex);
530 struct db9 *db9 = input_get_drvdata(dev);
531 struct parport *port = db9->pd->port;
533 mutex_lock(&db9->mutex);
534 if (!--db9->used) {
535 del_timer_sync(&db9->timer);
538 parport_release(db9->pd);
540 mutex_unlock(&db9->mutex);
545 struct db9 *db9;
570 printk(KERN_ERR "db9.c: Bad device type %d\n", mode);
577 printk(KERN_ERR "db9.c: specified parport is not bidirectional\n");
584 pd = parport_register_dev_model(pp, "db9", &db9_parport_cb, port_idx);
586 printk(KERN_ERR "db9.c: parport busy already - lp.o loaded?\n");
590 db9 = kzalloc(sizeof(struct db9), GFP_KERNEL);
591 if (!db9)
594 mutex_init(&db9->mutex);
595 db9->pd = pd;
596 db9->mode = mode;
597 db9->parportno = pp->number;
598 timer_setup(&db9->timer, db9_timer, 0);
602 db9->dev[i] = input_dev = input_allocate_device();
604 printk(KERN_ERR "db9.c: Not enough memory for input device\n");
608 snprintf(db9->phys[i], sizeof(db9->phys[i]),
609 "%s/input%d", db9->pd->port->name, i);
612 input_dev->phys = db9->phys[i];
618 input_set_drvdata(input_dev, db9);
637 db9_base[port_idx] = db9;
641 input_free_device(db9->dev[i]);
644 input_unregister_device(db9->dev[i]);
645 kfree(db9);
653 struct db9 *db9;
663 db9 = db9_base[i];
666 for (i = 0; i < min(db9_modes[db9->mode].n_pads, DB9_MAX_DEVICES); i++)
667 input_unregister_device(db9->dev[i]);
668 parport_unregister_device(db9->pd);
669 kfree(db9);
673 .name = "db9",
689 printk(KERN_ERR "db9.c: Device type must be specified.\n");