Lines Matching refs:mtouch
57 struct mtouch { struct
65 static void mtouch_process_format_tablet(struct mtouch *mtouch) in mtouch_process_format_tablet() argument
67 struct input_dev *dev = mtouch->dev; in mtouch_process_format_tablet()
69 if (MTOUCH_FORMAT_TABLET_LENGTH == ++mtouch->idx) { in mtouch_process_format_tablet()
70 input_report_abs(dev, ABS_X, MTOUCH_GET_XC(mtouch->data)); in mtouch_process_format_tablet()
71 input_report_abs(dev, ABS_Y, MTOUCH_MAX_YC - MTOUCH_GET_YC(mtouch->data)); in mtouch_process_format_tablet()
72 input_report_key(dev, BTN_TOUCH, MTOUCH_GET_TOUCHED(mtouch->data)); in mtouch_process_format_tablet()
75 mtouch->idx = 0; in mtouch_process_format_tablet()
79 static void mtouch_process_response(struct mtouch *mtouch) in mtouch_process_response() argument
81 if (MTOUCH_RESPONSE_END_BYTE == mtouch->data[mtouch->idx++]) { in mtouch_process_response()
83 mtouch->idx = 0; in mtouch_process_response()
84 } else if (MTOUCH_MAX_LENGTH == mtouch->idx) { in mtouch_process_response()
86 mtouch->idx = 0; in mtouch_process_response()
93 struct mtouch* mtouch = serio_get_drvdata(serio); in mtouch_interrupt() local
95 mtouch->data[mtouch->idx] = data; in mtouch_interrupt()
97 if (MTOUCH_FORMAT_TABLET_STATUS_BIT & mtouch->data[0]) in mtouch_interrupt()
98 mtouch_process_format_tablet(mtouch); in mtouch_interrupt()
99 else if (MTOUCH_RESPONSE_BEGIN_BYTE == mtouch->data[0]) in mtouch_interrupt()
100 mtouch_process_response(mtouch); in mtouch_interrupt()
102 printk(KERN_DEBUG "mtouch.c: unknown/unsynchronized data from device, byte %x\n",mtouch->data[0]); in mtouch_interrupt()
113 struct mtouch* mtouch = serio_get_drvdata(serio); in mtouch_disconnect() local
115 input_get_device(mtouch->dev); in mtouch_disconnect()
116 input_unregister_device(mtouch->dev); in mtouch_disconnect()
119 input_put_device(mtouch->dev); in mtouch_disconnect()
120 kfree(mtouch); in mtouch_disconnect()
131 struct mtouch *mtouch; in mtouch_connect() local
135 mtouch = kzalloc(sizeof(struct mtouch), GFP_KERNEL); in mtouch_connect()
137 if (!mtouch || !input_dev) { in mtouch_connect()
142 mtouch->serio = serio; in mtouch_connect()
143 mtouch->dev = input_dev; in mtouch_connect()
144 snprintf(mtouch->phys, sizeof(mtouch->phys), "%s/input0", serio->phys); in mtouch_connect()
147 input_dev->phys = mtouch->phys; in mtouch_connect()
155 input_set_abs_params(mtouch->dev, ABS_X, MTOUCH_MIN_XC, MTOUCH_MAX_XC, 0, 0); in mtouch_connect()
156 input_set_abs_params(mtouch->dev, ABS_Y, MTOUCH_MIN_YC, MTOUCH_MAX_YC, 0, 0); in mtouch_connect()
158 serio_set_drvdata(serio, mtouch); in mtouch_connect()
164 err = input_register_device(mtouch->dev); in mtouch_connect()
173 kfree(mtouch); in mtouch_connect()