Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 104046
b: refs/heads/master
c: 5daed07
h: refs/heads/master
v: v3
  • Loading branch information
Jean Delvare authored and Mauro Carvalho Chehab committed Jul 20, 2008
1 parent 47e16d0 commit 991d9df
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 03b52c36a38eb72548b9408c497ffabd1519eabe
refs/heads/master: 5daed07401ed27bb2684e803f3f01e3a424ea282
2 changes: 1 addition & 1 deletion trunk/drivers/media/video/ivtv/ivtv-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ static const u8 hw_addrs[] = {
static const char * const hw_devicenames[] = {
"cx25840",
"saa7115",
"saa7127",
"saa7127_auto", /* saa7127 or saa7129 */
"msp3400",
"tuner",
"wm8775",
Expand Down
42 changes: 27 additions & 15 deletions trunk/drivers/media/video/saa7127.c
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,6 @@ static int saa7127_probe(struct i2c_client *client,
{
struct saa7127_state *state;
struct v4l2_sliced_vbi_data vbi = { 0, 0, 0, 0 }; /* set to disabled */
int read_result = 0;

/* Check if the adapter supports the needed features */
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
Expand Down Expand Up @@ -710,20 +709,29 @@ static int saa7127_probe(struct i2c_client *client,
saa7127_set_input_type(client, SAA7127_INPUT_TYPE_NORMAL);
saa7127_set_video_enable(client, 1);

/* Detect if it's an saa7129 */
read_result = saa7127_read(client, SAA7129_REG_FADE_KEY_COL2);
saa7127_write(client, SAA7129_REG_FADE_KEY_COL2, 0xaa);
if (saa7127_read(client, SAA7129_REG_FADE_KEY_COL2) == 0xaa) {
v4l_info(client, "saa7129 found @ 0x%x (%s)\n",
client->addr << 1, client->adapter->name);
saa7127_write(client, SAA7129_REG_FADE_KEY_COL2, read_result);
saa7127_write_inittab(client, saa7129_init_config_extra);
state->ident = V4L2_IDENT_SAA7129;
} else {
v4l_info(client, "saa7127 found @ 0x%x (%s)\n",
client->addr << 1, client->adapter->name);
state->ident = V4L2_IDENT_SAA7127;
if (id->driver_data) { /* Chip type is already known */
state->ident = id->driver_data;
} else { /* Needs detection */
int read_result;

/* Detect if it's an saa7129 */
read_result = saa7127_read(client, SAA7129_REG_FADE_KEY_COL2);
saa7127_write(client, SAA7129_REG_FADE_KEY_COL2, 0xaa);
if (saa7127_read(client, SAA7129_REG_FADE_KEY_COL2) == 0xaa) {
saa7127_write(client, SAA7129_REG_FADE_KEY_COL2,
read_result);
state->ident = V4L2_IDENT_SAA7129;
strlcpy(client->name, "saa7129", I2C_NAME_SIZE);
} else {
state->ident = V4L2_IDENT_SAA7127;
strlcpy(client->name, "saa7127", I2C_NAME_SIZE);
}
}

v4l_info(client, "%s found @ 0x%x (%s)\n", client->name,
client->addr << 1, client->adapter->name);
if (state->ident == V4L2_IDENT_SAA7129)
saa7127_write_inittab(client, saa7129_init_config_extra);
return 0;
}

Expand All @@ -740,7 +748,11 @@ static int saa7127_remove(struct i2c_client *client)
/* ----------------------------------------------------------------------- */

static struct i2c_device_id saa7127_id[] = {
{ "saa7127", 0 },
{ "saa7127_auto", 0 }, /* auto-detection */
{ "saa7126", V4L2_IDENT_SAA7127 },
{ "saa7127", V4L2_IDENT_SAA7127 },
{ "saa7128", V4L2_IDENT_SAA7129 },
{ "saa7129", V4L2_IDENT_SAA7129 },
{ }
};
MODULE_DEVICE_TABLE(i2c, saa7127_id);
Expand Down

0 comments on commit 991d9df

Please sign in to comment.