V4L/DVB: gscpa_sonixb: Differentiate between sensors with a coarse and fine expo...
authorHans de Goede <hdegoede@redhat.com>
Mon, 1 Feb 2010 16:18:37 +0000 (13:18 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 26 Feb 2010 18:11:08 +0000 (15:11 -0300)
commit26984b09952d01afabaa38e747fbee083dde0374
treeffcb10b2cac77eb4951ad1c3d1f7ddf3b6ed74bb
parent4efcfa0af11d75fa6311ef62180eefcd654be3c1
V4L/DVB: gscpa_sonixb: Differentiate between sensors with a coarse and fine expo ctrl

Some sensors only allow controlling the exposure by changing the clockdiv,
which means that exposure takes pretty large jumps (for example when going
from a div of 1 to 2, the exposure doubles). Use 2 different entries in
the controls array for these 2 different types of exposure (always
disabling one), and;

Add a new autogain algorithm for the coarse exposure case, which normally
changes the gain setting, only touching the exposure setting if the desired
luminance cannot be reached with gain, and after an exposure change once more
first tries gain, etc. Thus avoiding exposure changes, and the resulting
oscilation because of the huge steps these exposure controls take.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/coarse_expo_autogain.h [new file with mode: 0644]
drivers/media/video/gspca/gspca.c
drivers/media/video/gspca/sonixb.c