Lines Matching +full:button +full:- +full:enter
1 // SPDX-License-Identifier: GPL-2.0-only
64 * struct vmmouse_data - private data structure for the vmmouse driver
77 * vmmouse_report_button - report button state on the correct input device
83 * @code: Button code
84 * @value: Button value
86 * Report @value and @code on @pref_dev, unless the button is already
96 if (test_bit(code, abs_dev->key)) in vmmouse_report_button()
98 else if (test_bit(code, rel_dev->key)) in vmmouse_report_button()
105 * vmmouse_report_events - process events on the vmmouse communications channel
113 * host- or synchronization error, the function returns PSMOUSE_BAD_DATA in
118 struct input_dev *rel_dev = psmouse->dev; in vmmouse_report_events()
119 struct vmmouse_data *priv = psmouse->private; in vmmouse_report_events()
120 struct input_dev *abs_dev = priv->abs_dev; in vmmouse_report_events()
126 while (count--) { in vmmouse_report_events()
152 * And report what we've got. Prefer to report button in vmmouse_report_events()
161 input_report_rel(rel_dev, REL_Y, -(s32)y); in vmmouse_report_events()
169 input_report_rel(rel_dev, REL_WHEEL, -(s8)((u8) z)); in vmmouse_report_events()
188 * vmmouse_process_byte - process data on the ps/2 channel
199 unsigned char *packet = psmouse->packet; in vmmouse_process_byte()
201 switch (psmouse->pktcnt) { in vmmouse_process_byte()
215 * vmmouse_disable - Disable vmmouse
233 * vmmouse_enable - Enable vmmouse and request absolute mode.
239 * Returns 0 on success, -ENODEV on failure.
256 psmouse_dbg(psmouse, "empty flags - assuming no device\n"); in vmmouse_enable()
257 return -ENXIO; in vmmouse_enable()
266 return -ENXIO; in vmmouse_enable()
290 * vmmouse_check_hypervisor - Check if we're running on a supported hypervisor
304 * vmmouse_detect - Probe whether vmmouse is available
318 return -ENXIO; in vmmouse_detect()
325 return -ENXIO; in vmmouse_detect()
328 psmouse->vendor = VMMOUSE_VENDOR; in vmmouse_detect()
329 psmouse->name = VMMOUSE_NAME; in vmmouse_detect()
330 psmouse->model = version; in vmmouse_detect()
337 * vmmouse_reset - Disable vmmouse and reset
341 * Tries to disable vmmouse mode before enter suspend.
350 * vmmouse_disconnect - Take down vmmouse driver
358 struct vmmouse_data *priv = psmouse->private; in vmmouse_disconnect()
362 input_unregister_device(priv->abs_dev); in vmmouse_disconnect()
367 * vmmouse_reconnect - Reset the ps/2 - and vmmouse connections
372 * -1 on failure.
383 "Unable to re-enable mouse when reconnecting, err: %d\n", in vmmouse_reconnect()
392 * vmmouse_init - Initialize the vmmouse driver
399 * events. Returns 0 on success and -1 on failure.
404 struct input_dev *rel_dev = psmouse->dev, *abs_dev; in vmmouse_init()
415 error = -ENOMEM; in vmmouse_init()
419 priv->abs_dev = abs_dev; in vmmouse_init()
420 psmouse->private = priv; in vmmouse_init()
423 snprintf(priv->phys, sizeof(priv->phys), "%s/input1", in vmmouse_init()
424 psmouse->ps2dev.serio->phys); in vmmouse_init()
426 /* Mimic name setup for relative device in psmouse-base.c */ in vmmouse_init()
427 snprintf(priv->dev_name, sizeof(priv->dev_name), "%s %s %s", in vmmouse_init()
429 abs_dev->phys = priv->phys; in vmmouse_init()
430 abs_dev->name = priv->dev_name; in vmmouse_init()
431 abs_dev->id.bustype = BUS_I8042; in vmmouse_init()
432 abs_dev->id.vendor = 0x0002; in vmmouse_init()
433 abs_dev->id.product = PSMOUSE_VMMOUSE; in vmmouse_init()
434 abs_dev->id.version = psmouse->model; in vmmouse_init()
435 abs_dev->dev.parent = &psmouse->ps2dev.serio->dev; in vmmouse_init()
446 error = input_register_device(priv->abs_dev); in vmmouse_init()
453 psmouse->protocol_handler = vmmouse_process_byte; in vmmouse_init()
454 psmouse->disconnect = vmmouse_disconnect; in vmmouse_init()
455 psmouse->reconnect = vmmouse_reconnect; in vmmouse_init()
456 psmouse->cleanup = vmmouse_reset; in vmmouse_init()
465 psmouse->private = NULL; in vmmouse_init()