I’ve recently upgraded my system to running the linux kernel 2.6.39 from http://www.kernel.org/ and I noticed a change in my application.
I read a large set of binary data from a serial port, requesting a large size chunk, and re-requesting data until my read operation has completely read the data I’m looking for.
On the previous version of the kernel I was consistently getting data in block sizes of around 89. Since I’ve switched to 2.6.39 it seems that all of my read requests return a maximum of 16 bytes.
I’ve looked in the files arch/arm/mach-omap2/serial.c and arch/arm/mach-omap2/board-omap3beagle.c but did not seem to find references to a uart buffer size.
My program handles the smaller number being returned, but creates more debugging track points since it use more looping to get the entire data set. I’m just wondering if anyone knows where the code that changed is located, so that I can read about the reasoning behind the change, or if it’s now a modifiable structure at runtime that I’m not initializing somewhere?