Skip to content

Commit

Permalink
V4L/DVB (5993): cx25840: resetting also requires reloading the firmware
Browse files Browse the repository at this point in the history
Resetting without reloading the firmware is not enough. Sometimes the
firmware is 'stuck' and needs to be reloaded.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Oct 10, 2007
1 parent 94104aa commit 89fc4eb
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions drivers/media/video/cx25840/cx25840-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ static void cx25836_initialize(struct i2c_client *client)
cx25840_and_or(client, 0x15b, ~0x1e, 0x10);
}

static void cx25840_initialize(struct i2c_client *client, int loadfw)
static void cx25840_initialize(struct i2c_client *client)
{
struct cx25840_state *state = i2c_get_clientdata(client);

Expand All @@ -197,8 +197,7 @@ static void cx25840_initialize(struct i2c_client *client, int loadfw)
cx25840_write(client, 0x13c, 0x01);
cx25840_write(client, 0x13c, 0x00);
/* 5. */
if (loadfw)
cx25840_loadfw(client);
cx25840_loadfw(client);
/* 6. */
cx25840_write(client, 0x115, 0x8c);
cx25840_write(client, 0x116, 0x07);
Expand Down Expand Up @@ -638,7 +637,7 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd,
if (state->is_cx25836)
cx25836_initialize(client);
else
cx25840_initialize(client, 1);
cx25840_initialize(client);
}

switch (cmd) {
Expand Down Expand Up @@ -841,7 +840,7 @@ static int cx25840_command(struct i2c_client *client, unsigned int cmd,
if (state->is_cx25836)
cx25836_initialize(client);
else
cx25840_initialize(client, 0);
cx25840_initialize(client);
break;

case VIDIOC_G_CHIP_IDENT:
Expand Down

0 comments on commit 89fc4eb

Please sign in to comment.