• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/touchscreen/

Lines Matching refs:w8001

55 struct w8001 {
94 struct w8001 *w8001 = serio_get_drvdata(serio);
95 struct input_dev *dev = w8001->dev;
99 w8001->data[w8001->idx] = data;
100 switch (w8001->idx++) {
103 pr_debug("w8001: unsynchronized data: 0x%02x\n", data);
104 w8001->idx = 0;
109 tmp = w8001->data[0] & W8001_TAB_MASK;
113 w8001->idx = 0;
114 parse_data(w8001->data, &coord);
123 w8001->idx = 0;
124 memcpy(w8001->response, w8001->data, W8001_MAX_LENGTH);
125 w8001->response_type = W8001_QUERY_PACKET;
126 complete(&w8001->cmd_done);
133 static int w8001_command(struct w8001 *w8001, unsigned char command,
138 w8001->response_type = 0;
139 init_completion(&w8001->cmd_done);
141 rc = serio_write(w8001->serio, command);
144 wait_for_completion_timeout(&w8001->cmd_done, HZ);
145 if (w8001->response_type != W8001_QUERY_PACKET)
152 static int w8001_setup(struct w8001 *w8001)
154 struct input_dev *dev = w8001->dev;
158 error = w8001_command(w8001, W8001_CMD_QUERY, true);
162 parse_data(w8001->response, &coord);
170 return w8001_command(w8001, W8001_CMD_START, false);
179 struct w8001 *w8001 = serio_get_drvdata(serio);
181 input_get_device(w8001->dev);
182 input_unregister_device(w8001->dev);
185 input_put_device(w8001->dev);
186 kfree(w8001);
191 * new serio device that supports the w8001 protocol and registers it as
197 struct w8001 *w8001;
201 w8001 = kzalloc(sizeof(struct w8001), GFP_KERNEL);
203 if (!w8001 || !input_dev) {
208 w8001->serio = serio;
209 w8001->id = serio->id.id;
210 w8001->dev = input_dev;
211 init_completion(&w8001->cmd_done);
212 snprintf(w8001->phys, sizeof(w8001->phys), "%s/input0", serio->phys);
215 input_dev->phys = w8001->phys;
218 input_dev->id.product = w8001->id;
225 serio_set_drvdata(serio, w8001);
230 err = w8001_setup(w8001);
234 err = input_register_device(w8001->dev);
246 kfree(w8001);
264 .name = "w8001",