V4L/DVB (11633): gspca - m5602-s5k83a: Move hsync/vsync setup to start function
Signed-off-by: Erik Andrén <erik.andren@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
57851d0cd0
commit
cde41bb292
@ -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] =
|
|||||||
/* 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},
|
||||||
|
Loading…
Reference in New Issue
Block a user