Would anybody help me get started?  I need to bring 16 bits of data into the gumstix at a rate of 1 Million 16-bit samples per second.  I have an additional 1 bit signal that tells me when the data is valid.  I'd like to interrupt on the "valid data" signal, and then capture the 16-bit data to a buffer.  When the buffer gets full I want to signal a program in the XScale to process he data, and then start storing new data into a second buffer while processing the first buffer.  I can reduce the 1 Million 16-bit samples per second requirement some, but that's my goal.
I plan on building a device driver to handle the interrupt, and to buffer the data.  I plan on a user mode program to process the data, and a usr_signal sent by the driver to trigger the user code.  Would a semaphore be better?  I have one of the breakout-gs boards, and from a cursory examination of the PXA255 developers manual it looks like the LCD ports can be set up as GPIO'S, so until I find a problem I plan on using the LCD GPIO's for the 16 bit data.  I don't know which pin to use for an interrupt pin.
I've done this stuff before, but I'm new to Linux, and to the PXA255.  Does any of this approach sound bad?
Does anyone know of any sample code that does anything like this?
Like always, I have a short time frame to develop this code.  Anybody know where to obtain this type of info without searching through thousands of pages of manuals?
Thanks for any assistance.