Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 124539
b: refs/heads/master
c: aeabc88
h: refs/heads/master
i:
  124537: 24bd796
  124535: 22e0430
v: v3
  • Loading branch information
Kuninori Morimoto authored and Mauro Carvalho Chehab committed Dec 30, 2008
1 parent 12392a5 commit 8d1703c
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 8 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: 2d425131d2c44228c4390d2d48d302f3e122bc49
refs/heads/master: aeabc882a3ad9a320783815e0446b12526fd2102
27 changes: 21 additions & 6 deletions trunk/drivers/media/video/ov772x.c
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,12 @@
#define OP_UV 0x00000001
#define OP_SWAP_RGB 0x00000002

/*
* ID
*/
#define OV7720 0x7720
#define VERSION(pid, ver) ((pid<<8)|(ver&0xFF))

/*
* struct
*/
Expand Down Expand Up @@ -374,6 +380,7 @@ struct ov772x_priv {
struct soc_camera_device icd;
const struct ov772x_color_format *fmt;
const struct ov772x_win_size *win;
int model;
};

#define ENDMARKER { 0xff, 0xff }
Expand Down Expand Up @@ -702,7 +709,9 @@ static unsigned long ov772x_query_bus_param(struct soc_camera_device *icd)
static int ov772x_get_chip_id(struct soc_camera_device *icd,
struct v4l2_chip_ident *id)
{
id->ident = V4L2_IDENT_OV772X;
struct ov772x_priv *priv = container_of(icd, struct ov772x_priv, icd);

id->ident = priv->model;
id->revision = 0;

return 0;
Expand Down Expand Up @@ -796,6 +805,7 @@ static int ov772x_video_probe(struct soc_camera_device *icd)
{
struct ov772x_priv *priv = container_of(icd, struct ov772x_priv, icd);
u8 pid, ver;
const char *devname;

/*
* We must have a parent by now. And it cannot be a wrong one.
Expand All @@ -822,15 +832,21 @@ static int ov772x_video_probe(struct soc_camera_device *icd)
*/
pid = i2c_smbus_read_byte_data(priv->client, PID);
ver = i2c_smbus_read_byte_data(priv->client, VER);
if (pid != 0x77 ||
ver != 0x21) {

switch (VERSION(pid, ver)) {
case OV7720:
devname = "ov7720";
priv->model = V4L2_IDENT_OV7720;
break;
default:
dev_err(&icd->dev,
"Product ID error %x:%x\n", pid, ver);
return -ENODEV;
}

dev_info(&icd->dev,
"ov772x Product ID %0x:%0x Manufacturer ID %x:%x\n",
"%s Product ID %0x:%0x Manufacturer ID %x:%x\n",
devname,
pid,
ver,
i2c_smbus_read_byte_data(priv->client, MIDH),
Expand Down Expand Up @@ -921,7 +937,7 @@ static int ov772x_remove(struct i2c_client *client)
}

static const struct i2c_device_id ov772x_id[] = {
{"ov772x", 0},
{ "ov772x", 0 },
{ }
};
MODULE_DEVICE_TABLE(i2c, ov772x_id);
Expand All @@ -941,7 +957,6 @@ static struct i2c_driver ov772x_i2c_driver = {

static int __init ov772x_module_init(void)
{
printk(KERN_INFO "ov772x driver\n");
return i2c_add_driver(&ov772x_i2c_driver);
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/include/media/v4l2-chip-ident.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ enum {

/* OmniVision sensors: reserved range 250-299 */
V4L2_IDENT_OV7670 = 250,
V4L2_IDENT_OV772X = 251,
V4L2_IDENT_OV7720 = 251,

/* Conexant MPEG encoder/decoders: reserved range 410-420 */
V4L2_IDENT_CX23415 = 415,
Expand Down

0 comments on commit 8d1703c

Please sign in to comment.