[Q1] How can we specify the line timing range of our sensor?
The current SCF/Argus framework expects that for each mode, the line time is assumed to be constant. The exact line time is devised from:
pix_clk_hz = "576000000"; line_length = "4408";
But all sensors we worked with allow specifying the line length with a register (e.g. HMAX), to allow fine selection of the framer rate. Argus has only a framerate selection control, not a line length control. This is too unprofessional and very sad to see in the expensive Tegra product.
[Q2] How can we specify frame-rate dependant exposure time
In the current DT properties, the exposure time has to be specified. But what range to specify when the framerate is allowed to change between the minfps and maxfps value? The exposure time range is really dependant on the FPS selected. If the exposure time value is longer than (roughly) the 1/maxfps, the fps throttling will occur, since the exposure will span over multiple base-frames.
min_framerate = "1.5"; /* defined by hardcoded timeouts in SCF */ max_framerate = "42.152099"; /* fps at HMAX=551 VMAX=3100 */ min_exp_time = "30.611"; /* 4 x 7.653 usec */ max_exp_time = "666666.667"; /* 1/1.5 x 10^6 usec */
We want to use the Tegra platform for a professional camera system, but these limits render your super-expensive hardware into the region of proof-of-concept toys. Who has designed the SCF/Argus with such weird limits? We need much more flexibility, than your limited abstraction.