Lines Matching defs:tgfx

57 static struct tgfx {
75 struct tgfx *tgfx = timer_container_of(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);
107 scoped_guard(mutex_intr, &tgfx->sem) {
108 if (!tgfx->used++) {
109 parport_claim(tgfx->pd);
110 parport_write_control(tgfx->pd->port, 0x04);
111 mod_timer(&tgfx->timer, jiffies + TGFX_REFRESH_TIME);
122 struct tgfx *tgfx = input_get_drvdata(dev);
124 guard(mutex)(&tgfx->sem);
126 if (!--tgfx->used) {
127 timer_delete_sync(&tgfx->timer);
128 parport_write_control(tgfx->pd->port, 0x00);
129 parport_release(tgfx->pd);
141 struct tgfx *tgfx;
173 tgfx = kzalloc(sizeof(*tgfx), GFP_KERNEL);
174 if (!tgfx) {
179 mutex_init(&tgfx->sem);
180 tgfx->pd = pd;
181 tgfx->parportno = pp->number;
182 timer_setup(&tgfx->timer, tgfx_timer, 0);
193 tgfx->dev[i] = input_dev = input_allocate_device();
199 tgfx->sticks |= (1 << i);
200 snprintf(tgfx->name[i], sizeof(tgfx->name[i]),
202 snprintf(tgfx->phys[i], sizeof(tgfx->phys[i]),
203 "%s/input%d", tgfx->pd->port->name, i);
205 input_dev->name = tgfx->name[i];
206 input_dev->phys = tgfx->phys[i];
212 input_set_drvdata(input_dev, tgfx);
224 if (input_register_device(tgfx->dev[i]))
228 if (!tgfx->sticks) {
233 tgfx_base[port_idx] = tgfx;
237 input_free_device(tgfx->dev[i]);
240 if (tgfx->dev[i])
241 input_unregister_device(tgfx->dev[i]);
243 kfree(tgfx);
251 struct tgfx *tgfx;
261 tgfx = tgfx_base[i];
265 if (tgfx->dev[i])
266 input_unregister_device(tgfx->dev[i]);
267 parport_unregister_device(tgfx->pd);
268 kfree(tgfx);