Skip to content

Commit

Permalink
soc-camera: ov772x: Modify buswidth control
Browse files Browse the repository at this point in the history
This patch removes "buswidth" struct member, and sets the default buswidth
to the natively supported 10 bit. You can select 8 bit buswidth by new flag.
This patch also modify ap325rxa/migor setup.c

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Kuninori Morimoto authored and Mauro Carvalho Chehab committed Feb 26, 2010
1 parent 906b101 commit 3675c75
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 23 deletions.
4 changes: 2 additions & 2 deletions arch/sh/boards/mach-ap325rxa/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -471,8 +471,8 @@ static struct i2c_board_info ap325rxa_i2c_camera[] = {
};

static struct ov772x_camera_info ov7725_info = {
.buswidth = SOCAM_DATAWIDTH_8,
.flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP,
.flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP | \
OV772X_FLAG_8BIT,
.edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0),
};

Expand Down
2 changes: 1 addition & 1 deletion arch/sh/boards/mach-migor/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ static struct i2c_board_info migor_i2c_camera[] = {
};

static struct ov772x_camera_info ov7725_info = {
.buswidth = SOCAM_DATAWIDTH_8,
.flags = OV772X_FLAG_8BIT,
};

static struct soc_camera_link ov7725_link = {
Expand Down
22 changes: 7 additions & 15 deletions drivers/media/video/ov772x.c
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,6 @@ static const struct v4l2_queryctrl ov772x_controls[] = {
},
};


/*
* general function
*/
Expand Down Expand Up @@ -634,7 +633,12 @@ static unsigned long ov772x_query_bus_param(struct soc_camera_device *icd)
struct soc_camera_link *icl = to_soc_camera_link(icd);
unsigned long flags = SOCAM_PCLK_SAMPLE_RISING | SOCAM_MASTER |
SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_HSYNC_ACTIVE_HIGH |
SOCAM_DATA_ACTIVE_HIGH | priv->info->buswidth;
SOCAM_DATA_ACTIVE_HIGH;

if (priv->info->flags & OV772X_FLAG_8BIT)
flags |= SOCAM_DATAWIDTH_8;
else
flags |= SOCAM_DATAWIDTH_10;

return soc_camera_apply_sensor_flags(icl, flags);
}
Expand Down Expand Up @@ -1039,15 +1043,6 @@ static int ov772x_video_probe(struct soc_camera_device *icd,
to_soc_camera_host(icd->dev.parent)->nr != icd->iface)
return -ENODEV;

/*
* ov772x only use 8 or 10 bit bus width
*/
if (SOCAM_DATAWIDTH_10 != priv->info->buswidth &&
SOCAM_DATAWIDTH_8 != priv->info->buswidth) {
dev_err(&client->dev, "bus width error\n");
return -ENODEV;
}

/*
* check and show product ID and manufacturer ID
*/
Expand Down Expand Up @@ -1130,7 +1125,6 @@ static int ov772x_probe(struct i2c_client *client,
const struct i2c_device_id *did)
{
struct ov772x_priv *priv;
struct ov772x_camera_info *info;
struct soc_camera_device *icd = client->dev.platform_data;
struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
struct soc_camera_link *icl;
Expand All @@ -1145,8 +1139,6 @@ static int ov772x_probe(struct i2c_client *client,
if (!icl || !icl->priv)
return -EINVAL;

info = icl->priv;

if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) {
dev_err(&adapter->dev,
"I2C-Adapter doesn't support "
Expand All @@ -1158,7 +1150,7 @@ static int ov772x_probe(struct i2c_client *client,
if (!priv)
return -ENOMEM;

priv->info = info;
priv->info = icl->priv;

v4l2_i2c_subdev_init(&priv->subdev, client, &ov772x_subdev_ops);

Expand Down
10 changes: 5 additions & 5 deletions include/media/ov772x.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
#include <media/soc_camera.h>

/* for flags */
#define OV772X_FLAG_VFLIP 0x00000001 /* Vertical flip image */
#define OV772X_FLAG_HFLIP 0x00000002 /* Horizontal flip image */
#define OV772X_FLAG_VFLIP (1 << 0) /* Vertical flip image */
#define OV772X_FLAG_HFLIP (1 << 1) /* Horizontal flip image */
#define OV772X_FLAG_8BIT (1 << 2) /* default 10 bit */

/*
* for Edge ctrl
Expand Down Expand Up @@ -53,9 +54,8 @@ struct ov772x_edge_ctrl {
* ov772x camera info
*/
struct ov772x_camera_info {
unsigned long buswidth;
unsigned long flags;
struct ov772x_edge_ctrl edgectrl;
unsigned long flags;
struct ov772x_edge_ctrl edgectrl;
};

#endif /* __OV772X_H__ */

0 comments on commit 3675c75

Please sign in to comment.