Lines Matching defs:tgfx

60 static struct tgfx {
78 struct tgfx *tgfx = from_timer(tgfx, t, timer);
83 if (tgfx->sticks & (1 << i)) {
85 dev = tgfx->dev[i];
87 parport_write_data(tgfx->pd->port, ~(1 << i));
88 data1 = parport_read_status(tgfx->pd->port) ^ 0x7f;
89 data2 = parport_read_control(tgfx->pd->port) ^ 0x04; /* CAVEAT parport */
103 mod_timer(&tgfx->timer, jiffies + TGFX_REFRESH_TIME);
108 struct tgfx *tgfx = input_get_drvdata(dev);
111 err = mutex_lock_interruptible(&tgfx->sem);
115 if (!tgfx->used++) {
116 parport_claim(tgfx->pd);
117 parport_write_control(tgfx->pd->port, 0x04);
118 mod_timer(&tgfx->timer, jiffies + TGFX_REFRESH_TIME);
121 mutex_unlock(&tgfx->sem);
127 struct tgfx *tgfx = input_get_drvdata(dev);
129 mutex_lock(&tgfx->sem);
130 if (!--tgfx->used) {
131 del_timer_sync(&tgfx->timer);
132 parport_write_control(tgfx->pd->port, 0x00);
133 parport_release(tgfx->pd);
135 mutex_unlock(&tgfx->sem);
146 struct tgfx *tgfx;
178 tgfx = kzalloc(sizeof(struct tgfx), GFP_KERNEL);
179 if (!tgfx) {
184 mutex_init(&tgfx->sem);
185 tgfx->pd = pd;
186 tgfx->parportno = pp->number;
187 timer_setup(&tgfx->timer, tgfx_timer, 0);
198 tgfx->dev[i] = input_dev = input_allocate_device();
204 tgfx->sticks |= (1 << i);
205 snprintf(tgfx->name[i], sizeof(tgfx->name[i]),
207 snprintf(tgfx->phys[i], sizeof(tgfx->phys[i]),
208 "%s/input%d", tgfx->pd->port->name, i);
210 input_dev->name = tgfx->name[i];
211 input_dev->phys = tgfx->phys[i];
217 input_set_drvdata(input_dev, tgfx);
229 if (input_register_device(tgfx->dev[i]))
233 if (!tgfx->sticks) {
238 tgfx_base[port_idx] = tgfx;
242 input_free_device(tgfx->dev[i]);
245 if (tgfx->dev[i])
246 input_unregister_device(tgfx->dev[i]);
248 kfree(tgfx);
256 struct tgfx *tgfx;
266 tgfx = tgfx_base[i];
270 if (tgfx->dev[i])
271 input_unregister_device(tgfx->dev[i]);
272 parport_unregister_device(tgfx->pd);
273 kfree(tgfx);