SUMMARY: The kernel I2C interface has been rewritten. It is much less complex and hacked together than before. Some serious problems with TV capture (SAA7111A) devices have been fixed too. Also, OV518 cameras that weren't working before should work now. PER-FILE CHANGES: - Makefile: - Change i2c-algo-usb* to i2c-algo-sccb* - Pass EXPORT_SYMTAB define to targets that need it - ov511.c was missing i2c-algo-sccb.h dependency - i2c-algo-sccb.c - Rewritten from i2c-algo-usb.c - Removed 10-bit addressing, address probing logic, delays, and other useless rubbish that doesn't apply to OV511/OV518 - Rewrite xfer function for new interface - Add sccb_write(), based on ov511_i2c_w_raw from ov511.c - Update module versioning code - i2c-algo-sccb.h - Rewritten from i2c-algo-usb.h - Add new features to struct i2c_algo_sccb_data, and remove obsolete ones - Don't include linux/i2c.h from here - ov511.c: - EXPORT_SYMTAB is defined when necessary by Makefile now - Update for new i2c-algo-sccb interface: Add write_2, write_3, read_2, validate_addr, and set_addr functions; remove ov511_i2c_w_raw, ov51x_i2c_write_multiple, and ov51x_i2c_read_multiple functions. - Depth and palette weren't getting set on VIDIOCGPICT ioctls with SAA7111A devices, causing apps to fail. Set them directly in ioctl function so this won't happen again. - Don't print palette errors by default, since that is a normal part of a V4L app's probing process. Make them debug=2 instead. - Detect OV518 cameras that have packet numbering enabled by default and set ov->packet_numbering accordingly. This should fix the problems some users were having with babble (USB error -75) and cameras not working at all. - Kernel I2C interface was being started up too late, and shut down too early - Fixed memory/resource leak: I2C bus wasn't being deleted if error occurs in ov51x_probe() - ov511.h - Change i2c-algo-usb* to i2c-algo-sccb* - saa7111-new.c: - Add module versioning code