synusb 94 drivers/input/mouse/synaptics_usb.c static void synusb_report_buttons(struct synusb *synusb) synusb 96 drivers/input/mouse/synaptics_usb.c struct input_dev *input_dev = synusb->input; synusb 98 drivers/input/mouse/synaptics_usb.c input_report_key(input_dev, BTN_LEFT, synusb->data[1] & 0x04); synusb 99 drivers/input/mouse/synaptics_usb.c input_report_key(input_dev, BTN_RIGHT, synusb->data[1] & 0x01); synusb 100 drivers/input/mouse/synaptics_usb.c input_report_key(input_dev, BTN_MIDDLE, synusb->data[1] & 0x02); synusb 103 drivers/input/mouse/synaptics_usb.c static void synusb_report_stick(struct synusb *synusb) synusb 105 drivers/input/mouse/synaptics_usb.c struct input_dev *input_dev = synusb->input; synusb 109 drivers/input/mouse/synaptics_usb.c pressure = synusb->data[6]; synusb 110 drivers/input/mouse/synaptics_usb.c x = (s16)(be16_to_cpup((__be16 *)&synusb->data[2]) << 3) >> 7; synusb 111 drivers/input/mouse/synaptics_usb.c y = (s16)(be16_to_cpup((__be16 *)&synusb->data[4]) << 3) >> 7; synusb 120 drivers/input/mouse/synaptics_usb.c synusb_report_buttons(synusb); synusb 125 drivers/input/mouse/synaptics_usb.c static void synusb_report_touchpad(struct synusb *synusb) synusb 127 drivers/input/mouse/synaptics_usb.c struct input_dev *input_dev = synusb->input; synusb 132 drivers/input/mouse/synaptics_usb.c pressure = synusb->data[6]; synusb 133 drivers/input/mouse/synaptics_usb.c x = be16_to_cpup((__be16 *)&synusb->data[2]); synusb 134 drivers/input/mouse/synaptics_usb.c y = be16_to_cpup((__be16 *)&synusb->data[4]); synusb 135 drivers/input/mouse/synaptics_usb.c w = synusb->data[0] & 0x0f; synusb 181 drivers/input/mouse/synaptics_usb.c synusb_report_buttons(synusb); synusb 182 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_AUXDISPLAY) synusb 183 drivers/input/mouse/synaptics_usb.c input_report_key(input_dev, BTN_MIDDLE, synusb->data[1] & 0x08); synusb 190 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = urb->context; synusb 196 drivers/input/mouse/synaptics_usb.c usb_mark_last_busy(synusb->udev); synusb 210 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_STICK) synusb 211 drivers/input/mouse/synaptics_usb.c synusb_report_stick(synusb); synusb 213 drivers/input/mouse/synaptics_usb.c synusb_report_touchpad(synusb); synusb 218 drivers/input/mouse/synaptics_usb.c dev_err(&synusb->intf->dev, synusb 244 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = input_get_drvdata(dev); synusb 247 drivers/input/mouse/synaptics_usb.c retval = usb_autopm_get_interface(synusb->intf); synusb 249 drivers/input/mouse/synaptics_usb.c dev_err(&synusb->intf->dev, synusb 255 drivers/input/mouse/synaptics_usb.c mutex_lock(&synusb->pm_mutex); synusb 256 drivers/input/mouse/synaptics_usb.c retval = usb_submit_urb(synusb->urb, GFP_KERNEL); synusb 258 drivers/input/mouse/synaptics_usb.c dev_err(&synusb->intf->dev, synusb 265 drivers/input/mouse/synaptics_usb.c synusb->intf->needs_remote_wakeup = 1; synusb 266 drivers/input/mouse/synaptics_usb.c synusb->is_open = true; synusb 269 drivers/input/mouse/synaptics_usb.c mutex_unlock(&synusb->pm_mutex); synusb 270 drivers/input/mouse/synaptics_usb.c usb_autopm_put_interface(synusb->intf); synusb 276 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = input_get_drvdata(dev); synusb 279 drivers/input/mouse/synaptics_usb.c autopm_error = usb_autopm_get_interface(synusb->intf); synusb 281 drivers/input/mouse/synaptics_usb.c mutex_lock(&synusb->pm_mutex); synusb 282 drivers/input/mouse/synaptics_usb.c usb_kill_urb(synusb->urb); synusb 283 drivers/input/mouse/synaptics_usb.c synusb->intf->needs_remote_wakeup = 0; synusb 284 drivers/input/mouse/synaptics_usb.c synusb->is_open = false; synusb 285 drivers/input/mouse/synaptics_usb.c mutex_unlock(&synusb->pm_mutex); synusb 288 drivers/input/mouse/synaptics_usb.c usb_autopm_put_interface(synusb->intf); synusb 296 drivers/input/mouse/synaptics_usb.c struct synusb *synusb; synusb 314 drivers/input/mouse/synaptics_usb.c synusb = kzalloc(sizeof(*synusb), GFP_KERNEL); synusb 316 drivers/input/mouse/synaptics_usb.c if (!synusb || !input_dev) { synusb 321 drivers/input/mouse/synaptics_usb.c synusb->udev = udev; synusb 322 drivers/input/mouse/synaptics_usb.c synusb->intf = intf; synusb 323 drivers/input/mouse/synaptics_usb.c synusb->input = input_dev; synusb 324 drivers/input/mouse/synaptics_usb.c mutex_init(&synusb->pm_mutex); synusb 326 drivers/input/mouse/synaptics_usb.c synusb->flags = id->driver_info; synusb 327 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_COMBO) { synusb 332 drivers/input/mouse/synaptics_usb.c synusb->flags |= intf_num == 1 ? synusb 336 drivers/input/mouse/synaptics_usb.c synusb->urb = usb_alloc_urb(0, GFP_KERNEL); synusb 337 drivers/input/mouse/synaptics_usb.c if (!synusb->urb) { synusb 342 drivers/input/mouse/synaptics_usb.c synusb->data = usb_alloc_coherent(udev, SYNUSB_RECV_SIZE, GFP_KERNEL, synusb 343 drivers/input/mouse/synaptics_usb.c &synusb->urb->transfer_dma); synusb 344 drivers/input/mouse/synaptics_usb.c if (!synusb->data) { synusb 349 drivers/input/mouse/synaptics_usb.c usb_fill_int_urb(synusb->urb, udev, synusb 351 drivers/input/mouse/synaptics_usb.c synusb->data, SYNUSB_RECV_SIZE, synusb 352 drivers/input/mouse/synaptics_usb.c synusb_irq, synusb, synusb 354 drivers/input/mouse/synaptics_usb.c synusb->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; synusb 357 drivers/input/mouse/synaptics_usb.c strlcpy(synusb->name, udev->manufacturer, synusb 358 drivers/input/mouse/synaptics_usb.c sizeof(synusb->name)); synusb 362 drivers/input/mouse/synaptics_usb.c strlcat(synusb->name, " ", sizeof(synusb->name)); synusb 363 drivers/input/mouse/synaptics_usb.c strlcat(synusb->name, udev->product, sizeof(synusb->name)); synusb 366 drivers/input/mouse/synaptics_usb.c if (!strlen(synusb->name)) synusb 367 drivers/input/mouse/synaptics_usb.c snprintf(synusb->name, sizeof(synusb->name), synusb 372 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_STICK) synusb 373 drivers/input/mouse/synaptics_usb.c strlcat(synusb->name, " (Stick)", sizeof(synusb->name)); synusb 375 drivers/input/mouse/synaptics_usb.c usb_make_path(udev, synusb->phys, sizeof(synusb->phys)); synusb 376 drivers/input/mouse/synaptics_usb.c strlcat(synusb->phys, "/input0", sizeof(synusb->phys)); synusb 378 drivers/input/mouse/synaptics_usb.c input_dev->name = synusb->name; synusb 379 drivers/input/mouse/synaptics_usb.c input_dev->phys = synusb->phys; synusb 381 drivers/input/mouse/synaptics_usb.c input_dev->dev.parent = &synusb->intf->dev; synusb 383 drivers/input/mouse/synaptics_usb.c if (!(synusb->flags & SYNUSB_IO_ALWAYS)) { synusb 388 drivers/input/mouse/synaptics_usb.c input_set_drvdata(input_dev, synusb); synusb 393 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_STICK) { synusb 412 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_TOUCHSCREEN) synusb 421 drivers/input/mouse/synaptics_usb.c usb_set_intfdata(intf, synusb); synusb 423 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_IO_ALWAYS) { synusb 440 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_IO_ALWAYS) synusb 441 drivers/input/mouse/synaptics_usb.c synusb_close(synusb->input); synusb 443 drivers/input/mouse/synaptics_usb.c usb_free_coherent(udev, SYNUSB_RECV_SIZE, synusb->data, synusb 444 drivers/input/mouse/synaptics_usb.c synusb->urb->transfer_dma); synusb 446 drivers/input/mouse/synaptics_usb.c usb_free_urb(synusb->urb); synusb 449 drivers/input/mouse/synaptics_usb.c kfree(synusb); synusb 457 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = usb_get_intfdata(intf); synusb 460 drivers/input/mouse/synaptics_usb.c if (synusb->flags & SYNUSB_IO_ALWAYS) synusb 461 drivers/input/mouse/synaptics_usb.c synusb_close(synusb->input); synusb 463 drivers/input/mouse/synaptics_usb.c input_unregister_device(synusb->input); synusb 465 drivers/input/mouse/synaptics_usb.c usb_free_coherent(udev, SYNUSB_RECV_SIZE, synusb->data, synusb 466 drivers/input/mouse/synaptics_usb.c synusb->urb->transfer_dma); synusb 467 drivers/input/mouse/synaptics_usb.c usb_free_urb(synusb->urb); synusb 468 drivers/input/mouse/synaptics_usb.c kfree(synusb); synusb 475 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = usb_get_intfdata(intf); synusb 477 drivers/input/mouse/synaptics_usb.c mutex_lock(&synusb->pm_mutex); synusb 478 drivers/input/mouse/synaptics_usb.c usb_kill_urb(synusb->urb); synusb 479 drivers/input/mouse/synaptics_usb.c mutex_unlock(&synusb->pm_mutex); synusb 486 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = usb_get_intfdata(intf); synusb 489 drivers/input/mouse/synaptics_usb.c mutex_lock(&synusb->pm_mutex); synusb 491 drivers/input/mouse/synaptics_usb.c if ((synusb->is_open || (synusb->flags & SYNUSB_IO_ALWAYS)) && synusb 492 drivers/input/mouse/synaptics_usb.c usb_submit_urb(synusb->urb, GFP_NOIO) < 0) { synusb 496 drivers/input/mouse/synaptics_usb.c mutex_unlock(&synusb->pm_mutex); synusb 503 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = usb_get_intfdata(intf); synusb 505 drivers/input/mouse/synaptics_usb.c mutex_lock(&synusb->pm_mutex); synusb 506 drivers/input/mouse/synaptics_usb.c usb_kill_urb(synusb->urb); synusb 513 drivers/input/mouse/synaptics_usb.c struct synusb *synusb = usb_get_intfdata(intf); synusb 516 drivers/input/mouse/synaptics_usb.c if ((synusb->is_open || (synusb->flags & SYNUSB_IO_ALWAYS)) && synusb 517 drivers/input/mouse/synaptics_usb.c usb_submit_urb(synusb->urb, GFP_NOIO) < 0) { synusb 521 drivers/input/mouse/synaptics_usb.c mutex_unlock(&synusb->pm_mutex);