Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3675c750 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mauro Carvalho Chehab
Browse files

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: default avatarKuninori Morimoto <morimoto.kuninori@renesas.com>
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 906b1018
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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),
};

+1 −1
Original line number Diff line number Diff line
@@ -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 = {
+7 −15
Original line number Diff line number Diff line
@@ -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);

+5 −5
Original line number Diff line number Diff line
@@ -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,7 +54,6 @@ struct ov772x_edge_ctrl {
 * ov772x camera info
 */
struct ov772x_camera_info {
	unsigned long          buswidth;
	unsigned long		flags;
	struct ov772x_edge_ctrl	edgectrl;
};