Lines Matching refs:tw

52 struct tw {  struct
64 struct tw *tw = serio_get_drvdata(serio); in tw_interrupt() argument
65 struct input_dev *dev = tw->dev; in tw_interrupt()
68 tw->touched = 1; in tw_interrupt()
69 tw->data[tw->idx++] = data; in tw_interrupt()
71 if (tw->idx == TW_LENGTH && tw->data[1] == tw->data[2]) { in tw_interrupt()
72 input_report_abs(dev, ABS_X, tw->data[0]); in tw_interrupt()
73 input_report_abs(dev, ABS_Y, tw->data[1]); in tw_interrupt()
76 tw->idx = 0; in tw_interrupt()
78 } else if (tw->touched) { /* untouch */ in tw_interrupt()
81 tw->idx = 0; in tw_interrupt()
82 tw->touched = 0; in tw_interrupt()
94 struct tw *tw = serio_get_drvdata(serio); in tw_disconnect() local
96 input_get_device(tw->dev); in tw_disconnect()
97 input_unregister_device(tw->dev); in tw_disconnect()
100 input_put_device(tw->dev); in tw_disconnect()
101 kfree(tw); in tw_disconnect()
112 struct tw *tw; in tw_connect() local
116 tw = kzalloc(sizeof(struct tw), GFP_KERNEL); in tw_connect()
118 if (!tw || !input_dev) { in tw_connect()
123 tw->serio = serio; in tw_connect()
124 tw->dev = input_dev; in tw_connect()
125 snprintf(tw->phys, sizeof(tw->phys), "%s/input0", serio->phys); in tw_connect()
128 input_dev->phys = tw->phys; in tw_connect()
136 input_set_abs_params(tw->dev, ABS_X, TW_MIN_XC, TW_MAX_XC, 0, 0); in tw_connect()
137 input_set_abs_params(tw->dev, ABS_Y, TW_MIN_YC, TW_MAX_YC, 0, 0); in tw_connect()
139 serio_set_drvdata(serio, tw); in tw_connect()
145 err = input_register_device(tw->dev); in tw_connect()
154 kfree(tw); in tw_connect()