On 08/06/2015 02:42 AM, arun k wrote: > / # lsusb -v > Bus 002 Device 006: ID 045b:0218 > Bus 001 Device 001: ID 1d6b:0002 > Bus 002 Device 001: ID 1d6b:0001 > Bus 003 Device 001: ID 1d6b:0002 > Bus 004 Device 001: ID 1d6b:0003 > > In this my device is > Bus 002 Device 006: ID 045b:0218 I have no idea what this device is, sorry. And the device descriptor dump below is not very helpful because it doesn't have the configurations. What is this for? > I enabled data dumping in usb_serial_generic_read_bulk_callback() > function and found data received in this function is losing. > In this function data is received as 64 bytes packets and two > continuous 64 bytes having no data loss but the next packets are lost > ie > 1st packet ok(64 byte) > 2nd packet ok(64 byte) > . > . packet lossing.... > . > 7th packet ok(64 byte) > 8th packet ok(64 byte) > . > . > In this way data loss is happening. Number of packets losing is > different not constant always. It's unclear what you are saying here; are you saying (a) the sending device is dropping data so the urbs do not contain the data you expect, or (b) all of the data is being received but the not all of it is being buffered. Either way, the fundamental problem you have is that your reader is not fast enough. What is your application? Have you tried a simple test jig that only reads data without processing it to see if the application is the problem? What h/w platform is this? You mentioned earlier you're running 3.4.35. That's really old; current 3.4 is .108. Where did you get this kernel? Regards, Peter Hurley PS - Please stop top-posting. See how I had to reiterate your linux version... >>> I think the generic USB driver ignores baud rate. Like Greg suggested, >>you need to >>> use the proper driver for your hardware. > > I did't find any other suitable driver inside Linux. > I checked this device in windows in that usbser.sys is detecting(.inf > file is attached with the mail). > > Could you suggest any available drivers for my device. Sorry I am > very new to Linux drivers. > I will post my USB device descriptor values below > > [ 1291.908071] ## udev->descriptor.bLength 0x12 > [ 1291.908089] ## udev->descriptor.bDescriptorType 0x1 > [ 1291.908147] ## udev->descriptor.bcdUSB 0x200 > [ 1291.908165] ## udev->descriptor.bDeviceClass 0xef > [ 1291.908181] ## udev->descriptor.bDeviceSubClass 0x2 > [ 1291.908196] ## udev->descriptor.bDeviceProtocol 0x1 > [ 1291.908211] ## udev->descriptor.bMaxPacketSize0 0x40 > [ 1291.908226] ## udev->descriptor.idVendor 0x45b > [ 1291.908241] ## udev->descriptor.idProduct 0x218 > [ 1291.908255] ## udev->descriptor.bcdDevice 0x1 > [ 1291.908270] ## udev->descriptor.iManufacturer 0x0 > [ 1291.908284] ## udev->descriptor.iProduct 0x0 > [ 1291.908298] ## udev->descriptor.iSerialNumber 0x0 > [ 1291.908313] ## udev->descriptor.bNumConfigurations 0x1 > > Regards, > Arun > > > > > > > > > > > > On Wed, Aug 5, 2015 at 9:31 PM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> wrote: >> On 08/04/2015 11:57 PM, arun k wrote: >>>> Ok, but does the sending device know how to process in-band software flow control >>>> and is it set up to respond properly? >>> >>> I am not sure about this. I need to check this. >>> >>>> Also, I doubt software flow control is going to work @ 4Mbaud line rate. >>>> If you're stuck using software flow control, start with a 115kbaud line rate >>>> and see if that fixes your data loss problem >>> >>> I tried B115200 also but issue is still there. >> >> I think the generic USB driver ignores baud rate. Like Greg suggested, you need to >> use the proper driver for your hardware. >> >> What is the output from 'lsusb -v' and please identify in that output which >> device you are using. >> >>> I am using a USB device and that sending data at a rate of *409600 bytes/sec*. Is this data rate have any relation with issue. >> >> Yes. Also, can you test this on a newer kernel like 3.18? >> >> Regards, >> Peter Hurley >> >>> On Wed, Aug 5, 2015 at 11:24 AM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx <mailto:peter@xxxxxxxxxxxxxxxxxx>> wrote: >>> >>> On 08/04/2015 10:00 PM, arun k wrote: >>> > I enabled software flow control like below >>> > >>> > tty.c_iflag |= (IXON | IXOFF | IXANY); >>> >>> Ok, but does the sending device know how to process in-band software flow control >>> and is it set up to respond properly? >>> >>> Also, I doubt software flow control is going to work @ 4Mbaud line rate. >>> If you're stuck using software flow control, start with a 115kbaud line rate >>> and see if that fixes your data loss problem. >>> >>> Regards, >>> Peter Hurley >>> >>> >>> > On Wed, Aug 5, 2015 at 12:59 AM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx <mailto:peter@xxxxxxxxxxxxxxxxxx>> wrote: >>> >> On 08/03/2015 10:47 PM, arun k wrote: >>> >>> Thank you for the reply >>> >>> >>> >>>>> The tty layer is limiting you, just keep reading in a loop until you >>> >>>>> run out of data, you should not ever expect to read a specific number of >>> >>>>> bytes from a tty device at a time, the read call will tell you the >>> >>>>> number that was read properly. >>> >>> >>> >>> I tried this method but in my case I found data loss. By changing any buffer size modification in driver side , can we fix this issue ? >>> >> >>> >> The data loss is probably occurring because you have all flow control disabled >>> >> and the line speed is too fast for no flow control. >>> >> >>> >> Regards, >>> >> Peter Hurley >>> >> >>> >>>>> Please don't use the "generic" driver, it's slow and not the best to >>> >>>>> use >>> >>> >>> >>> Could you tell me is generic driver is suitable for my application ( My usb device sending data at a rate of 409600 bytes/sec) , ? >>> >>> or do you have any other suggestion for me ? >>> >>> >>> >>> My Linux kernel version is 3.4.35 >>> >>> >>> >>> Regards, >>> >>> Arun >>> >>> >>> >>> On Tue, Aug 4, 2015 at 1:13 AM, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx <mailto:gregkh@xxxxxxxxxxxxxxxxxxx> <mailto:gregkh@xxxxxxxxxxxxxxxxxxx <mailto:gregkh@xxxxxxxxxxxxxxxxxxx>>> wrote: >>> >>> >>> >>> On Mon, Aug 03, 2015 at 04:44:07PM +0900, arun k wrote: >>> >>> > Hi , >>> >>> > >>> >>> > I have a trouble with using usb serial generic device. >>> >>> > I am using USB - Generic Serial driver for communicating with my usb >>> >>> > device and my embedded device. >>> >>> >>> >>> Please don't use the "generic" driver, it's slow and not the best to >>> >>> use. >>> >>> >>> >>> > My usb device sending data at a rate of 409600 bytes/sec, and in host >>> >>> > side application I tried to read 16384 bytes in one read. But the read >>> >>> > size returning is always 4095 >>> >>> >>> >>> The tty layer is limiting you, just keep reading in a loop until you >>> >>> run out of data, you should not ever expect to read a specific number of >>> >>> bytes from a tty device at a time, the read call will tell you the >>> >>> number that was read properly. >>> >>> >>> >>> thanks, >>> >>> >>> >>> greg k-h >>> >>> >>> >>> >>> >> >>> >>> >> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html