Lines Matching refs:psmouse
21 #include "psmouse.h"
104 * @psmouse: Pointer to the psmouse struct
115 static void vmmouse_report_button(struct psmouse *psmouse,
132 * @psmouse: Pointer to the psmouse struct
137 * psmouse commands, the function returns PSMOUSE_FULL_PACKET. If there is a
141 static psmouse_ret_t vmmouse_report_events(struct psmouse *psmouse)
143 struct input_dev *rel_dev = psmouse->dev;
144 struct vmmouse_data *priv = psmouse->private;
157 psmouse_err(psmouse, "failed to fetch status data\n");
170 psmouse_err(psmouse, "invalid queue length\n");
197 vmmouse_report_button(psmouse, abs_dev, rel_dev,
200 vmmouse_report_button(psmouse, abs_dev, rel_dev,
203 vmmouse_report_button(psmouse, abs_dev, rel_dev,
216 * @psmouse: Pointer to the psmouse struct
223 static psmouse_ret_t vmmouse_process_byte(struct psmouse *psmouse)
225 unsigned char *packet = psmouse->packet;
227 switch (psmouse->pktcnt) {
236 return vmmouse_report_events(psmouse);
243 * @psmouse: Pointer to the psmouse struct
247 static void vmmouse_disable(struct psmouse *psmouse)
259 psmouse_warn(psmouse, "failed to disable vmmouse device\n");
265 * @psmouse: Pointer to the psmouse struct
271 static int vmmouse_enable(struct psmouse *psmouse)
288 psmouse_dbg(psmouse, "empty flags - assuming no device\n");
295 psmouse_dbg(psmouse, "Unexpected version value: %u vs %u\n",
297 vmmouse_disable(psmouse);
338 * @psmouse: Pointer to the psmouse struct
339 * @set_properties: Whether to set psmouse name and vendor
343 int vmmouse_detect(struct psmouse *psmouse, bool set_properties)
348 psmouse_dbg(psmouse,
360 psmouse->vendor = VMMOUSE_VENDOR;
361 psmouse->name = VMMOUSE_NAME;
362 psmouse->model = version;
371 * @psmouse: Pointer to the psmouse struct
375 static void vmmouse_reset(struct psmouse *psmouse)
377 vmmouse_disable(psmouse);
378 psmouse_reset(psmouse);
384 * @psmouse: Pointer to the psmouse struct
388 static void vmmouse_disconnect(struct psmouse *psmouse)
390 struct vmmouse_data *priv = psmouse->private;
392 vmmouse_disable(psmouse);
393 psmouse_reset(psmouse);
401 * @psmouse: Pointer to the psmouse struct
406 static int vmmouse_reconnect(struct psmouse *psmouse)
410 psmouse_reset(psmouse);
411 vmmouse_disable(psmouse);
412 error = vmmouse_enable(psmouse);
414 psmouse_err(psmouse,
426 * @psmouse: Pointer to the psmouse struct
433 int vmmouse_init(struct psmouse *psmouse)
436 struct input_dev *rel_dev = psmouse->dev, *abs_dev;
439 psmouse_reset(psmouse);
440 error = vmmouse_enable(psmouse);
452 psmouse->private = priv;
456 psmouse->ps2dev.serio->phys);
458 /* Mimic name setup for relative device in psmouse-base.c */
466 abs_dev->id.version = psmouse->model;
467 abs_dev->dev.parent = &psmouse->ps2dev.serio->dev;
485 psmouse->protocol_handler = vmmouse_process_byte;
486 psmouse->disconnect = vmmouse_disconnect;
487 psmouse->reconnect = vmmouse_reconnect;
488 psmouse->cleanup = vmmouse_reset;
493 vmmouse_disable(psmouse);
494 psmouse_reset(psmouse);
497 psmouse->private = NULL;