linux_dsm_epyc7002/drivers/media/video
Johannes Obermaier 32127363ee [media] mt9v011: Fixed gain calculation
The implementation of the gain calculation for this sensor is incorrect.
It is only working for the first 127 values.

The reason is, that the gain cannot be set directly by writing a value
into the gain registers of the sensor. The gain register work this way
(see datasheet page 24): bits 0 to 6 are called "initial gain". These
are linear. But bits 7 and 8 ("analog multiplicative factors") and bits
9 and 10 ("digital multiplicative factors") work completely different:
Each of these bits increase the gain by the factor 2. So if the bits
7-10 are 0011, 0110, 1100 or 0101 for example, the gain from bits 0-6 is
multiplied by 4. The order of the bits 7-10 is not important for the
resulting gain. (But there are some recommended values for low noise)

The current driver doesn't do this correctly: If the current gain is 000
0111 1111 (127) and the gain is increased by 1, you would expect the
image to become brighter. But the image is completly dark, because the
new gain is 000 1000 0000 (128). This means: Initial gain of 0,
multiplied by 2. The result is 0.

This patch adds a new function which does the gain calculation and also
fixes the same bug for red_balance and blue_balance. Additionally, the
driver follows the recommendation from the datasheet, which says, that
the gain should always be above 0x0020.

