There are 2 drivers upstream: drivers/usb/host/r8a66597-hcd.c and drivers/usb/renesas_usbhs/. As you mentioned, r8a66597-hcd.c is not much different than what is in the current Linux-3.14 BSP (except the RZ/A1 BSP version has some bug-fixes that I haven't pushed upstream yet). I think the newer renesas_usbhs version supports DMA, but hasn't been ported to the RZ/A1 yet.
> Do you know if DMA will be added to the RZA1 BSP kernel? Thank you.
Actually, this is the first request for DMA for that driver. I see that most users are using it for USB WiFi or USB flash drive and there has not been an issue. The current plan now is to move the RZ/A1 BSP to Linux 4.9, and possibly use that new USB driver instead of the older r8a66597-hcd.c version.
Going back to your command line for capturing a single image:
fswebcam -v --device /dev/video0 -D 1 --input 0 --resolution 640x480 -S 2 --no-banner -p YUYV --save webcam.yuyv
The "-S 2" means skip 2 frames and takes the 3rd. If you just pull in 1 frame, does it look OK?
The other idea I had was if you are just using fswebcam to pull in raw YUV frame from a V4L2 device, you could just write a simple app that does that manually and then you could adjust the frame to frame timing. If you look at this app note:
It has a simple app that reads in images from a standard V4L2 device. In its case it's using the CEU driver because a OV7670 is a digital camera with a traditional 8-bit parallel interface (not USB). But, the sample code should be more or less the same: Request an image from a V4L2 device a frame at a time (probably just need a couple small tweaks to the sample code).