Thanks for the comments Sylvain, I did wonder if you'd chosen the BRAM deliberately - and yes I admit it does seem a bit of a waste of another BRAM block just for an extra 650 odd pixels. I'm not sure what the consensus of opinion would be; resolutions over 1080p or an extra free BRAM block? Personally I think I'd chose the extra resolution, until of course, I ran out of space! However, I'll revert the debayer and restrict the driver to only raw mode over 1080p if you think that's best?
Tab vs spaces - noted. Sorry, force of habit.
I'm from a hardware background and tabs were frowned upon where I used to work.
The LEVEL_SHIFTER define: I couldn't get the camera to transfer data successfully on your original settings for the higher resolutions and my assumption was that the lack of the resistor network described in the XIlinx app note to correct for the difference in logic levels was the reason for this. So I dropped the clock frequency until it worked. If your board also has no resistors added then maybe there's something else wrong with my set-up?
Thanks Andreas, I'll make the changes as above and then submit a pull request.
Seasonal greetings to you also!
Jason