Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 173913
b: refs/heads/master
c: 8c2d782
h: refs/heads/master
i:
  173911: d417fc1
v: v3
  • Loading branch information
Steven Toth authored and Mauro Carvalho Chehab committed Dec 5, 2009
1 parent faf962e commit d685488
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 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: c6b7053bbc3b1ec556780327cef0d0463e1537ea
refs/heads/master: 8c2d7821d4e3827c29e4e4e345ee25390a141e55
21 changes: 18 additions & 3 deletions trunk/drivers/media/video/cx25840/cx25840-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1598,14 +1598,29 @@ static u32 get_cx2388x_ident(struct i2c_client *client)
/* Come out of digital power down */
cx25840_write(client, 0x000, 0);

/* Detecting whether the part is cx23885/7/8 is more
* difficult than it needs to be. No ID register. Instead we
* probe certain registers indicated in the datasheets to look
* for specific defaults that differ between the silicon designs. */

/* It's either 885/7 if the IR Tx Clk Divider register exists */
if (cx25840_read4(client, 0x204) & 0xffff) {
/* IR Tx Clk Divider register exists; chip must be a CX23885 */
ret = V4L2_IDENT_CX23885_AV;
/* CX23885 returns bogus repetitive byte values for the DIF,
* which doesn't exist for it. (Ex. 8a8a8a8a or 31313131) */
ret = cx25840_read4(client, 0x300);
if (((ret & 0xffff0000) >> 16) == (ret & 0xffff)) {
/* No DIF */
ret = V4L2_IDENT_CX23885_AV;
} else {
/* CX23887 has a broken DIF, but the registers
* appear valid (but unsed), good enough to detect. */
ret = V4L2_IDENT_CX23887_AV;
}
} else if (cx25840_read4(client, 0x300) & 0x0fffffff) {
/* DIF PLL Freq Word reg exists; chip must be a CX23888 */
ret = V4L2_IDENT_CX23888_AV;
} else {
/* A CX23887 A/V core has neither IR nor DIF */
v4l_err(client, "Unable to detect h/w, assuming cx23887\n");
ret = V4L2_IDENT_CX23887_AV;
}

Expand Down

0 comments on commit d685488

Please sign in to comment.