Well, I was able to solve the problem by setting a loop to transfer the data byte by byte. I had been using "strncpy(map_buffer, dma_buffer, dma_count)" to transfer the data.
Why was this a problem and why did it behave so strangly? When the data was fairly uniform there were no problems. But, when the was a discouniuity in the date the transfer would latch the rest of the dma transfer data to 0?? Very Odd.
strncpy is defined in the kernel and should be usable with vmalloc if anything else.....
Any Ideas??? I would really like to understand the mechanism inside the kernel that caused this problem.