Lines 34-39
Link Here
|
34 |
#include <linux/module.h> |
34 |
#include <linux/module.h> |
35 |
#include <linux/usb.h> |
35 |
#include <linux/usb.h> |
36 |
#include <linux/kthread.h> |
36 |
#include <linux/kthread.h> |
|
|
37 |
#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) ) |
38 |
#include <linux/slab.h> |
39 |
#endif |
37 |
#include <asm/byteorder.h> |
40 |
#include <asm/byteorder.h> |
38 |
#include <asm/atomic.h> |
41 |
#include <asm/atomic.h> |
39 |
#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,24) ) |
42 |
#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,24) ) |
Lines 367-373
Link Here
|
367 |
{ |
370 |
{ |
368 |
if (ep->urb) { |
371 |
if (ep->urb) { |
369 |
if (ep->urb->transfer_buffer) { |
372 |
if (ep->urb->transfer_buffer) { |
370 |
usb_buffer_free(ep->umidi->chip->dev, |
373 |
usb_free_coherent(ep->umidi->chip->dev, |
371 |
ep->urb->transfer_buffer_length, |
374 |
ep->urb->transfer_buffer_length, |
372 |
ep->urb->transfer_buffer, |
375 |
ep->urb->transfer_buffer, |
373 |
ep->urb->transfer_dma); |
376 |
ep->urb->transfer_dma); |
Lines 503-512
Link Here
|
503 |
pipe = usb_rcvbulkpipe(umidi->chip->dev, ep_info->in_ep); |
506 |
pipe = usb_rcvbulkpipe(umidi->chip->dev, ep_info->in_ep); |
504 |
} |
507 |
} |
505 |
length = usb_maxpacket(umidi->chip->dev, pipe, 0); |
508 |
length = usb_maxpacket(umidi->chip->dev, pipe, 0); |
506 |
buffer = usb_buffer_alloc(umidi->chip->dev, length, GFP_KERNEL, |
509 |
buffer = usb_alloc_coherent(umidi->chip->dev, length, GFP_KERNEL, |
507 |
&ep->urb->transfer_dma); |
510 |
&ep->urb->transfer_dma); |
508 |
if (!buffer) { |
511 |
if (!buffer) { |
509 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc failed\n",__FUNCTION__); |
512 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent failed\n",__FUNCTION__); |
510 |
snd_hdjmidi_in_endpoint_delete(ep); |
513 |
snd_hdjmidi_in_endpoint_delete(ep); |
511 |
return -ENOMEM; |
514 |
return -ENOMEM; |
512 |
} |
515 |
} |
Lines 536-542
Link Here
|
536 |
#endif |
539 |
#endif |
537 |
if (ep->urb) { |
540 |
if (ep->urb) { |
538 |
if (ep->urb->transfer_buffer) { |
541 |
if (ep->urb->transfer_buffer) { |
539 |
usb_buffer_free(ep->umidi->chip->dev, ep->max_transfer, |
542 |
usb_free_coherent(ep->umidi->chip->dev, ep->max_transfer, |
540 |
ep->urb->transfer_buffer, |
543 |
ep->urb->transfer_buffer, |
541 |
ep->urb->transfer_dma); |
544 |
ep->urb->transfer_dma); |
542 |
} |
545 |
} |
Lines 544-570
Link Here
|
544 |
} |
547 |
} |
545 |
if (ep->urb_led) { |
548 |
if (ep->urb_led) { |
546 |
if (ep->urb_led->transfer_buffer) { |
549 |
if (ep->urb_led->transfer_buffer) { |
547 |
usb_buffer_free(ep->umidi->chip->dev, ep->max_transfer, |
550 |
usb_free_coherent(ep->umidi->chip->dev, ep->max_transfer, |
548 |
ep->urb_led->transfer_buffer, |
551 |
ep->urb_led->transfer_buffer, |
549 |
ep->urb_led->transfer_dma); |
552 |
ep->urb_led->transfer_dma); |
550 |
} |
553 |
} |
551 |
usb_free_urb(ep->urb_led); |
554 |
usb_free_urb(ep->urb_led); |
552 |
} |
555 |
} |
553 |
if (ep->ctrl_req_led) { |
556 |
if (ep->ctrl_req_led) { |
554 |
usb_buffer_free(ep->umidi->chip->dev, sizeof(*(ep->ctrl_req_led)), |
557 |
usb_free_coherent(ep->umidi->chip->dev, sizeof(*(ep->ctrl_req_led)), |
555 |
ep->ctrl_req_led, ep->ctrl_req_led_dma); |
558 |
ep->ctrl_req_led, ep->ctrl_req_led_dma); |
556 |
} |
559 |
} |
557 |
if (ep->controller_state) { |
560 |
if (ep->controller_state) { |
558 |
if (ep->controller_state->output_control_ctl_urb && |
561 |
if (ep->controller_state->output_control_ctl_urb && |
559 |
ep->controller_state->output_control_ctl_urb->transfer_buffer && |
562 |
ep->controller_state->output_control_ctl_urb->transfer_buffer && |
560 |
ep->controller_state->output_control_ctl_urb->transfer_dma) { |
563 |
ep->controller_state->output_control_ctl_urb->transfer_dma) { |
561 |
usb_buffer_free(ep->umidi->chip->dev, ep->max_transfer, |
564 |
usb_free_coherent(ep->umidi->chip->dev, ep->max_transfer, |
562 |
ep->controller_state->output_control_ctl_urb->transfer_buffer, |
565 |
ep->controller_state->output_control_ctl_urb->transfer_buffer, |
563 |
ep->controller_state->output_control_ctl_urb->transfer_dma); |
566 |
ep->controller_state->output_control_ctl_urb->transfer_dma); |
564 |
} |
567 |
} |
565 |
if (ep->controller_state->output_control_ctl_req && |
568 |
if (ep->controller_state->output_control_ctl_req && |
566 |
ep->controller_state->output_control_ctl_dma) { |
569 |
ep->controller_state->output_control_ctl_dma) { |
567 |
usb_buffer_free(ep->umidi->chip->dev, |
570 |
usb_free_coherent(ep->umidi->chip->dev, |
568 |
sizeof(*(ep->controller_state->output_control_ctl_req)), |
571 |
sizeof(*(ep->controller_state->output_control_ctl_req)), |
569 |
ep->controller_state->output_control_ctl_req, |
572 |
ep->controller_state->output_control_ctl_req, |
570 |
ep->controller_state->output_control_ctl_dma); |
573 |
ep->controller_state->output_control_ctl_dma); |
Lines 573-579
Link Here
|
573 |
usb_free_urb(ep->controller_state->output_control_ctl_urb); |
576 |
usb_free_urb(ep->controller_state->output_control_ctl_urb); |
574 |
} |
577 |
} |
575 |
if (ep->controller_state->ctl_req) { |
578 |
if (ep->controller_state->ctl_req) { |
576 |
usb_buffer_free(ep->umidi->chip->dev, |
579 |
usb_free_coherent(ep->umidi->chip->dev, |
577 |
sizeof(*(ep->controller_state->ctl_req)), |
580 |
sizeof(*(ep->controller_state->ctl_req)), |
578 |
ep->controller_state->ctl_req, |
581 |
ep->controller_state->ctl_req, |
579 |
ep->controller_state->ctl_req_dma); |
582 |
ep->controller_state->ctl_req_dma); |
Lines 584-597
Link Here
|
584 |
} |
587 |
} |
585 |
if (ep->controller_state->urb_kt) { |
588 |
if (ep->controller_state->urb_kt) { |
586 |
if (ep->controller_state->urb_kt->transfer_buffer) { |
589 |
if (ep->controller_state->urb_kt->transfer_buffer) { |
587 |
usb_buffer_free(ep->umidi->chip->dev, ep->max_transfer, |
590 |
usb_free_coherent(ep->umidi->chip->dev, ep->max_transfer, |
588 |
ep->controller_state->urb_kt->transfer_buffer, |
591 |
ep->controller_state->urb_kt->transfer_buffer, |
589 |
ep->controller_state->urb_kt->transfer_dma); |
592 |
ep->controller_state->urb_kt->transfer_dma); |
590 |
} |
593 |
} |
591 |
usb_free_urb(ep->controller_state->urb_kt); |
594 |
usb_free_urb(ep->controller_state->urb_kt); |
592 |
} |
595 |
} |
593 |
if (ep->controller_state->ctl_req_kt) { |
596 |
if (ep->controller_state->ctl_req_kt) { |
594 |
usb_buffer_free(ep->umidi->chip->dev, |
597 |
usb_free_coherent(ep->umidi->chip->dev, |
595 |
sizeof(*(ep->controller_state->ctl_req_kt)), |
598 |
sizeof(*(ep->controller_state->ctl_req_kt)), |
596 |
ep->controller_state->ctl_req_kt, |
599 |
ep->controller_state->ctl_req_kt, |
597 |
ep->controller_state->ctl_req_dma_kt); |
600 |
ep->controller_state->ctl_req_dma_kt); |
Lines 666-677
Link Here
|
666 |
controller_state->is_weltrend = is_mp3_weltrend(ep->umidi->chip->usb_id); |
669 |
controller_state->is_weltrend = is_mp3_weltrend(ep->umidi->chip->usb_id); |
667 |
} |
670 |
} |
668 |
|
671 |
|
669 |
controller_state->ctl_req = usb_buffer_alloc(ep->umidi->chip->dev, |
672 |
controller_state->ctl_req = usb_alloc_coherent(ep->umidi->chip->dev, |
670 |
sizeof(*(controller_state->ctl_req)), |
673 |
sizeof(*(controller_state->ctl_req)), |
671 |
GFP_KERNEL, |
674 |
GFP_KERNEL, |
672 |
&controller_state->ctl_req_dma); |
675 |
&controller_state->ctl_req_dma); |
673 |
if (controller_state->ctl_req==NULL) { |
676 |
if (controller_state->ctl_req==NULL) { |
674 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() failed for setup DMA\n",__FUNCTION__); |
677 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() failed for setup DMA\n",__FUNCTION__); |
675 |
return -ENOMEM; |
678 |
return -ENOMEM; |
676 |
} |
679 |
} |
677 |
|
680 |
|
Lines 679-690
Link Here
|
679 |
* mouse setting or setting LEDs */ |
682 |
* mouse setting or setting LEDs */ |
680 |
init_MUTEX(&controller_state->output_control_ctl_mutex); |
683 |
init_MUTEX(&controller_state->output_control_ctl_mutex); |
681 |
init_completion(&controller_state->output_control_ctl_completion); |
684 |
init_completion(&controller_state->output_control_ctl_completion); |
682 |
controller_state->output_control_ctl_req = usb_buffer_alloc(ep->umidi->chip->dev, |
685 |
controller_state->output_control_ctl_req = usb_alloc_coherent(ep->umidi->chip->dev, |
683 |
sizeof(*(controller_state->output_control_ctl_req)), |
686 |
sizeof(*(controller_state->output_control_ctl_req)), |
684 |
GFP_KERNEL, |
687 |
GFP_KERNEL, |
685 |
&controller_state->output_control_ctl_dma); |
688 |
&controller_state->output_control_ctl_dma); |
686 |
if (controller_state->output_control_ctl_req==NULL) { |
689 |
if (controller_state->output_control_ctl_req==NULL) { |
687 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() failed for general setup DMA\n", |
690 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() failed for general setup DMA\n", |
688 |
__FUNCTION__); |
691 |
__FUNCTION__); |
689 |
return -ENOMEM; |
692 |
return -ENOMEM; |
690 |
} |
693 |
} |
Lines 700-709
Link Here
|
700 |
max_transfer = usb_maxpacket(ep->umidi->chip->dev, |
703 |
max_transfer = usb_maxpacket(ep->umidi->chip->dev, |
701 |
controller_state->output_control_ctl_pipe, 1); |
704 |
controller_state->output_control_ctl_pipe, 1); |
702 |
|
705 |
|
703 |
buffer = usb_buffer_alloc(ep->umidi->chip->dev, max_transfer, |
706 |
buffer = usb_alloc_coherent(ep->umidi->chip->dev, max_transfer, |
704 |
GFP_KERNEL, &controller_state->output_control_ctl_urb->transfer_dma); |
707 |
GFP_KERNEL, &controller_state->output_control_ctl_urb->transfer_dma); |
705 |
if (buffer==NULL) { |
708 |
if (buffer==NULL) { |
706 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc failed (general URB buffer)\n", |
709 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent failed (general URB buffer)\n", |
707 |
__FUNCTION__); |
710 |
__FUNCTION__); |
708 |
return -ENOMEM; |
711 |
return -ENOMEM; |
709 |
} |
712 |
} |
Lines 726-733
Link Here
|
726 |
controller_state->output_control_ctl_req->wIndex = cpu_to_le16(ep->umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
729 |
controller_state->output_control_ctl_req->wIndex = cpu_to_le16(ep->umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
727 |
controller_state->output_control_ctl_req->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
730 |
controller_state->output_control_ctl_req->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
728 |
controller_state->output_control_ctl_urb->setup_dma = controller_state->output_control_ctl_dma; |
731 |
controller_state->output_control_ctl_urb->setup_dma = controller_state->output_control_ctl_dma; |
729 |
/* NOTE: transfer_dma setup above in call to usb_buffer_alloc() */ |
732 |
/* NOTE: transfer_dma setup above in call to usb_alloc_coherent() */ |
730 |
controller_state->output_control_ctl_urb->transfer_flags = URB_NO_SETUP_DMA_MAP | URB_NO_TRANSFER_DMA_MAP; |
733 |
controller_state->output_control_ctl_urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP; |
731 |
|
734 |
|
732 |
return 0; |
735 |
return 0; |
733 |
} |
736 |
} |
Lines 772-783
Link Here
|
772 |
} |
775 |
} |
773 |
|
776 |
|
774 |
if (ep->umidi->chip->caps.leds_hid_controlled) { |
777 |
if (ep->umidi->chip->caps.leds_hid_controlled) { |
775 |
ep->ctrl_req_led = usb_buffer_alloc(ep->umidi->chip->dev, |
778 |
ep->ctrl_req_led = usb_alloc_coherent(ep->umidi->chip->dev, |
776 |
sizeof(*(ep->ctrl_req_led)), |
779 |
sizeof(*(ep->ctrl_req_led)), |
777 |
GFP_KERNEL, |
780 |
GFP_KERNEL, |
778 |
&ep->ctrl_req_led_dma); |
781 |
&ep->ctrl_req_led_dma); |
779 |
if (ep->ctrl_req_led==NULL) { |
782 |
if (ep->ctrl_req_led==NULL) { |
780 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() failed for setup DMA\n",__FUNCTION__); |
783 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() failed for setup DMA\n",__FUNCTION__); |
781 |
return -ENOMEM; |
784 |
return -ENOMEM; |
782 |
} |
785 |
} |
783 |
} |
786 |
} |
Lines 806-823
Link Here
|
806 |
pipe = usb_sndctrlpipe(umidi->chip->dev, 0); |
809 |
pipe = usb_sndctrlpipe(umidi->chip->dev, 0); |
807 |
} |
810 |
} |
808 |
ep->max_transfer = usb_maxpacket(umidi->chip->dev, pipe, 1); |
811 |
ep->max_transfer = usb_maxpacket(umidi->chip->dev, pipe, 1); |
809 |
buffer = usb_buffer_alloc(umidi->chip->dev, ep->max_transfer, |
812 |
buffer = usb_alloc_coherent(umidi->chip->dev, ep->max_transfer, |
810 |
GFP_KERNEL, &ep->urb->transfer_dma); |
813 |
GFP_KERNEL, &ep->urb->transfer_dma); |
811 |
if (!buffer) { |
814 |
if (!buffer) { |
812 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() failed\n",__FUNCTION__); |
815 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() failed\n",__FUNCTION__); |
813 |
snd_hdjmidi_out_endpoint_delete(ep); |
816 |
snd_hdjmidi_out_endpoint_delete(ep); |
814 |
return -ENOMEM; |
817 |
return -ENOMEM; |
815 |
} |
818 |
} |
816 |
|
819 |
|
817 |
buffer_led = usb_buffer_alloc(umidi->chip->dev, ep->max_transfer, |
820 |
buffer_led = usb_alloc_coherent(umidi->chip->dev, ep->max_transfer, |
818 |
GFP_KERNEL, &ep->urb_led->transfer_dma); |
821 |
GFP_KERNEL, &ep->urb_led->transfer_dma); |
819 |
if (!buffer_led) { |
822 |
if (!buffer_led) { |
820 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() failed for LED buffer\n", |
823 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() failed for LED buffer\n", |
821 |
__FUNCTION__); |
824 |
__FUNCTION__); |
822 |
snd_hdjmidi_out_endpoint_delete(ep); |
825 |
snd_hdjmidi_out_endpoint_delete(ep); |
823 |
return -ENOMEM; |
826 |
return -ENOMEM; |
Lines 853-860
Link Here
|
853 |
ep->controller_state->ctl_req->wIndex = cpu_to_le16(umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
856 |
ep->controller_state->ctl_req->wIndex = cpu_to_le16(umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
854 |
ep->controller_state->ctl_req->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
857 |
ep->controller_state->ctl_req->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
855 |
ep->urb->setup_dma = ep->controller_state->ctl_req_dma; |
858 |
ep->urb->setup_dma = ep->controller_state->ctl_req_dma; |
856 |
/* NOTE: transfer_dma setup above in call to usb_buffer_alloc() */ |
859 |
/* NOTE: transfer_dma setup above in call to usb_alloc_coherent() */ |
857 |
ep->urb->transfer_flags = URB_NO_SETUP_DMA_MAP | URB_NO_TRANSFER_DMA_MAP; |
860 |
ep->urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP; |
858 |
} |
861 |
} |
859 |
|
862 |
|
860 |
if (ep->umidi->chip->caps.leds_hid_controlled) { |
863 |
if (ep->umidi->chip->caps.leds_hid_controlled) { |
Lines 874-881
Link Here
|
874 |
ep->ctrl_req_led->wIndex = cpu_to_le16(umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
877 |
ep->ctrl_req_led->wIndex = cpu_to_le16(umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
875 |
ep->ctrl_req_led->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
878 |
ep->ctrl_req_led->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
876 |
ep->urb_led->setup_dma = ep->ctrl_req_led_dma; |
879 |
ep->urb_led->setup_dma = ep->ctrl_req_led_dma; |
877 |
/* NOTE: transfer_dma setup above in call to usb_buffer_alloc() */ |
880 |
/* NOTE: transfer_dma setup above in call to usb_alloc_coherent() */ |
878 |
ep->urb_led->transfer_flags = URB_NO_SETUP_DMA_MAP | URB_NO_TRANSFER_DMA_MAP; |
881 |
ep->urb_led->transfer_flags = URB_NO_TRANSFER_DMA_MAP; |
879 |
} |
882 |
} |
880 |
|
883 |
|
881 |
if (ep->umidi->chip->caps.leds_bulk_controlled) { |
884 |
if (ep->umidi->chip->caps.leds_bulk_controlled) { |
Lines 913-932
Link Here
|
913 |
return -ENOMEM; |
916 |
return -ENOMEM; |
914 |
} |
917 |
} |
915 |
|
918 |
|
916 |
buffer = usb_buffer_alloc(umidi->chip->dev, ep->max_transfer, |
919 |
buffer = usb_alloc_coherent(umidi->chip->dev, ep->max_transfer, |
917 |
GFP_KERNEL, &ep->controller_state->urb_kt->transfer_dma); |
920 |
GFP_KERNEL, &ep->controller_state->urb_kt->transfer_dma); |
918 |
if (!buffer) { |
921 |
if (!buffer) { |
919 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() for wq failed\n",__FUNCTION__); |
922 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() for wq failed\n",__FUNCTION__); |
920 |
snd_hdjmidi_out_endpoint_delete(ep); |
923 |
snd_hdjmidi_out_endpoint_delete(ep); |
921 |
return -ENOMEM; |
924 |
return -ENOMEM; |
922 |
} |
925 |
} |
923 |
|
926 |
|
924 |
ep->controller_state->ctl_req_kt = usb_buffer_alloc(umidi->chip->dev, |
927 |
ep->controller_state->ctl_req_kt = usb_alloc_coherent(umidi->chip->dev, |
925 |
sizeof(*(ep->controller_state->ctl_req_kt)), |
928 |
sizeof(*(ep->controller_state->ctl_req_kt)), |
926 |
GFP_KERNEL, |
929 |
GFP_KERNEL, |
927 |
&ep->controller_state->ctl_req_dma_kt); |
930 |
&ep->controller_state->ctl_req_dma_kt); |
928 |
if (!ep->controller_state->ctl_req_kt) { |
931 |
if (!ep->controller_state->ctl_req_kt) { |
929 |
snd_printk(KERN_WARNING"%s() usb_buffer_alloc() failed for setup DMA for wq\n",__FUNCTION__); |
932 |
snd_printk(KERN_WARNING"%s() usb_alloc_coherent() failed for setup DMA for wq\n",__FUNCTION__); |
930 |
snd_hdjmidi_out_endpoint_delete(ep); |
933 |
snd_hdjmidi_out_endpoint_delete(ep); |
931 |
return -ENOMEM; |
934 |
return -ENOMEM; |
932 |
} |
935 |
} |
Lines 946-953
Link Here
|
946 |
ep->controller_state->ctl_req_kt->wIndex = cpu_to_le16(umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
949 |
ep->controller_state->ctl_req_kt->wIndex = cpu_to_le16(umidi->iface->cur_altsetting->desc.bInterfaceNumber); |
947 |
ep->controller_state->ctl_req_kt->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
950 |
ep->controller_state->ctl_req_kt->wLength = cpu_to_le16(DJ_MP3_HID_OUTPUT_REPORT_LEN); |
948 |
ep->controller_state->urb_kt->setup_dma = ep->controller_state->ctl_req_dma_kt; |
951 |
ep->controller_state->urb_kt->setup_dma = ep->controller_state->ctl_req_dma_kt; |
949 |
/* NOTE: transfer_dma setup above in call to usb_buffer_alloc() */ |
952 |
/* NOTE: transfer_dma setup above in call to usb_alloc_coherent() */ |
950 |
ep->controller_state->urb_kt->transfer_flags = URB_NO_SETUP_DMA_MAP | URB_NO_TRANSFER_DMA_MAP; |
953 |
ep->controller_state->urb_kt->transfer_flags = URB_NO_TRANSFER_DMA_MAP; |
951 |
|
954 |
|
952 |
init_completion(&ep->controller_state->ctl_req_completion_kt); |
955 |
init_completion(&ep->controller_state->ctl_req_completion_kt); |
953 |
init_completion(&ep->controller_state->mp3w_kthread_started); |
956 |
init_completion(&ep->controller_state->mp3w_kthread_started); |