Thanks Maxime for this great series ! I've tested this series successfully on STM32 platform, I had a regression on JPEG capture linked to revisit of clocking, but easy to fix. I had another problem claimed by v4l2-compliance on format tests: v4l2-test-formats.cpp(961): Video Capture: S_FMT(G_FMT) != G_FMT this was more tricky to fix, it is linked to changes around framerate handling. See my further comments in corresponding patchsets. Best regards, Hugues. On 03/02/2018 03:34 PM, Maxime Ripard wrote: > Hi, > > Here is a "small" series that mostly cleans up the ov5640 driver code, > slowly getting rid of the big data array for more understandable code > (hopefully). > > The biggest addition would be the clock rate computation at runtime, > instead of relying on those arrays to setup the clock tree > properly. As a side effect, it fixes the framerate that was off by > around 10% on the smaller resolutions, and we now support 60fps. > > This also introduces a bunch of new features. > > Let me know what you think, > Maxime > > Maxime Ripard (10): > media: ov5640: Don't force the auto exposure state at start time > media: ov5640: Init properly the SCLK dividers > media: ov5640: Change horizontal and vertical resolutions name > media: ov5640: Add horizontal and vertical totals > media: ov5640: Program the visible resolution > media: ov5640: Adjust the clock based on the expected rate > media: ov5640: Compute the clock rate at runtime > media: ov5640: Enhance FPS handling > media: ov5640: Add 60 fps support > media: ov5640: Remove duplicate auto-exposure setup > > Mylène Josserand (2): > media: ov5640: Add auto-focus feature > media: ov5640: Add light frequency control > > drivers/media/i2c/ov5640.c | 777 ++++++++++++++++++++++++++------------------- > 1 file changed, 452 insertions(+), 325 deletions(-) >