SUMMARY: The biggest change is TV tuner support. The ovfx2 driver is more stable now too. Lots of random fixes and cleanups as well. PER-FILE CHANGES: (+: New, -: Removed, *: Cleanup, @: Bugfix, =: Sync with kernel) [Makefile] + Add tda7313.o and tuner.o targets [Both USB drivers] + Notify sensor code during initialization as to whether the sensor is monochrome or not. * Give V4L functions better names * Centralize code for printing ioctl names * Clean up the debug/error messages in ioctl() * usb_make_path() cleanups [ov511.c] @ Fix ov511.h/tuner.h include order problem + Add "dev_hint" module param, for associating OV511 custom IDs with video device nodes + Add preliminary V4L2 support (non-functional at the moment) + Add 7 new custom IDs + Show current V4L input ("channel") in /proc * Get rid of quantization table #ifdefs @ Rejection of unwanted I2C clients and addresses was not strict enough @ Support for i2c_smbus_write_byte() was completely broken + Add TDA7313/PT2312L audiochip support @ OV7x20 clock divider was being miscalculated when subcapture is enabled * Move input selection code from do_ioctl() to a separate function + Add VIDIOC[GS]AUDIO ioctls + Print custom ID next to camera name + More complete tuner detection and monochrome sensor detection [ov511.h] * usb_make_path() cleanups + Add usb_ov511.sensor_mono * Minor cleanups [ov511.txt] + Document "dev_hint" and "v4l2" module params [ov6x30.c] @ "QVGA" -> "QCIF" [ov6x30.c] * Remove some unnecessary register settings @ "QVGA" -> "QCIF" @ QCIF mode was broken (mask was 0x00!) [ov7x20.c] * Make #defines for some default reg settings + Add beginnings of V4L2 support [All sensor drivers] * Rename *_configure() to *_init() and *_unconfigure() to *_free() [ovfx2.c] * Rename ov511 to ovfx2 everywhere * Begin reorganizing framebuffer management code @ Change the STATE_* buffer management flags to more closely match the hardware @ Interrupt handler was starting frame capture too early (before first frame boundary is detected). @ Discard the first 2560 bytes (two lines @ 640x480x16) of image data, as they seem to be junk. Frames are now captured correctly most of the time. @ Don't wake up user from interrupt handler for the same frame more than once @ In ovfx2_new_frame, make sure to handle the FRAME_ERROR case [ovfx2.h] * Rename ov511 to ovfx2 everywhere @ Increase BULK packet size to 32768 (seems to improve performance) * usb_make_path() cleanups @ Change the STATE_* buffer management flags to more closely match the hardware [ovsensor.c] + Enhance "mono" module param: specifying "0" will force color to be enabled + Handle adapter driver passing monochrome flag during register init + Add initial V4L2 custom controls support + Defer register init until adapter driver calls OVSENSOR_CMD_INITIALIZE = Add i2c_driver.owner for 2.5 kernel @ Fix use of EXPORT_NO_SYMBOLS [ovsensor.h] @ I2C ID @defines were incorrect + Add OVSENSOR_CMD_INITIALIZE command * Make struct ovsensor_control be identical to its V4L2 counterpart + Add struct members for various new features * Remove a dead function prototype, add one for ovsensor_get_qc() [audiochip.h] (from 2.5.62 kernel) [id.h] (from 2.5.62 kernel) [tda7313.c] (Written from scratch) [tuner.c] (from 2.5.62 kernel, with added SMBus compatibility) [tuner.h] (from 2.5.62 kernel) + Files added for tuner/audiochip support