diff --git a/drivers/media/i2c/thcv244.c b/drivers/media/i2c/thcv244.c index e915efadccd2..4ceca7534207 100644 --- a/drivers/media/i2c/thcv244.c +++ b/drivers/media/i2c/thcv244.c @@ -210,11 +210,9 @@ static const struct regval thcv244_1080p30_init_table[] = { {0x0b, 0x1704, 0xFF, 0x00}, {0x0b, 0x0032, 0x00, 0x00}, {0x0b, 0x1003, 0x00, 0x00}, - {0x0b, 0x1004, 0x30, 0x00}, + {0x0b, 0x1004, 0x00, 0x00}, {0x0b, 0x001B, 0x18, 0x00}, {0x0b, 0x0032, 0x10, 0x00}, - {0x0b, 0x0040, 0x50, 0x00}, - {0x0b, 0x0041, 0x50, 0x00}, {0x0b, 0x1005, 0x22, 0x00}, {0x0b, 0x100C, 0x30, 0x00}, {0x0b, 0x100D, 0x34, 0x00}, @@ -252,9 +250,9 @@ static const struct regval thcv241_init_table[] = { {0x34, 0x27, 0x00, 0x00}, {0x34, 0x1D, 0x00, 0x00}, {0x34, 0x1E, 0x00, 0x00}, - {0x34, 0x3D, 0x02, 0x00}, - {0x34, 0x3E, 0x10, 0x00}, - {0x34, 0x3F, 0x03, 0x00}, + {0x34, 0x3D, 0x00, 0x00}, + {0x34, 0x3E, 0x0c, 0x00}, + {0x34, 0x3F, 0x02, 0x00}, {0x34, REG_NULL, 0x00, 0x00}, }; @@ -271,7 +269,7 @@ static const struct regval thcv244_reset_init_table[] = { {0x0b, 0x00B0, 0x34, 0x00}, {0x0b, 0x0004, 0x03, 0x00}, {0x0b, 0x0010, 0xF0, 0x00}, - {0x0b, 0x1704, 0x01, 0x00}, + {0x0b, 0x1704, 0x0F, 0x00}, {0x0b, 0x0102, 0xAA, 0x00}, {0x0b, 0x0103, 0xAA, 0x00}, {0x0b, 0x0104, 0x00, 0x00}, @@ -284,7 +282,7 @@ static const struct regval thcv244_reset_init_table[] = { {0x0b, REG_NULL, 0x00, 0x00}, }; -static const struct regval thcv241_reset_init_table[] = { +static const struct regval thcv241_reset_init_table0[] = { {0x34, 0xFE, 0x21, 0x00}, {0x34, 0x06, 0x00, 0x00}, {0x34, 0x05, 0x00, 0x00}, @@ -739,10 +737,11 @@ static int thcv244_thcv241_init(struct thcv244 *thcv244) ret |= thine_write_reg(thcv244->client, THCV241_ADDR, 0xfe, 1, THCV244_REG_VALUE_08BIT, 0x21); ret |= thine_write_reg(thcv244->client, THCV241_ADDR, 0x3e, - 1, THCV244_REG_VALUE_08BIT, 0x00); - msleep(200); + 1, THCV244_REG_VALUE_08BIT, 0x0c); + usleep_range(1000, 2000); ret |= thine_write_reg(thcv244->client, THCV241_ADDR, 0x3e, - 1, THCV244_REG_VALUE_08BIT, 0x10); + 1, THCV244_REG_VALUE_08BIT, 0x3c); + usleep_range(1000, 2000); ret |= thine_write_reg(thcv244->client, THCV244_ADDR, 0x1600, 2, THCV244_REG_VALUE_08BIT, 0x00); if (ret) @@ -758,7 +757,7 @@ static int thcv244_thcv241_reset_initial(struct thcv244 *thcv244) ret = thcv244_write_array(thcv244->client, thcv244_reset_init_table); - ret |= thcv241_write_array(thcv244->client, thcv241_reset_init_table); + ret |= thcv241_write_array(thcv244->client, thcv241_reset_init_table0); ret |= thine_write_reg(thcv244->client, THCV244_ADDR, 0x0032, 2, THCV244_REG_VALUE_08BIT, 0x10); ret |= thine_write_reg(thcv244->client, THCV241_ADDR, 0x00fe,