Lines Matching refs:mtouch
53 struct mtouch {
61 static void mtouch_process_format_tablet(struct mtouch *mtouch)
63 struct input_dev *dev = mtouch->dev;
65 if (MTOUCH_FORMAT_TABLET_LENGTH == ++mtouch->idx) {
66 input_report_abs(dev, ABS_X, MTOUCH_GET_XC(mtouch->data));
67 input_report_abs(dev, ABS_Y, MTOUCH_MAX_YC - MTOUCH_GET_YC(mtouch->data));
68 input_report_key(dev, BTN_TOUCH, MTOUCH_GET_TOUCHED(mtouch->data));
71 mtouch->idx = 0;
75 static void mtouch_process_response(struct mtouch *mtouch)
77 if (MTOUCH_RESPONSE_END_BYTE == mtouch->data[mtouch->idx++]) {
79 mtouch->idx = 0;
80 } else if (MTOUCH_MAX_LENGTH == mtouch->idx) {
81 printk(KERN_ERR "mtouch.c: too many response bytes\n");
82 mtouch->idx = 0;
89 struct mtouch *mtouch = serio_get_drvdata(serio);
91 mtouch->data[mtouch->idx] = data;
93 if (MTOUCH_FORMAT_TABLET_STATUS_BIT & mtouch->data[0])
94 mtouch_process_format_tablet(mtouch);
95 else if (MTOUCH_RESPONSE_BEGIN_BYTE == mtouch->data[0])
96 mtouch_process_response(mtouch);
98 printk(KERN_DEBUG "mtouch.c: unknown/unsynchronized data from device, byte %x\n",mtouch->data[0]);
109 struct mtouch *mtouch = serio_get_drvdata(serio);
111 input_get_device(mtouch->dev);
112 input_unregister_device(mtouch->dev);
115 input_put_device(mtouch->dev);
116 kfree(mtouch);
127 struct mtouch *mtouch;
131 mtouch = kzalloc(sizeof(struct mtouch), GFP_KERNEL);
133 if (!mtouch || !input_dev) {
138 mtouch->serio = serio;
139 mtouch->dev = input_dev;
140 snprintf(mtouch->phys, sizeof(mtouch->phys), "%s/input0", serio->phys);
143 input_dev->phys = mtouch->phys;
151 input_set_abs_params(mtouch->dev, ABS_X, MTOUCH_MIN_XC, MTOUCH_MAX_XC, 0, 0);
152 input_set_abs_params(mtouch->dev, ABS_Y, MTOUCH_MIN_YC, MTOUCH_MAX_YC, 0, 0);
154 serio_set_drvdata(serio, mtouch);
160 err = input_register_device(mtouch->dev);
169 kfree(mtouch);
191 .name = "mtouch",