Tested-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Johannes Obermaier <johannes.obermaier@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-07-27 17:52:25 -03:00
..
au0828 Fix common misspellings 2011-03-31 11:26:23 -03:00
bt8xx [media] bttv: fix s_tuner for radio 2011-07-07 15:03:00 -03:00
cpia2 [media] cpia2: fix warning about invalid trigraph sequence 2011-05-25 21:42:19 -03:00
cx18 [media] cx18/ivtv: fix g_tuner support 2011-07-07 15:07:43 -03:00
cx88 [media] cx88: don't use atomic_t for core->users 2011-05-20 09:29:43 -03:00
cx231xx Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-05-26 13:19:00 -07:00
cx23885 [media] cx23885: restore flushes of cx23885_dev work items 2011-07-27 17:52:18 -03:00
cx25840 Fix common misspellings 2011-03-31 11:26:23 -03:00
davinci Fix common misspellings 2011-03-31 11:26:23 -03:00
em28xx [media] em28xx: use the proper prefix for board names 2011-07-27 17:52:16 -03:00
et61x251 [media] et61x251: remove wrongly claimed usb ids 2011-01-19 11:45:01 -02:00
gspca [media] gspca - ov519: New sensor ov9600 with bridge ovfx2 2011-07-27 17:52:06 -03:00
hdpvr [media] hdpvr: use same polling interval as other OS 2011-03-22 19:24:19 -03:00
ivtv [media] cx18/ivtv: fix g_tuner support 2011-07-07 15:07:43 -03:00
m5mols [media] m5mols: Use proper email address format 2011-06-11 09:46:00 -03:00
omap [media] omap_vout: Added check in reqbuf & mmap for buf_size allocation 2011-07-01 15:47:53 -03:00
omap3isp [media] media: omap3isp: fix a potential NULL deref 2011-06-30 23:01:05 -03:00
pvrusb2 [media] pvrusb2: fix g/s_tuner support 2011-07-07 15:02:40 -03:00
pwc [media] pwc: better usb disconnect handling 2011-06-21 13:31:12 -03:00
s5p-fimc [media] s5p-fimc: Update copyright notices 2011-06-11 09:45:43 -03:00
saa7134 [media] saa7134: fix raw IR timeout value 2011-07-01 16:33:20 -03:00
saa7164 [media] saa7164: poll mask set incorrectly 2011-07-27 17:52:18 -03:00
sn9c102 Fix common misspellings 2011-03-31 11:26:23 -03:00
tlg2300 [media] drivers/media/video/tlg2300/pd-video.c: Remove second mutex_unlock in pd_vidioc_s_fmt 2011-03-22 06:51:57 -03:00
usbvision Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-05-23 21:12:49 -07:00
uvc [media] uvcvideo: Disable the queue when failing to start 2011-06-30 23:19:16 -03:00
zoran [media] zoran: Drop unused module parameters encoder and decoder 2011-05-20 09:28:21 -03:00
adv7170.c V4L/DVB: adv7170: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:04 -02:00
adv7175.c [media] adv7175: support s_power 2011-01-19 11:45:55 -02:00
adv7180.c V4L/DVB: v4l: remove unused i2c-id.h headers 2010-10-21 01:06:05 -02:00
adv7343_regs.h [media] adv7343: use control framework 2011-03-21 20:31:49 -03:00
adv7343.c [media] adv7343: use control framework 2011-03-21 20:31:49 -03:00
ak881x.c
arv.c [media] BKL: trivial ioctl -> unlocked_ioctl video driver conversions 2010-12-01 20:10:10 -02:00
bt819.c [media] bt819: use control framework 2011-03-21 20:31:49 -03:00
bt856.c V4L/DVB: bt856: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
bt866.c V4L/DVB: bt866: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:00 -02:00
btcx-risc.c
btcx-risc.h
bw-qcam.c [media] BKL: trivial ioctl -> unlocked_ioctl video driver conversions 2010-12-01 20:10:10 -02:00
c-qcam.c [media] BKL: trivial ioctl -> unlocked_ioctl video driver conversions 2010-12-01 20:10:10 -02:00
cafe_ccic-regs.h
cafe_ccic.c Fix common misspellings 2011-03-31 11:26:23 -03:00
cs53l32a.c V4L/DVB: cs53l32a: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
cs5345.c [media] cs5345: use the control framework 2011-03-21 20:31:49 -03:00
cs8420.h
cx2341x.c [media] v4l2-ctrls: use const char * const * for the menu arrays 2010-12-30 08:02:14 -02:00
fsl-viu.c [media] media: fsl_viu: fix bug in streamon routine 2011-05-20 09:29:59 -03:00
hexium_gemini.c Fix common misspellings 2011-03-31 11:26:23 -03:00
hexium_orion.c [media] v4l: fix handling of v4l2_input.capabilities 2010-12-30 08:02:29 -02:00
ibmmpeg2.h
imx074.c [media] imx074: return a meaningful error code instead of -1 2011-04-13 09:54:35 -03:00
indycam.c V4L/DVB: indycam: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
indycam.h
ir-kbd-i2c.c [media] ir-kbd-i2c: pass device code w/key in hauppauge case 2011-03-22 19:24:18 -03:00
Kconfig [media] s5p-csis: Add missing dependency on PLAT_S5P 2011-05-25 20:08:08 -03:00
ks0127.c V4L/DVB: ks0127: remove obsolete v4l2_i2c_drv.h header 2010-10-21 01:06:04 -02:00
ks0127.h
m52790.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
Makefile [media] Add support for M-5MOLS 8 Mega Pixel camera ISP 2011-05-25 07:51:18 -03:00
mem2mem_testdev.c [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
meye.c [media] v4l2-ioctl: add priority handling support 2011-03-22 16:37:59 -03:00
meye.h
msp3400-driver.c [media] msp3400: fill in v4l2_tuner based on vt->type field 2011-07-07 17:28:30 -03:00
msp3400-driver.h V4L/DVB: msp3400: convert to the new control framework 2010-08-08 23:43:04 -03:00
msp3400-kthreads.c Fix common misspellings 2011-03-31 11:26:23 -03:00
mt9m001.c [media] v4l: Rename V4L2_MBUS_FMT_GREY8_1X8 to V4L2_MBUS_FMT_Y8_1X8 2011-03-22 04:53:23 -03:00
mt9m111.c [media] V4L: mt9m111: fix pixel clock 2011-05-20 12:07:12 -03:00
mt9t031.c [media] media: video: do not clear 'driver' from an i2c_client 2010-12-29 08:16:47 -02:00
mt9t112.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
mt9v011.c [media] mt9v011: Fixed gain calculation 2011-07-27 17:52:25 -03:00
mt9v022.c [media] V4L: mt9v022: fix pixel clock 2011-05-20 12:07:04 -03:00
mt9v032.c [media] v4l: Add mt9v032 sensor driver 2011-05-20 09:29:49 -03:00
mx1_camera.c [media] V4L: mx1-camera: fix uninitialized variable 2011-07-01 15:51:34 -03:00
mx2_camera.c [media] v4l: soc-camera: switch to .unlocked_ioctl 2010-12-30 22:29:26 -02:00
mx3_camera.c [media] V4L: soc-camera: a missing mediabus code -> fourcc translation is not critical 2011-05-20 12:06:46 -03:00
mxb.c [media] v4l2-ioctl: add priority handling support 2011-03-22 16:37:59 -03:00
mxb.h
noon010pc30.c [media] Add v4l2 subdev driver for NOON010PC30L image sensor 2011-03-21 20:31:40 -03:00
omap1_camera.c [media] V4L: soc-camera: a missing mediabus code -> fourcc translation is not critical 2011-05-20 12:06:46 -03:00
omap24xxcam-dma.c
omap24xxcam.c [media] omap24xxcam: Fix compilation 2011-03-21 20:32:19 -03:00
omap24xxcam.h
ov772x.c [media] v4l: ov772x: simplify pointer dereference 2010-12-30 22:29:23 -02:00
ov2640.c [media] V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV2640 sensor 2010-12-30 22:29:34 -02:00
ov6650.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ov7670.c [media] v4l2-subdev: remove core.s_config and v4l2_i2c_new_subdev_cfg() 2011-01-19 11:45:30 -02:00
ov7670.h [media] ov7670: allow configuration of image size, clock speed, and I/O method 2010-10-23 13:09:23 -02:00
ov9640.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ov9640.h
ov9740.c [media] V4L: Initial submit of OV9740 driver 2011-03-21 20:32:16 -03:00
pms.c [media] BKL: trivial ioctl -> unlocked_ioctl video driver conversions 2010-12-01 20:10:10 -02:00
pxa_camera.c [media] V4L: soc-camera: a missing mediabus code -> fourcc translation is not critical 2011-05-20 12:06:46 -03:00
rj54n1cb0c.c [media] media: video: do not clear 'driver' from an i2c_client 2010-12-29 08:16:47 -02:00
s2255drv.c [media] s2255drv: jpeg enable module parameter 2011-05-20 09:28:41 -03:00
saa711x_regs.h
saa717x.c V4L/DVB: saa717x: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:58 -02:00
saa6588.c [media] saa6588: rename rds.h to saa6588.h 2010-12-29 08:17:18 -02:00
saa7110.c [media] saa7110: use control framework 2011-03-21 20:31:50 -03:00
saa7115.c [media] fix saa7111 non-detection 2011-01-31 14:19:50 -02:00
saa7121.h
saa7127.c V4L/DVB: saa7127: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:04 -02:00
saa7146.h
saa7146reg.h
saa7185.c V4L/DVB: saa7185: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
saa7191.c V4L/DVB: saa7191: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
saa7191.h
sh_mobile_ceu_camera.c [media] V4L: soc-camera: a missing mediabus code -> fourcc translation is not critical 2011-05-20 12:06:46 -03:00
sh_mobile_csi2.c [media] sh_mobile_csi2: fix module reloading 2011-04-13 09:55:38 -03:00
sh_vou.c Merge branch 'bkl_removal' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2010-12-17 09:28:17 -08:00
soc_camera_platform.c
soc_camera.c [media] soc_camera: preserve const attribute 2011-06-01 15:03:56 -03:00
soc_mediabus.c [media] V4L: soc-camera: add more format look-up entries 2011-05-20 12:05:27 -03:00
sr030pc30.c [media] v4l2-subdev: remove core.s_config and v4l2_i2c_new_subdev_cfg() 2011-01-19 11:45:30 -02:00
stk-sensor.c
stk-webcam.c [media] stk-webcam: remove V4L1 compatibility code, replace with V4L2 controls 2010-12-29 08:17:09 -02:00
stk-webcam.h
tcm825x.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tcm825x.h
tda7432.c V4L/DVB: tda7432: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
tda9840.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
tea6415c.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
tea6415c.h
tea6420.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
tea6420.h
ths7303.c
timblogiw.c mfd: Use mfd cell platform_data for timberdale cells platform bits 2011-05-26 19:45:05 +02:00
tlv320aic23b.c [media] tlv320aic23b: use control framework 2011-03-21 20:31:50 -03:00
tuner-core.c [media] tuner-core: fix a 2.6.39 regression with mt20xx 2011-07-13 20:21:00 -03:00
tvaudio.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tveeprom.c [media] tveeprom: update hauppauge tuner list thru 174 2011-05-20 09:27:15 -03:00
tvp514x_regs.h
tvp514x.c [media] tvp514x: use the control framework 2011-03-21 20:31:50 -03:00
tvp5150_reg.h
tvp5150.c [media] tvp5150: device detection should be done only once 2011-03-21 20:32:04 -03:00
tvp7002_reg.h
tvp7002.c [media] tvp7002: use control framework 2011-03-21 20:31:50 -03:00
tw9910.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
upd64031a.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
upd64083.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
v4l2-common.c [media] v4l2_prio: move from v4l2-common to v4l2-dev 2011-03-22 16:37:54 -03:00
v4l2-compat-ioctl32.c [media] v4l: removal of old, obsolete ioctls 2011-03-21 20:32:12 -03:00
v4l2-ctrls.c [media] v4l2-ctrls: Fix control enumeration for multiple subdevs with ctrl 2011-03-21 20:32:04 -03:00
v4l2-dev.c [media] v4l: Don't access media entity after is has been destroyed 2011-06-30 23:12:36 -03:00
v4l2-device.c [media] v4l: Release module if subdev registration fails 2011-05-04 16:22:39 -03:00
v4l2-event.c V4L/DVB: v4l2: add core serialization lock 2010-10-21 01:06:14 -02:00
v4l2-fh.c [media] v4l2: use new flag to enable core priority handling 2011-03-22 16:38:16 -03:00
v4l2-int-device.c
v4l2-ioctl.c [media] Fix compile warning: Dereferencing type-punned pointer will break strict-aliasing rules 2011-07-27 17:52:20 -03:00
v4l2-mem2mem.c [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
v4l2-subdev.c [media] v4l2-subdev: fix broken subdev control enumeration 2011-05-04 16:42:55 -03:00
via-camera.c [media] via-camera: add MODULE_ALIAS 2011-05-20 09:30:49 -03:00
via-camera.h [media] Add the via framebuffer camera controller driver 2010-10-21 13:45:28 -02:00
videobuf2-core.c [media] media: vb2: fix allocation failure check 2011-06-30 22:33:47 -03:00
videobuf2-dma-contig.c [media] videobuf2: fix an error message 2011-04-13 09:52:36 -03:00
videobuf2-dma-sg.c [media] media: Convert vmalloc/memset to vzalloc 2011-07-27 17:52:21 -03:00
videobuf2-memops.c [media] V4L/videobuf2-memops: use pr_debug for debug messages 2011-07-27 17:52:23 -03:00
videobuf2-vmalloc.c [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf-core.c [media] V4L: remove V4L1 compatibility mode 2010-12-29 08:17:07 -02:00
videobuf-dma-contig.c Revert "[media] V4L: videobuf, don't use dma addr as physical" 2011-04-19 10:54:44 -07:00
videobuf-dma-sg.c [media] videobuf_pages_to_sg: sglist[0] length problem 2011-07-27 17:52:19 -03:00
videobuf-dvb.c V4L/DVB: videobuf: add queue argument to videobuf_waiton() 2010-10-21 01:06:14 -02:00
videobuf-vmalloc.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
vino.c [media] v4l: fix handling of v4l2_input.capabilities 2010-12-30 08:02:29 -02:00
vino.h
vivi.c [media] v4l2: use new flag to enable core priority handling 2011-03-22 16:38:16 -03:00
vp27smpx.c V4L/DVB: vp27smpx: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:57 -02:00
vpx3220.c Fix common misspellings 2011-03-31 11:26:23 -03:00
w9966.c [media] w9966: zero device state after a detach 2011-01-19 11:52:11 -02:00
wm8739.c V4L/DVB: wm8739: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:57 -02:00
wm8775.c [media] Add proper audio support for Nova-S Plus with wm8775 ADC 2011-03-21 20:32:19 -03:00
zr364xx.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00