Skip to content

Commit f4cde77

Browse files
committed
[imx219] Fix: set exposure and gain before start
1 parent b2b4466 commit f4cde77

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

drivers/media/i2c/imx219.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ static const struct imx219_reg imx219_init_tab_3280_2464_21fps[] = {
7272
{0x0128, 0x00}, /* DPHY_CNTRL */
7373
{0x012A, 0x18}, /* EXCK_FREQ[15:8] */
7474
{0x012B, 0x00}, /* EXCK_FREQ[7:0] */
75-
{0x015A, 0x01}, /* INTEG TIME[15:8] */
76-
{0x015B, 0xF4}, /* INTEG TIME[7:0] */
7775
{0x0160, 0x09}, /* FRM_LENGTH_A[15:8] */
7876
{0x0161, 0xC4}, /* FRM_LENGTH_A[7:0] */
7977
{0x0162, 0x0D}, /* LINE_LENGTH_A[15:8] */
@@ -124,8 +122,6 @@ static const struct imx219_reg imx219_init_tab_3280_1848_28fps[] = {
124122
{0x0128, 0x00}, /* DPHY_CNTRL */
125123
{0x012A, 0x18}, /* EXCK_FREQ[15:8] */
126124
{0x012B, 0x00}, /* EXCK_FREQ[7:0] */
127-
{0x015A, 0x01}, /* INTEG TIME[15:8] */
128-
{0x015B, 0xF4}, /* INTEG TIME[7:0] */
129125
{0x0160, 0x07}, /* FRM_LENGTH_A[15:8] */
130126
{0x0161, 0x60}, /* FRM_LENGTH_A[7:0] */
131127
{0x0162, 0x0F}, /* LINE_LENGTH_A[15:8] */
@@ -229,8 +225,6 @@ static const struct imx219_reg imx219_init_tab_1640_1232_30fps[] = {
229225
{0x0128, 0x00}, /* DPHY_CNTRL */
230226
{0x012A, 0x18}, /* EXCK_FREQ[15:8] */
231227
{0x012B, 0x00}, /* EXCK_FREQ[7:0] */
232-
{0x015A, 0x01}, /* INTEG TIME[15:8] */
233-
{0x015B, 0xF4}, /* INTEG TIME[7:0] */
234228
{0x0160, 0x06}, /* FRM_LENGTH_A[15:8] */
235229
{0x0161, 0xE6}, /* FRM_LENGTH_A[7:0] */
236230
{0x0162, 0x0D}, /* LINE_LENGTH_A[15:8] */
@@ -529,6 +523,15 @@ static int imx219_s_stream(struct v4l2_subdev *sd, int enable)
529523
if (ret)
530524
return ret;
531525

526+
/* Set exposure and gain */
527+
ret = reg_write(client, 0x0157, priv->analogue_gain);
528+
ret |= reg_write(client, 0x0158, priv->digital_gain >> 8);
529+
ret |= reg_write(client, 0x0159, priv->digital_gain & 0xff);
530+
ret |= reg_write(client, 0x015a, priv->exposure_time >> 8);
531+
ret |= reg_write(client, 0x015b, priv->exposure_time & 0xff);
532+
if (ret)
533+
return ret;
534+
532535
return reg_write_table(client, start);
533536
}
534537

0 commit comments

Comments
 (0)