Lines Matching refs:cdev
190 static inline void snd_caiaq_input_report_abs(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_report_abs() argument
194 input_report_abs(cdev->input_dev, axis, in snd_caiaq_input_report_abs()
198 static void snd_caiaq_input_read_analog(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_read_analog() argument
202 struct input_dev *input_dev = cdev->input_dev; in snd_caiaq_input_read_analog()
204 switch (cdev->chip.usb_id) { in snd_caiaq_input_read_analog()
208 snd_caiaq_input_report_abs(cdev, ABS_X, buf, 2); in snd_caiaq_input_read_analog()
209 snd_caiaq_input_report_abs(cdev, ABS_Y, buf, 0); in snd_caiaq_input_read_analog()
210 snd_caiaq_input_report_abs(cdev, ABS_Z, buf, 1); in snd_caiaq_input_read_analog()
217 snd_caiaq_input_report_abs(cdev, ABS_X, buf, 0); in snd_caiaq_input_read_analog()
218 snd_caiaq_input_report_abs(cdev, ABS_Y, buf, 1); in snd_caiaq_input_read_analog()
219 snd_caiaq_input_report_abs(cdev, ABS_Z, buf, 2); in snd_caiaq_input_read_analog()
224 snd_caiaq_input_report_abs(cdev, ABS_HAT0X, buf, 4); in snd_caiaq_input_read_analog()
225 snd_caiaq_input_report_abs(cdev, ABS_HAT0Y, buf, 2); in snd_caiaq_input_read_analog()
226 snd_caiaq_input_report_abs(cdev, ABS_HAT1X, buf, 6); in snd_caiaq_input_read_analog()
227 snd_caiaq_input_report_abs(cdev, ABS_HAT1Y, buf, 1); in snd_caiaq_input_read_analog()
228 snd_caiaq_input_report_abs(cdev, ABS_HAT2X, buf, 7); in snd_caiaq_input_read_analog()
229 snd_caiaq_input_report_abs(cdev, ABS_HAT2Y, buf, 0); in snd_caiaq_input_read_analog()
230 snd_caiaq_input_report_abs(cdev, ABS_HAT3X, buf, 5); in snd_caiaq_input_read_analog()
231 snd_caiaq_input_report_abs(cdev, ABS_HAT3Y, buf, 3); in snd_caiaq_input_read_analog()
238 static void snd_caiaq_input_read_erp(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_read_erp() argument
241 struct input_dev *input_dev = cdev->input_dev; in snd_caiaq_input_read_erp()
244 switch (cdev->chip.usb_id) { in snd_caiaq_input_read_erp()
302 static void snd_caiaq_input_read_io(struct snd_usb_caiaqdev *cdev, in snd_caiaq_input_read_io() argument
305 struct input_dev *input_dev = cdev->input_dev; in snd_caiaq_input_read_io()
320 switch (cdev->chip.usb_id) { in snd_caiaq_input_read_io()
325 input_report_abs(cdev->input_dev, ABS_MISC, 255 - buf[4]); in snd_caiaq_input_read_io()
331 input_report_abs(cdev->input_dev, ABS_X, buf[5] & 0xf); in snd_caiaq_input_read_io()
332 input_report_abs(cdev->input_dev, ABS_Y, buf[5] >> 4); in snd_caiaq_input_read_io()
333 input_report_abs(cdev->input_dev, ABS_Z, buf[6] & 0xf); in snd_caiaq_input_read_io()
334 input_report_abs(cdev->input_dev, ABS_MISC, buf[6] >> 4); in snd_caiaq_input_read_io()
343 static void snd_usb_caiaq_tks4_dispatch(struct snd_usb_caiaqdev *cdev, in snd_usb_caiaq_tks4_dispatch() argument
347 struct device *dev = caiaqdev_to_dev(cdev); in snd_usb_caiaq_tks4_dispatch()
356 input_report_key(cdev->input_dev, KONTROLS4_BUTTON(i), in snd_usb_caiaq_tks4_dispatch()
362 input_report_abs(cdev->input_dev, KONTROLS4_ABS(36), buf[9] | ((buf[8] & 0x3) << 8)); in snd_usb_caiaq_tks4_dispatch()
364 input_report_abs(cdev->input_dev, KONTROLS4_ABS(37), buf[13] | ((buf[12] & 0x3) << 8)); in snd_usb_caiaq_tks4_dispatch()
367 input_report_abs(cdev->input_dev, KONTROLS4_ABS(38), buf[3] & 0xf); in snd_usb_caiaq_tks4_dispatch()
368 input_report_abs(cdev->input_dev, KONTROLS4_ABS(39), buf[4] >> 4); in snd_usb_caiaq_tks4_dispatch()
369 input_report_abs(cdev->input_dev, KONTROLS4_ABS(40), buf[4] & 0xf); in snd_usb_caiaq_tks4_dispatch()
370 input_report_abs(cdev->input_dev, KONTROLS4_ABS(41), buf[5] >> 4); in snd_usb_caiaq_tks4_dispatch()
371 input_report_abs(cdev->input_dev, KONTROLS4_ABS(42), buf[5] & 0xf); in snd_usb_caiaq_tks4_dispatch()
372 input_report_abs(cdev->input_dev, KONTROLS4_ABS(43), buf[6] >> 4); in snd_usb_caiaq_tks4_dispatch()
373 input_report_abs(cdev->input_dev, KONTROLS4_ABS(44), buf[6] & 0xf); in snd_usb_caiaq_tks4_dispatch()
374 input_report_abs(cdev->input_dev, KONTROLS4_ABS(45), buf[7] >> 4); in snd_usb_caiaq_tks4_dispatch()
375 input_report_abs(cdev->input_dev, KONTROLS4_ABS(46), buf[7] & 0xf); in snd_usb_caiaq_tks4_dispatch()
380 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(0), buf, 1); in snd_usb_caiaq_tks4_dispatch()
382 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(1), buf, 2); in snd_usb_caiaq_tks4_dispatch()
384 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(2), buf, 3); in snd_usb_caiaq_tks4_dispatch()
386 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(3), buf, 4); in snd_usb_caiaq_tks4_dispatch()
388 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(4), buf, 6); in snd_usb_caiaq_tks4_dispatch()
390 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(7), buf, 7); in snd_usb_caiaq_tks4_dispatch()
396 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(6), buf, 3); in snd_usb_caiaq_tks4_dispatch()
398 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(5), buf, 4); in snd_usb_caiaq_tks4_dispatch()
400 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(8), buf, 6); in snd_usb_caiaq_tks4_dispatch()
402 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(9), buf, 7); in snd_usb_caiaq_tks4_dispatch()
408 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(10), buf, 1); in snd_usb_caiaq_tks4_dispatch()
410 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(11), buf, 2); in snd_usb_caiaq_tks4_dispatch()
412 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(12), buf, 3); in snd_usb_caiaq_tks4_dispatch()
414 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(13), buf, 4); in snd_usb_caiaq_tks4_dispatch()
416 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(14), buf, 5); in snd_usb_caiaq_tks4_dispatch()
418 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(15), buf, 6); in snd_usb_caiaq_tks4_dispatch()
420 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(16), buf, 7); in snd_usb_caiaq_tks4_dispatch()
426 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(17), buf, 1); in snd_usb_caiaq_tks4_dispatch()
428 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(18), buf, 2); in snd_usb_caiaq_tks4_dispatch()
430 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(19), buf, 3); in snd_usb_caiaq_tks4_dispatch()
432 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(20), buf, 4); in snd_usb_caiaq_tks4_dispatch()
434 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(21), buf, 5); in snd_usb_caiaq_tks4_dispatch()
436 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(22), buf, 6); in snd_usb_caiaq_tks4_dispatch()
438 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(23), buf, 7); in snd_usb_caiaq_tks4_dispatch()
444 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(24), buf, 1); in snd_usb_caiaq_tks4_dispatch()
446 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(25), buf, 2); in snd_usb_caiaq_tks4_dispatch()
448 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(26), buf, 3); in snd_usb_caiaq_tks4_dispatch()
450 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(27), buf, 4); in snd_usb_caiaq_tks4_dispatch()
452 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(28), buf, 5); in snd_usb_caiaq_tks4_dispatch()
454 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(29), buf, 6); in snd_usb_caiaq_tks4_dispatch()
456 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(30), buf, 7); in snd_usb_caiaq_tks4_dispatch()
462 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(31), buf, 1); in snd_usb_caiaq_tks4_dispatch()
464 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(32), buf, 2); in snd_usb_caiaq_tks4_dispatch()
466 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(33), buf, 3); in snd_usb_caiaq_tks4_dispatch()
468 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(34), buf, 4); in snd_usb_caiaq_tks4_dispatch()
470 snd_caiaq_input_report_abs(cdev, KONTROLS4_ABS(35), buf, 5); in snd_usb_caiaq_tks4_dispatch()
484 input_sync(cdev->input_dev); in snd_usb_caiaq_tks4_dispatch()
489 static void snd_usb_caiaq_maschine_dispatch(struct snd_usb_caiaqdev *cdev, in snd_usb_caiaq_maschine_dispatch() argument
498 input_report_abs(cdev->input_dev, MASCHINE_PAD(pad_id), in snd_usb_caiaq_maschine_dispatch()
503 input_sync(cdev->input_dev); in snd_usb_caiaq_maschine_dispatch()
508 struct snd_usb_caiaqdev *cdev = urb->context; in snd_usb_caiaq_ep4_reply_dispatch() local
513 if (urb->status || !cdev || urb != cdev->ep4_in_urb) in snd_usb_caiaq_ep4_reply_dispatch()
516 switch (cdev->chip.usb_id) { in snd_usb_caiaq_ep4_reply_dispatch()
522 snd_caiaq_input_read_io(cdev, buf + 1, 7); in snd_usb_caiaq_ep4_reply_dispatch()
525 snd_caiaq_input_read_analog(cdev, buf + 8, 16); in snd_usb_caiaq_ep4_reply_dispatch()
530 snd_usb_caiaq_tks4_dispatch(cdev, buf, urb->actual_length); in snd_usb_caiaq_ep4_reply_dispatch()
537 snd_usb_caiaq_maschine_dispatch(cdev, buf, urb->actual_length); in snd_usb_caiaq_ep4_reply_dispatch()
542 cdev->ep4_in_urb->actual_length = 0; in snd_usb_caiaq_ep4_reply_dispatch()
543 ret = usb_submit_urb(cdev->ep4_in_urb, GFP_ATOMIC); in snd_usb_caiaq_ep4_reply_dispatch()
550 struct snd_usb_caiaqdev *cdev = input_get_drvdata(idev); in snd_usb_caiaq_input_open() local
552 if (!cdev) in snd_usb_caiaq_input_open()
555 switch (cdev->chip.usb_id) { in snd_usb_caiaq_input_open()
559 if (usb_submit_urb(cdev->ep4_in_urb, GFP_KERNEL) != 0) in snd_usb_caiaq_input_open()
569 struct snd_usb_caiaqdev *cdev = input_get_drvdata(idev); in snd_usb_caiaq_input_close() local
571 if (!cdev) in snd_usb_caiaq_input_close()
574 switch (cdev->chip.usb_id) { in snd_usb_caiaq_input_close()
578 usb_kill_urb(cdev->ep4_in_urb); in snd_usb_caiaq_input_close()
583 void snd_usb_caiaq_input_dispatch(struct snd_usb_caiaqdev *cdev, in snd_usb_caiaq_input_dispatch() argument
587 if (!cdev->input_dev || len < 1) in snd_usb_caiaq_input_dispatch()
592 snd_caiaq_input_read_analog(cdev, buf + 1, len - 1); in snd_usb_caiaq_input_dispatch()
595 snd_caiaq_input_read_erp(cdev, buf + 1, len - 1); in snd_usb_caiaq_input_dispatch()
598 snd_caiaq_input_read_io(cdev, buf + 1, len - 1); in snd_usb_caiaq_input_dispatch()
603 int snd_usb_caiaq_input_init(struct snd_usb_caiaqdev *cdev) in snd_usb_caiaq_input_init() argument
605 struct usb_device *usb_dev = cdev->chip.dev; in snd_usb_caiaq_input_init()
613 usb_make_path(usb_dev, cdev->phys, sizeof(cdev->phys)); in snd_usb_caiaq_input_init()
614 strlcat(cdev->phys, "/input0", sizeof(cdev->phys)); in snd_usb_caiaq_input_init()
616 input->name = cdev->product_name; in snd_usb_caiaq_input_init()
617 input->phys = cdev->phys; in snd_usb_caiaq_input_init()
621 input_set_drvdata(input, cdev); in snd_usb_caiaq_input_init()
623 switch (cdev->chip.usb_id) { in snd_usb_caiaq_input_init()
628 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_rk2)); in snd_usb_caiaq_input_init()
629 memcpy(cdev->keycode, keycode_rk2, sizeof(keycode_rk2)); in snd_usb_caiaq_input_init()
634 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 0); in snd_usb_caiaq_input_init()
640 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_rk3)); in snd_usb_caiaq_input_init()
641 memcpy(cdev->keycode, keycode_rk3, sizeof(keycode_rk3)); in snd_usb_caiaq_input_init()
646 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 0); in snd_usb_caiaq_input_init()
651 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_ak1)); in snd_usb_caiaq_input_init()
652 memcpy(cdev->keycode, keycode_ak1, sizeof(keycode_ak1)); in snd_usb_caiaq_input_init()
655 snd_usb_caiaq_set_auto_msg(cdev, 1, 0, 5); in snd_usb_caiaq_input_init()
667 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_kore)); in snd_usb_caiaq_input_init()
668 memcpy(cdev->keycode, keycode_kore, sizeof(keycode_kore)); in snd_usb_caiaq_input_init()
682 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
693 BUILD_BUG_ON(sizeof(cdev->keycode) < KONTROLX1_INPUTS); in snd_usb_caiaq_input_init()
695 cdev->keycode[i] = BTN_MISC + i; in snd_usb_caiaq_input_init()
714 cdev->ep4_in_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_caiaq_input_init()
715 if (!cdev->ep4_in_urb) { in snd_usb_caiaq_input_init()
720 usb_fill_bulk_urb(cdev->ep4_in_urb, usb_dev, in snd_usb_caiaq_input_init()
722 cdev->ep4_in_buf, EP4_BUFSIZE, in snd_usb_caiaq_input_init()
723 snd_usb_caiaq_ep4_reply_dispatch, cdev); in snd_usb_caiaq_input_init()
724 ret = usb_urb_ep_type_check(cdev->ep4_in_urb); in snd_usb_caiaq_input_init()
728 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
734 BUILD_BUG_ON(sizeof(cdev->keycode) < KONTROLS4_BUTTONS); in snd_usb_caiaq_input_init()
736 cdev->keycode[i] = KONTROLS4_BUTTON(i); in snd_usb_caiaq_input_init()
756 cdev->ep4_in_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_caiaq_input_init()
757 if (!cdev->ep4_in_urb) { in snd_usb_caiaq_input_init()
762 usb_fill_bulk_urb(cdev->ep4_in_urb, usb_dev, in snd_usb_caiaq_input_init()
764 cdev->ep4_in_buf, EP4_BUFSIZE, in snd_usb_caiaq_input_init()
765 snd_usb_caiaq_ep4_reply_dispatch, cdev); in snd_usb_caiaq_input_init()
766 ret = usb_urb_ep_type_check(cdev->ep4_in_urb); in snd_usb_caiaq_input_init()
770 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
783 BUILD_BUG_ON(sizeof(cdev->keycode) < sizeof(keycode_maschine)); in snd_usb_caiaq_input_init()
784 memcpy(cdev->keycode, keycode_maschine, sizeof(keycode_maschine)); in snd_usb_caiaq_input_init()
804 cdev->ep4_in_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_caiaq_input_init()
805 if (!cdev->ep4_in_urb) { in snd_usb_caiaq_input_init()
810 usb_fill_bulk_urb(cdev->ep4_in_urb, usb_dev, in snd_usb_caiaq_input_init()
812 cdev->ep4_in_buf, EP4_BUFSIZE, in snd_usb_caiaq_input_init()
813 snd_usb_caiaq_ep4_reply_dispatch, cdev); in snd_usb_caiaq_input_init()
814 ret = usb_urb_ep_type_check(cdev->ep4_in_urb); in snd_usb_caiaq_input_init()
818 snd_usb_caiaq_set_auto_msg(cdev, 1, 10, 5); in snd_usb_caiaq_input_init()
829 input->keycode = cdev->keycode; in snd_usb_caiaq_input_init()
832 __set_bit(cdev->keycode[i], input->keybit); in snd_usb_caiaq_input_init()
834 cdev->input_dev = input; in snd_usb_caiaq_input_init()
844 cdev->input_dev = NULL; in snd_usb_caiaq_input_init()
848 void snd_usb_caiaq_input_disconnect(struct snd_usb_caiaqdev *cdev) in snd_usb_caiaq_input_disconnect() argument
850 if (!cdev || !cdev->input_dev) in snd_usb_caiaq_input_disconnect()
853 usb_kill_urb(cdev->ep4_in_urb); in snd_usb_caiaq_input_disconnect()
854 input_unregister_device(cdev->input_dev); in snd_usb_caiaq_input_disconnect()
857 void snd_usb_caiaq_input_free(struct snd_usb_caiaqdev *cdev) in snd_usb_caiaq_input_free() argument
859 if (!cdev || !cdev->input_dev) in snd_usb_caiaq_input_free()
862 usb_free_urb(cdev->ep4_in_urb); in snd_usb_caiaq_input_free()
863 cdev->ep4_in_urb = NULL; in snd_usb_caiaq_input_free()
864 cdev->input_dev = NULL; in snd_usb_caiaq_input_free()