Lines Matching defs:tgfx
57 static struct tgfx {
75 struct tgfx *tgfx = from_timer(tgfx, t, timer);
80 if (tgfx->sticks & (1 << i)) {
82 dev = tgfx->dev[i];
84 parport_write_data(tgfx->pd->port, ~(1 << i));
85 data1 = parport_read_status(tgfx->pd->port) ^ 0x7f;
86 data2 = parport_read_control(tgfx->pd->port) ^ 0x04; /* CAVEAT parport */
100 mod_timer(&tgfx->timer, jiffies + TGFX_REFRESH_TIME);
105 struct tgfx *tgfx = input_get_drvdata(dev);
108 err = mutex_lock_interruptible(&tgfx->sem);
112 if (!tgfx->used++) {
113 parport_claim(tgfx->pd);
114 parport_write_control(tgfx->pd->port, 0x04);
115 mod_timer(&tgfx->timer, jiffies + TGFX_REFRESH_TIME);
118 mutex_unlock(&tgfx->sem);
124 struct tgfx *tgfx = input_get_drvdata(dev);
126 mutex_lock(&tgfx->sem);
127 if (!--tgfx->used) {
128 del_timer_sync(&tgfx->timer);
129 parport_write_control(tgfx->pd->port, 0x00);
130 parport_release(tgfx->pd);
132 mutex_unlock(&tgfx->sem);
143 struct tgfx *tgfx;
175 tgfx = kzalloc(sizeof(struct tgfx), GFP_KERNEL);
176 if (!tgfx) {
181 mutex_init(&tgfx->sem);
182 tgfx->pd = pd;
183 tgfx->parportno = pp->number;
184 timer_setup(&tgfx->timer, tgfx_timer, 0);
195 tgfx->dev[i] = input_dev = input_allocate_device();
201 tgfx->sticks |= (1 << i);
202 snprintf(tgfx->name[i], sizeof(tgfx->name[i]),
204 snprintf(tgfx->phys[i], sizeof(tgfx->phys[i]),
205 "%s/input%d", tgfx->pd->port->name, i);
207 input_dev->name = tgfx->name[i];
208 input_dev->phys = tgfx->phys[i];
214 input_set_drvdata(input_dev, tgfx);
226 if (input_register_device(tgfx->dev[i]))
230 if (!tgfx->sticks) {
235 tgfx_base[port_idx] = tgfx;
239 input_free_device(tgfx->dev[i]);
242 if (tgfx->dev[i])
243 input_unregister_device(tgfx->dev[i]);
245 kfree(tgfx);
253 struct tgfx *tgfx;
263 tgfx = tgfx_base[i];
267 if (tgfx->dev[i])
268 input_unregister_device(tgfx->dev[i]);
269 parport_unregister_device(tgfx->pd);
270 kfree(tgfx);