Thank you for that comment and I already looked at the page.
My DMA is setup sort of like a ping pong. What I did was a link list of 100 descriptors, which will fill an array of 100 variables. This allowed me to just get 100 samples and then stop the ADC, since I am just doing a proof of concept I thought this was the easiest way to verify the idea. In the final design I will use a ping pong descriptor and continually read the ADC.
This DMA read is the same as what I had in the original post, and was the reason I asked for help. Although at that time I was not sure the ADC was working properly. After your other comments I was able to determine the ADC is in fact running at required speeds, but it seems the DMA is running at a much slower speed.
Can you tell if I am doing something incorrect in the DMA setup to justify the speed reduction?