Commit cde41bb2 authored by Erik Andrén's avatar Erik Andrén Committed by Mauro Carvalho Chehab

V4L/DVB (11633): gspca - m5602-s5k83a: Move hsync/vsync setup to start function

Signed-off-by: default avatarErik Andrén <erik.andren@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 57851d0c
...@@ -299,15 +299,29 @@ static int rotation_thread_function(void *data) ...@@ -299,15 +299,29 @@ static int rotation_thread_function(void *data)
int s5k83a_start(struct sd *sd) int s5k83a_start(struct sd *sd)
{ {
int i, err = 0;
struct s5k83a_priv *sens_priv = sd->sensor_priv; struct s5k83a_priv *sens_priv = sd->sensor_priv;
/* Create another thread, polling the GPIO ports of the camera to check /* Create another thread, polling the GPIO ports of the camera to check
if it got rotated. This is how the windows driver does it so we have if it got rotated. This is how the windows driver does it so we have
to assume that there is no better way of accomplishing this */ to assume that there is no better way of accomplishing this */
sens_priv->rotation_thread = kthread_create(rotation_thread_function, sens_priv->rotation_thread = kthread_create(rotation_thread_function,
sd, "rotation thread"); sd, "rotation thread");
wake_up_process(sens_priv->rotation_thread); wake_up_process(sens_priv->rotation_thread);
/* Preinit the sensor */
for (i = 0; i < ARRAY_SIZE(start_s5k83a) && !err; i++) {
u8 data[2] = {start_s5k83a[i][2], start_s5k83a[i][3]};
if (start_s5k83a[i][0] == SENSOR)
err = m5602_write_sensor(sd, start_s5k83a[i][1],
data, 2);
else
err = m5602_write_bridge(sd, start_s5k83a[i][1],
data[0]);
}
if (err < 0)
return err;
return s5k83a_set_led_indication(sd, 1); return s5k83a_set_led_indication(sd, 1);
} }
......
...@@ -164,7 +164,10 @@ static const unsigned char init_s5k83a[][4] = ...@@ -164,7 +164,10 @@ static const unsigned char init_s5k83a[][4] =
/* normal colors /* normal colors
(this is value after boot, but after tries can be different) */ (this is value after boot, but after tries can be different) */
{SENSOR, 0x00, 0x06, 0x00}, {SENSOR, 0x00, 0x06, 0x00},
};
static const unsigned char start_s5k83a[][4] =
{
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00}, {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
{BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00}, {BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment