aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/mt9v011.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/drivers/media/video/mt9v011.c b/drivers/media/video/mt9v011.c
index 3ed9511da8ed..1fe8fc9183a7 100644
--- a/drivers/media/video/mt9v011.c
+++ b/drivers/media/video/mt9v011.c
@@ -124,24 +124,12 @@ static const struct i2c_reg_value mt9v011_init_default[] = {
124 { R0D_MT9V011_RESET, 0x0001 }, 124 { R0D_MT9V011_RESET, 0x0001 },
125 { R0D_MT9V011_RESET, 0x0000 }, 125 { R0D_MT9V011_RESET, 0x0000 },
126 126
127 { R09_MT9V011_SHUTTER_WIDTH, 0x0418 },
128 { R0A_MT9V011_CLK_SPEED, 0x0000 },
129 { R0C_MT9V011_SHUTTER_DELAY, 0x0000 }, 127 { R0C_MT9V011_SHUTTER_DELAY, 0x0000 },
128 { R09_MT9V011_SHUTTER_WIDTH, 0x1fc },
129
130 { R0A_MT9V011_CLK_SPEED, 0x0000 },
130 { R1E_MT9V011_DIGITAL_ZOOM, 0x0000 }, 131 { R1E_MT9V011_DIGITAL_ZOOM, 0x0000 },
131 { R20_MT9V011_READ_MODE, 0x1100 }, 132 { R20_MT9V011_READ_MODE, 0x1000 },
132
133 /*
134 * Those registers are not docummented at the datasheet.
135 * However, the original driver initializes them
136 */
137 { 0x30, 0x0005 },
138 { 0x34, 0x0100 },
139 { 0x3d, 0x068f },
140 { 0x40, 0x01e0 },
141 { 0x52, 0x0100 },
142 { 0x58, 0x0038 }, /* Datasheet default 0x0078 */
143 { 0x59, 0x0723 }, /* Datasheet default 0x0703 */
144 { 0x62, 0x041a }, /* Datasheet default 0x0418 */
145 133
146 { R07_MT9V011_OUT_CTRL, 0x000a }, /* chip enable */ 134 { R07_MT9V011_OUT_CTRL, 0x000a }, /* chip enable */
147}; 135};
@@ -177,6 +165,9 @@ static void set_res(struct v4l2_subdev *sd)
177 * hblank and vblank should be adjusted, in order to warrant that 165 * hblank and vblank should be adjusted, in order to warrant that
178 * we'll preserve the line timings for 30 fps, no matter what resolution 166 * we'll preserve the line timings for 30 fps, no matter what resolution
179 * is selected. 167 * is selected.
168 * NOTE: datasheet says that width (and height) should be filled with
169 * width-1. However, this doesn't work, since one pixel per line will
170 * be missing.
180 */ 171 */
181 172
182 hstart = 14 + (640 - core->width) / 2; 173 hstart = 14 + (640 - core->width) / 2;