Commit 577cbf49 authored by Jean-Francois Moine's avatar Jean-Francois Moine Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (9863): gspca - sonixj: Cleanup / simplify code.

parent 8c252050
Loading
Loading
Loading
Loading
+34 −31
Original line number Diff line number Diff line
@@ -37,26 +37,26 @@ struct sd {
	atomic_t avg_lum;
	unsigned int exposure;

	unsigned short brightness;
	unsigned char contrast;
	unsigned char colors;
	unsigned char autogain;
	__u16 brightness;
	__u8 contrast;
	__u8 colors;
	__u8 autogain;
	__u8 blue;
	__u8 red;
	__u8 vflip;			/* ov7630 only */
	__u8 infrared;			/* mi0360 only */

	signed char ag_cnt;
	__s8 ag_cnt;
#define AG_CNT_START 13

	char qindex;
	unsigned char bridge;
	__u8 qindex;
	__u8 bridge;
#define BRIDGE_SN9C102P 0
#define BRIDGE_SN9C105 1
#define BRIDGE_SN9C110 2
#define BRIDGE_SN9C120 3
#define BRIDGE_SN9C325 4
	char sensor;			/* Type of image sensor chip */
	__u8 sensor;			/* Type of image sensor chip */
#define SENSOR_HV7131R 0
#define SENSOR_MI0360 1
#define SENSOR_MO4000 2
@@ -64,7 +64,7 @@ struct sd {
#define SENSOR_OV7630 4
#define SENSOR_OV7648 5
#define SENSOR_OV7660 6
	unsigned char i2c_base;
	__u8 i2c_base;
};

/* V4L2 controls supported by the driver */
@@ -207,6 +207,24 @@ static struct ctrl sd_ctrls[] = {
	},
};

/* table of the disabled controls */
static __u32 ctrl_dis[] = {
	(1 << INFRARED_IDX) | (1 << VFLIP_IDX),
						/* SENSOR_HV7131R 0 */
	(1 << VFLIP_IDX),
						/* SENSOR_MI0360 1 */
	(1 << INFRARED_IDX) | (1 << VFLIP_IDX),
						/* SENSOR_MO4000 2 */
	(1 << INFRARED_IDX) | (1 << VFLIP_IDX),
						/* SENSOR_OM6802 3 */
	(1 << AUTOGAIN_IDX) | (1 << INFRARED_IDX),
						/* SENSOR_OV7630 4 */
	(1 << AUTOGAIN_IDX) | (1 << INFRARED_IDX) | (1 << VFLIP_IDX),
						/* SENSOR_OV7648 5 */
	(1 << AUTOGAIN_IDX) | (1 << INFRARED_IDX) | (1 << VFLIP_IDX),
						/* SENSOR_OV7660 6 */
};

static struct v4l2_pix_format vga_mode[] = {
	{160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
		.bytesperline = 160,
@@ -801,8 +819,6 @@ static void i2c_r5(struct gspca_dev *gspca_dev, __u8 reg)

static int probesensor(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;

	i2c_w1(gspca_dev, 0x02, 0);			/* sensor wakeup */
	msleep(10);
	reg_w1(gspca_dev, 0x02, 0x66);			/* Gpio on */
@@ -814,8 +830,7 @@ static int probesensor(struct gspca_dev *gspca_dev)
	    && gspca_dev->usb_buf[3] == 0x00
	    && gspca_dev->usb_buf[4] == 0x00) {
		PDEBUG(D_PROBE, "Find Sensor sn9c102P HV7131R");
		sd->sensor = SENSOR_HV7131R;
		return SENSOR_HV7131R;
		return 0;
	}
	PDEBUG(D_PROBE, "Find Sensor 0x%02x 0x%02x 0x%02x",
		gspca_dev->usb_buf[0], gspca_dev->usb_buf[1],
@@ -1022,17 +1037,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
	sd->vflip = VFLIP_DEF;
	sd->infrared = INFRARED_DEF;

	switch (sd->sensor) {
	case SENSOR_OV7630:
	case SENSOR_OV7648:
	case SENSOR_OV7660:
		gspca_dev->ctrl_dis = (1 << AUTOGAIN_IDX);
		break;
	}
	if (sd->sensor != SENSOR_OV7630)
		gspca_dev->ctrl_dis |= (1 << VFLIP_IDX);
	if (sd->sensor != SENSOR_MI0360)
		gspca_dev->ctrl_dis |= (1 << INFRARED_IDX);
	gspca_dev->ctrl_dis = ctrl_dis[sd->sensor];
	return 0;
}

@@ -1040,7 +1045,6 @@ static int sd_config(struct gspca_dev *gspca_dev,
static int sd_init(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;
/*	const __u8 *sn9c1xx; */
	__u8 regGpio[] = { 0x29, 0x74 };
	__u8 regF1;

@@ -1194,13 +1198,16 @@ static void setcontrast(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;
	__u8 k2;
	__u8 contrast[] = { 0x00, 0x00, 0x28, 0x00, 0x07, 0x00 };
	__u8 contrast[6];

	k2 = sd->contrast * 0x30 / (CONTRAST_MAX + 1) + 0x10;	/* 10..40 */
	contrast[0] = (k2 + 1) / 2;		/* red */
	contrast[1] = 0;
	contrast[2] = k2;			/* green */
	contrast[3] = 0;
	contrast[4] = (k2 + 1) / 5;		/* blue */
	reg_w(gspca_dev, 0x84, contrast, 6);
	contrast[5] = 0;
	reg_w(gspca_dev, 0x84, contrast, sizeof contrast);
}

static void setcolors(struct gspca_dev *gspca_dev)
@@ -1365,10 +1372,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
		ov7648_InitSensor(gspca_dev);
		reg17 = 0x21;
/*		reg1 = 0x42;		 * 42 - 46? */
/*		if (mode)
			;		 * 320x2...
		else
			;		 * 640x... */
		break;
	default:
/*	case SENSOR_OV7660: */