SUMMARY: This version separates the ov511 and ovfx2 code from the image sensor code, which lives completely in ovsensor.o now. You must load this module either before or after the ov511 or ovfx2 modules (unless you have an OV511-based TV capture box, in which case you load saa7111-new.o). Autoloading will be added after I get some bugs worked out. PER-FILE CHANGES: (+: New, -: Removed, *: Cleanup, @: Bugfix, =: Sync with kernel) [Makefile] + Make ovsensor.o be a module + Add ovfx2.h - Remove some dead install stuff [README] + Add instructions on module loading [Both USB drivers] - Move sensor detection/initialization code to ovsensor.[ch] @ Prevent garbage value for exposure from appearing in /proc/.../info + Add I2C code for handling the new ovsensor driver + Improved I2C debugging @ Take ov->lock during I2C attach, otherwise the video device or /proc could access the sensor code before we're done setting it up. @ Don't modify the value in sensor_get_control() if the underlying call failed. - Remove param_lock since it was never used [ov511.c] @ With OV518(+), reject xfers at unknown I2C addresses more aggressively. Otherwise, saa7111-new will attach to all OV518(+) cameras. @ With OV518(+), reject the attach of all I2C drivers besides ovsensor @ Don't try to do sensor_set_*() during mode_init() if the I2C client isn't ovsensor. [ov511.h] - Remove stuff that was needed by old sensor code [All sensor drivers] * Remove direct linkage to ov511/ovfx2, replace with i2c code where appropriate [ovfx2.c] - Move some defines to the (newly added) ovfx2.h - Remove ioctl-on-/proc control hack (V4L2 will supplant this eventually) - Remove some useless/unused /proc/.../info entries - Remove some leftover ov511 tuner and video decoder code [ovfx2.h] + File added @ FX2 needs NUMSBUF = 8 for image stability + Add USB ID defines [ovsensor.c] + Convert to an I2C module + Add sensor detection/initialization code @ Fix an instance of schedule_timeout() without set_current_state() first + Implement OVSENSOR_CMD_Q_SUBTYPE command [ovsensor.h] * Move/copy some stuff between here from ov511.h + Ad struct ovsensor and OVSENSOR_CMD_Q_SUBTYPE command