SUMMARY: This ports changes from 2.13 - 2.16+ to the 1.x driver series. The biggest change is support for OV518 color. Lots of other small improvements too. PER-FILE CHANGES: (+: New, -: Removed, *: Cleanup, @: Bugfix, =: Sync with kernel) [Makefile] - Remove remaining MMX bits [ov511.c] + Enable OV518 color by default (2.16) + Add a "can_decompress" flag to /proc info file; tells whether appropriate decompression code was compiled in. (2.13) + Optimize ov_w_mask() for mask == 0xff case (2.15) * Don't print errors from low-level I2C functions (make them debug messages). Otherwise they just spew false errors during detection. The higher layers can print the errors if necessary. (2.22) * Make OV7620 contrast table static; saves 16 bytes of stack (2.15) * Remove unused KS0127 code and some dead SAA7111A bits (2.01, 2.09) * Rewrite logic for handling sensor downsampling/centering/clock/subcapture. Adding support for new devices will be much easier now. (2.14+) @ Use mask when modifying sensor register 0x14 (part 5 of color fixes) (2.16+) - Remove some useless "Invalid sensor" error messages (new) @ Don't write OV6630 register 0x13 after init, or color will break. Even writing the current value breaks it! (part 6 of color fixes) (2.16) - Disable OV6630 greyscale support, as it's not working yet (new) @ Disable "clock down" code for OV6630. (part 7 of color fixes) (2.16) @ Force sensor's clock divider to 0 with OV518 (part 1 of color fixes) (2.16) @ Disable OV518 U/V swap (part 2 of color fixes) (2.16) @ Increase OV518's clock divider from 2 to 4 (part 3 of color fixes) (2.16) + Increase OV518 packet size to maximum. This required changes to the CBRs to prevent the internal buffers from overflowing. The framerate is only limited by the sensor now. (2.16) @ Fix capture state machine in *move_data(). It was checking the wrong frame's status. (2.16) @ Fix OV511IOC_GINTVER (2.22) * Rename regval arrays to be more in-line with kernel coding style (2.15) * Remove some duplicated sensor init code, and increase I2C retries to compensate (2.16) * Remove message about "511+/7620AE" workaround (2.14) @ Use OV6630 initial register settings from the Windows driver (part 4 of color fixes) (2.16) * Move a discrete OV518(+) register setting into the register arrays (2.15) [ov511.h] * Remove some unused #defines and fix up a comment (2.16) + Add struct ovsensor_window (2.06+) [ov511.txt] @ Documentation fixes (2.13) [ov511_decomp.c] * Trivial cleanups (2.14) [ov518_decomp.c] * Trivial cleanups (2.14) - Remove "nouv" module param. Not needed since color works now (2.13+) - Remove "staticquant" module param (2.13, 2.14) - Don't explicitly set the unused bytes in the Huffman tables (2.14) - Remove some unused code (2.18)