Lines Matching refs:cdev

203 static inline void snd_caiaq_input_report_abs(struct snd_usb_caiaqdev *cdev,  in snd_caiaq_input_report_abs()  argument
207 input_report_abs(cdev->input_dev, axis, in snd_caiaq_input_report_abs()
211 static void snd_caiaq_input_read_analog(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_read_analog() argument
215 struct input_dev *input_dev = cdev->input_dev; in snd_caiaq_input_read_analog()
217 switch (cdev->chip.usb_id) { in snd_caiaq_input_read_analog()
219 snd_caiaq_input_report_abs(cdev, ABS_X, buf, 2); in snd_caiaq_input_read_analog()
220 snd_caiaq_input_report_abs(cdev, ABS_Y, buf, 0); in snd_caiaq_input_read_analog()
221 snd_caiaq_input_report_abs(cdev, ABS_Z, buf, 1); in snd_caiaq_input_read_analog()
226 snd_caiaq_input_report_abs(cdev, ABS_X, buf, 0); in snd_caiaq_input_read_analog()
227 snd_caiaq_input_report_abs(cdev, ABS_Y, buf, 1); in snd_caiaq_input_read_analog()
228 snd_caiaq_input_report_abs(cdev, ABS_Z, buf, 2); in snd_caiaq_input_read_analog()
231 snd_caiaq_input_report_abs(cdev, ABS_HAT0X, buf, 4); in snd_caiaq_input_read_analog()
232 snd_caiaq_input_report_abs(cdev, ABS_HAT0Y, buf, 2); in snd_caiaq_input_read_analog()
233 snd_caiaq_input_report_abs(cdev, ABS_HAT1X, buf, 6); in snd_caiaq_input_read_analog()
234 snd_caiaq_input_report_abs(cdev, ABS_HAT1Y, buf, 1); in snd_caiaq_input_read_analog()
235 snd_caiaq_input_report_abs(cdev, ABS_HAT2X, buf, 7); in snd_caiaq_input_read_analog()
236 snd_caiaq_input_report_abs(cdev, ABS_HAT2Y, buf, 0); in snd_caiaq_input_read_analog()
237 snd_caiaq_input_report_abs(cdev, ABS_HAT3X, buf, 5); in snd_caiaq_input_read_analog()
238 snd_caiaq_input_report_abs(cdev, ABS_HAT3Y, buf, 3); in snd_caiaq_input_read_analog()
245 static void snd_caiaq_input_read_erp(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_read_erp() argument
248 struct input_dev *input_dev = cdev->input_dev; in snd_caiaq_input_read_erp()
251 switch (cdev->chip.usb_id) { in snd_caiaq_input_read_erp()
303 static void snd_caiaq_input_read_io(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_read_io() argument
306 struct input_dev *input_dev = cdev->input_dev; in snd_caiaq_input_read_io()
321 switch (cdev->chip.usb_id) { in snd_caiaq_input_read_io()
324 input_report_abs(cdev->input_dev, ABS_MISC, 255 - buf[4]); in snd_caiaq_input_read_io()
328 input_report_abs(cdev->input_dev, ABS_X, buf[5] & 0xf); in snd_caiaq_input_read_io()
329 input_report_abs(cdev->input_dev, ABS_Y, buf[5] >> 4); in snd_caiaq_input_read_io()
330 input_report_abs(cdev->input_dev, ABS_Z, buf[6] & 0xf); in snd_caiaq_input_read_io()
331 input_report_abs(cdev->input_dev, ABS_MISC, buf[6] >> 4); in snd_caiaq_input_read_io()
340 static void snd_usb_caiaq_tks4_dispatch(struct snd_usb_caiaqdev *cdev, in snd_usb_caiaq_tks4_dispatch() argument
344 struct device *dev = caiaqdev_to_dev(cdev); in snd_usb_caiaq_tks4_dispatch()
353 input_report_key(cdev->input_dev, KONTROLS4_BUTTON(i), in snd_usb_caiaq_tks4_dispatch()
359 input_report_abs(cdev->input_dev, KONTROLS4_ABS(36), buf[9] | ((buf[8] & 0x3) << 8)); in snd_usb_caiaq_tks4_dispatch()
361 input_report_abs(cdev->input_dev, KONTROLS4_ABS(37), buf[13] | ((buf[12] & 0x3) << 8)); in snd_usb_caiaq_tks4_dispatch()
364 input_report_abs(cdev->input_dev, KONTROLS4_ABS(38), buf[3] & 0xf); in snd_usb_caiaq_tks4_dispatch()
365 input_report_abs(cdev->input_dev, KONTROLS4_ABS(39), buf[4] >> 4); in snd_usb_caiaq_tks4_dispatch()
366 input_report_abs(cdev->input_dev, KONTROLS4_ABS(40), buf[4] & 0xf); in snd_usb_caiaq_tks4_dispatch()
367 input_report_abs(cdev->input_dev, KONTROLS4_ABS(41), buf[5] >> 4); in snd_usb_caiaq_tks4_dispatch()
368 input_report_abs(cdev->input_dev, KONTROLS4_ABS(42), buf[5] & 0xf); in snd_usb_caiaq_tks4_dispatch()
369 input_report_abs(cdev->input_dev, KONTROLS4_ABS(43), buf[6] >> 4); in snd_usb_caiaq_tks4_dispatch()
370 input_report_abs(cdev->input_dev, KONTROLS4_ABS(44), buf[6] & 0xf); in snd_usb_caiaq_tks4_dispatch()
371 input_report_abs(cdev->input_dev, KONTROLS4_ABS(45), buf[7] >> 4); in snd_usb_caiaq_tks4_dispatch()
372 input_report_abs(cdev->input_dev, KONTROLS4_ABS(46), buf[7] & 0xf); in snd_usb_caiaq_tks4_dispatch()
377 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(0), buf, 1); in snd_usb_caiaq_tks4_dispatch()
379 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(1), buf, 2); in snd_usb_caiaq_tks4_dispatch()
381 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(2), buf, 3); in snd_usb_caiaq_tks4_dispatch()
383 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(3), buf, 4); in snd_usb_caiaq_tks4_dispatch()
385 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(4), buf, 6); in snd_usb_caiaq_tks4_dispatch()
387 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(7), buf, 7); in snd_usb_caiaq_tks4_dispatch()
393 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(6), buf, 3); in snd_usb_caiaq_tks4_dispatch()
395 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(5), buf, 4); in snd_usb_caiaq_tks4_dispatch()
397 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(8), buf, 6); in snd_usb_caiaq_tks4_dispatch()
399 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(9), buf, 7); in snd_usb_caiaq_tks4_dispatch()
405 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(10), buf, 1); in snd_usb_caiaq_tks4_dispatch()
407 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(11), buf, 2); in snd_usb_caiaq_tks4_dispatch()
409 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(12), buf, 3); in snd_usb_caiaq_tks4_dispatch()
411 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(13), buf, 4); in snd_usb_caiaq_tks4_dispatch()
413 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(14), buf, 5); in snd_usb_caiaq_tks4_dispatch()
415 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(15), buf, 6); in snd_usb_caiaq_tks4_dispatch()
417 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(16), buf, 7); in snd_usb_caiaq_tks4_dispatch()
423 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(17), buf, 1); in snd_usb_caiaq_tks4_dispatch()
425 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(18), buf, 2); in snd_usb_caiaq_tks4_dispatch()
427 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(19), buf, 3); in snd_usb_caiaq_tks4_dispatch()
429 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(20), buf, 4); in snd_usb_caiaq_tks4_dispatch()
431 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(21), buf, 5); in snd_usb_caiaq_tks4_dispatch()
433 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(22), buf, 6); in snd_usb_caiaq_tks4_dispatch()
435 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(23), buf, 7); in snd_usb_caiaq_tks4_dispatch()
441 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(24), buf, 1); in snd_usb_caiaq_tks4_dispatch()
443 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(25), buf, 2); in snd_usb_caiaq_tks4_dispatch()
445 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(26), buf, 3); in snd_usb_caiaq_tks4_dispatch()
447 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(27), buf, 4); in snd_usb_caiaq_tks4_dispatch()
449 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(28), buf, 5); in snd_usb_caiaq_tks4_dispatch()
451 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(29), buf, 6); in snd_usb_caiaq_tks4_dispatch()
453 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(30), buf, 7); in snd_usb_caiaq_tks4_dispatch()
459 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(31), buf, 1); in snd_usb_caiaq_tks4_dispatch()
461 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(32), buf, 2); in snd_usb_caiaq_tks4_dispatch()
463 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(33), buf, 3); in snd_usb_caiaq_tks4_dispatch()
465 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(34), buf, 4); in snd_usb_caiaq_tks4_dispatch()
467 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(35), buf, 5); in snd_usb_caiaq_tks4_dispatch()
481 input_sync(cdev->input_dev); in snd_usb_caiaq_tks4_dispatch()
486 static void snd_usb_caiaq_maschine_dispatch(struct snd_usb_caiaqdev *cdev, in snd_usb_caiaq_maschine_dispatch() argument
495 input_report_abs(cdev->input_dev, MASCHINE_PAD(pad_id), in snd_usb_caiaq_maschine_dispatch()
500 input_sync(cdev->input_dev); in snd_usb_caiaq_maschine_dispatch()
505 struct snd_usb_caiaqdev *cdev = urb->context; in snd_usb_caiaq_ep4_reply_dispatch() local
510 if (urb->status || !cdev || urb != cdev->ep4_in_urb) in snd_usb_caiaq_ep4_reply_dispatch()
513 switch (cdev->chip.usb_id) { in snd_usb_caiaq_ep4_reply_dispatch()
519 snd_caiaq_input_read_io(cdev, buf + 1, 7); in snd_usb_caiaq_ep4_reply_dispatch()
522 snd_caiaq_input_read_analog(cdev, buf + 8, 16); in snd_usb_caiaq_ep4_reply_dispatch()
527 snd_usb_caiaq_tks4_dispatch(cdev, buf, urb->actual_length); in snd_usb_caiaq_ep4_reply_dispatch()
534 snd_usb_caiaq_maschine_dispatch(cdev, buf, urb->actual_length); in snd_usb_caiaq_ep4_reply_dispatch()
539 cdev->ep4_in_urb->actual_length = 0; in snd_usb_caiaq_ep4_reply_dispatch()
540 ret = usb_submit_urb(cdev->ep4_in_urb, GFP_ATOMIC); in snd_usb_caiaq_ep4_reply_dispatch()
547 struct snd_usb_caiaqdev *cdev = input_get_drvdata(idev); in snd_usb_caiaq_input_open() local
549 if (!cdev) in snd_usb_caiaq_input_open()
552 switch (cdev->chip.usb_id) { in snd_usb_caiaq_input_open()
556 if (usb_submit_urb(cdev->ep4_in_urb, GFP_KERNEL) != 0) in snd_usb_caiaq_input_open()
566 struct snd_usb_caiaqdev *cdev = input_get_drvdata(idev); in snd_usb_caiaq_input_close() local
568 if (!cdev) in snd_usb_caiaq_input_close()
571 switch (cdev->chip.usb_id) { in snd_usb_caiaq_input_close()
575 usb_kill_urb(cdev->ep4_in_urb); in snd_usb_caiaq_input_close()
580 void snd_usb_caiaq_input_dispatch(struct snd_usb_caiaqdev *cdev, in snd_usb_caiaq_input_dispatch() argument
584 if (!cdev->input_dev || len < 1) in snd_usb_caiaq_input_dispatch()
589 snd_caiaq_input_read_analog(cdev, buf + 1, len - 1); in snd_usb_caiaq_input_dispatch()
592 snd_caiaq_input_read_erp(cdev, buf + 1, len - 1); in snd_usb_caiaq_input_dispatch()
595 snd_caiaq_input_read_io(cdev, buf + 1, len - 1); in snd_usb_caiaq_input_dispatch()
600 int snd_usb_caiaq_input_init(struct snd_usb_caiaqdev *cdev) in snd_usb_caiaq_input_init() argument
602 struct usb_device *usb_dev = cdev->chip.dev; in snd_usb_caiaq_input_init()
610 usb_make_path(usb_dev, cdev->phys, sizeof(cdev->phys)); in snd_usb_caiaq_input_init()
611 strlcat(cdev->phys, "/input0", sizeof(cdev->phys)); in snd_usb_caiaq_input_init()
613 input->name = cdev->product_name; in snd_usb_caiaq_input_init()
614 input->phys = cdev->phys; in snd_usb_caiaq_input_init()
618 input_set_drvdata(input, cdev); in snd_usb_caiaq_input_init()
620 switch (cdev->chip.usb_id) { in snd_usb_caiaq_input_init()
625 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_rk2)); in snd_usb_caiaq_input_init()
626 memcpy(cdev->keycode, keycode_rk2, sizeof(keycode_rk2)); in snd_usb_caiaq_input_init()
631 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 0); in snd_usb_caiaq_input_init()
637 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_rk3)); in snd_usb_caiaq_input_init()
638 memcpy(cdev->keycode, keycode_rk3, sizeof(keycode_rk3)); in snd_usb_caiaq_input_init()
643 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 0); in snd_usb_caiaq_input_init()
648 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_ak1)); in snd_usb_caiaq_input_init()
649 memcpy(cdev->keycode, keycode_ak1, sizeof(keycode_ak1)); in snd_usb_caiaq_input_init()
652 snd_usb_caiaq_set_auto_msg(cdev, 1, 0, 5); in snd_usb_caiaq_input_init()
664 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_kore)); in snd_usb_caiaq_input_init()
665 memcpy(cdev->keycode, keycode_kore, sizeof(keycode_kore)); in snd_usb_caiaq_input_init()
679 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
690 BUILD_BUG_ON(sizeof(cdev->keycode) < KONTROLX1_INPUTS); in snd_usb_caiaq_input_init()
692 cdev->keycode[i] = BTN_MISC + i; in snd_usb_caiaq_input_init()
711 cdev->ep4_in_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_caiaq_input_init()
712 if (!cdev->ep4_in_urb) { in snd_usb_caiaq_input_init()
717 usb_fill_bulk_urb(cdev->ep4_in_urb, usb_dev, in snd_usb_caiaq_input_init()
719 cdev->ep4_in_buf, EP4_BUFSIZE, in snd_usb_caiaq_input_init()
720 snd_usb_caiaq_ep4_reply_dispatch, cdev); in snd_usb_caiaq_input_init()
722 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
728 BUILD_BUG_ON(sizeof(cdev->keycode) < KONTROLS4_BUTTONS); in snd_usb_caiaq_input_init()
730 cdev->keycode[i] = KONTROLS4_BUTTON(i); in snd_usb_caiaq_input_init()
750 cdev->ep4_in_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_caiaq_input_init()
751 if (!cdev->ep4_in_urb) { in snd_usb_caiaq_input_init()
756 usb_fill_bulk_urb(cdev->ep4_in_urb, usb_dev, in snd_usb_caiaq_input_init()
758 cdev->ep4_in_buf, EP4_BUFSIZE, in snd_usb_caiaq_input_init()
759 snd_usb_caiaq_ep4_reply_dispatch, cdev); in snd_usb_caiaq_input_init()
761 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
774 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_maschine)); in snd_usb_caiaq_input_init()
775 memcpy(cdev->keycode, keycode_maschine, sizeof(keycode_maschine)); in snd_usb_caiaq_input_init()
795 cdev->ep4_in_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_caiaq_input_init()
796 if (!cdev->ep4_in_urb) { in snd_usb_caiaq_input_init()
801 usb_fill_bulk_urb(cdev->ep4_in_urb, usb_dev, in snd_usb_caiaq_input_init()
803 cdev->ep4_in_buf, EP4_BUFSIZE, in snd_usb_caiaq_input_init()
804 snd_usb_caiaq_ep4_reply_dispatch, cdev); in snd_usb_caiaq_input_init()
806 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
816 input->keycode = cdev->keycode; in snd_usb_caiaq_input_init()
819 __set_bit(cdev->keycode[i], input->keybit); in snd_usb_caiaq_input_init()
821 cdev->input_dev = input; in snd_usb_caiaq_input_init()
831 cdev->input_dev = NULL; in snd_usb_caiaq_input_init()
835 void snd_usb_caiaq_input_free(struct snd_usb_caiaqdev *cdev) in snd_usb_caiaq_input_free() argument
837 if (!cdev || !cdev->input_dev) in snd_usb_caiaq_input_free()
840 usb_kill_urb(cdev->ep4_in_urb); in snd_usb_caiaq_input_free()
841 usb_free_urb(cdev->ep4_in_urb); in snd_usb_caiaq_input_free()
842 cdev->ep4_in_urb = NULL; in snd_usb_caiaq_input_free()
844 input_unregister_device(cdev->input_dev); in snd_usb_caiaq_input_free()
845 cdev->input_dev = NULL; in snd_usb_caiaq_input_free()