Lines Matching refs:db9
103 struct db9 { struct
113 static struct db9 *db9_base[3]; argument
368 struct db9 *db9 = (void *) private; in db9_timer() local
369 struct parport *port = db9->pd->port; in db9_timer()
370 struct input_dev *dev = db9->dev[0]; in db9_timer()
371 struct input_dev *dev2 = db9->dev[1]; in db9_timer()
374 switch (db9->mode) { in db9_timer()
489 db9_saturn(db9->mode, port, db9->dev); in db9_timer()
514 mod_timer(&db9->timer, jiffies + DB9_REFRESH_TIME); in db9_timer()
519 struct db9 *db9 = input_get_drvdata(dev); in db9_open() local
520 struct parport *port = db9->pd->port; in db9_open()
523 err = mutex_lock_interruptible(&db9->mutex); in db9_open()
527 if (!db9->used++) { in db9_open()
528 parport_claim(db9->pd); in db9_open()
530 if (db9_modes[db9->mode].reverse) { in db9_open()
534 mod_timer(&db9->timer, jiffies + DB9_REFRESH_TIME); in db9_open()
537 mutex_unlock(&db9->mutex); in db9_open()
543 struct db9 *db9 = input_get_drvdata(dev); in db9_close() local
544 struct parport *port = db9->pd->port; in db9_close()
546 mutex_lock(&db9->mutex); in db9_close()
547 if (!--db9->used) { in db9_close()
548 del_timer_sync(&db9->timer); in db9_close()
551 parport_release(db9->pd); in db9_close()
553 mutex_unlock(&db9->mutex); in db9_close()
556 static struct db9 __init *db9_probe(int parport, int mode) in db9_probe()
558 struct db9 *db9; in db9_probe() local
594 db9 = kzalloc(sizeof(struct db9), GFP_KERNEL); in db9_probe()
595 if (!db9) { in db9_probe()
601 mutex_init(&db9->mutex); in db9_probe()
602 db9->pd = pd; in db9_probe()
603 db9->mode = mode; in db9_probe()
604 init_timer(&db9->timer); in db9_probe()
605 db9->timer.data = (long) db9; in db9_probe()
606 db9->timer.function = db9_timer; in db9_probe()
610 db9->dev[i] = input_dev = input_allocate_device(); in db9_probe()
617 snprintf(db9->phys[i], sizeof(db9->phys[i]), in db9_probe()
618 "%s/input%d", db9->pd->port->name, i); in db9_probe()
621 input_dev->phys = db9->phys[i]; in db9_probe()
627 input_set_drvdata(input_dev, db9); in db9_probe()
648 return db9; in db9_probe()
651 input_free_device(db9->dev[i]); in db9_probe()
654 input_unregister_device(db9->dev[i]); in db9_probe()
655 kfree(db9); in db9_probe()
664 static void db9_remove(struct db9 *db9) in db9_remove() argument
668 for (i = 0; i < min(db9_modes[db9->mode].n_pads, DB9_MAX_DEVICES); i++) in db9_remove()
669 input_unregister_device(db9->dev[i]); in db9_remove()
670 parport_unregister_device(db9->pd); in db9_remove()
671 kfree(db9); in db9_remove()