mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 23:39:18 +00:00
soc-camera: ov772x: Modify buswidth control
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>
This commit is contained in:
parent
906b101886
commit
3675c750cf
@ -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),
|
||||
};
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -547,7 +547,6 @@ static const struct v4l2_queryctrl ov772x_controls[] = {
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* general function
|
||||
*/
|
||||
@ -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);
|
||||
}
|
||||
@ -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
|
||||
*/
|
||||
@ -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;
|
||||
@ -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 "
|
||||
@ -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);
|
||||
|
||||
|
@ -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
|
||||
@ -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__ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user