Usb serial driver change question in the linux kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,
                I am using usb_debug driver in Linux kernel  to manage Ajays USB debug device (Vendor Id: 0525 Product Id: 127a) which follows EHCI debug device specification. drivers\usb\serial\usb_debug.c was developed by Greg Kroah-Hartman, it worked very well with Ajays debug device until one change to usb-serial.c. I could see the Johan's change at https://github.com/torvalds/linux/commit/5083fd7bdfe6760577235a724cf6dccae13652c2.
                The old code is:
                                buffer_size = serial->type->bulk_out_size;
                                if (!buffer_size)
                                                buffer_size = usb_endpoint_maxp(endpoint);
                The new code is:
                                                buffer_size = max_t(int, serial->type->bulk_out_size,
                                                                                                usb_endpoint_maxp(endpoint));
                
                The old code will set buffer_size to 8 which is provided by usb_debug.c, thus usb-serial driver will split data into 8 bytes and send. The new code will set buffer_size to 512 which is provided by the endpoint descriptor, thus usb-serial driver will try to send data with the whole length (for example, whole length is 17 bytes).  However, the EHCI debug device only provided 8 bytes of buffer by hardware register per EHCI specification. Ajays debug device cannot send the data successfully if the total size of data exceeds 16 bytes from my experiment. This change caused data failed to be sent via Ajays USB debug device when data size exceed 16 bytes. 
       Does anyone has ideas how the issue could be resolved?

Thanks
Regards
Elvin Li
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux