{ OV511_I2C_BUS, 0x33, 0xa0 }, /* Color Procesing Parameter */ 
{ OV511_I2C_BUS, 0x33, 0xa0 }, /* Color Processing Parameter */ 
ov6xx0_configure(struct usb_ov511 *ov){	int rc;	static struct ov511_regvals aRegvalsNorm6x20[] = {		{ OV511_I2C_BUS, 0x12, 0x80 }, /* reset */		{ OV511_I2C_BUS, 0x11, 0x01 },		{ OV511_I2C_BUS, 0x03, 0x60 },		{ OV511_I2C_BUS, 0x05, 0x7f }, /* For when autoadjust is off */		{ OV511_I2C_BUS, 0x07, 0xa8 },		/* The ratio of 0x0c and 0x0d  controls the white point */		{ OV511_I2C_BUS, 0x0c, 0x24 },		{ OV511_I2C_BUS, 0x0d, 0x24 },		{ OV511_I2C_BUS, 0x0f, 0x15 }, /* COMS */		{ OV511_I2C_BUS, 0x10, 0x75 }, /* AEC Exposure time */		{ OV511_I2C_BUS, 0x12, 0x24 }, /* Enable AGC */		{ OV511_I2C_BUS, 0x14, 0x04 },		/* 0x16: 0x06 helps frame stability with moving objects */		{ OV511_I2C_BUS, 0x16, 0x06 },//		{ OV511_I2C_BUS, 0x20, 0x30 }, /* Aperture correction enable */		{ OV511_I2C_BUS, 0x26, 0xb2 }, /* BLC enable */		/* 0x28: 0x05 Selects RGB format if RGB on */		{ OV511_I2C_BUS, 0x28, 0x05 },		{ OV511_I2C_BUS, 0x2a, 0x04 }, /* Disable framerate adjust *///		{ OV511_I2C_BUS, 0x2b, 0xac }, /* Framerate; Set 2a[7] first */		{ OV511_I2C_BUS, 0x2d, 0x99 },		{ OV511_I2C_BUS, 0x33, 0xa0 }, /* Color Procesing Parameter */		{ OV511_I2C_BUS, 0x34, 0xd2 }, /* Max A/D range */		{ OV511_I2C_BUS, 0x38, 0x8b },		{ OV511_I2C_BUS, 0x39, 0x40 },		{ OV511_I2C_BUS, 0x3c, 0x39 }, /* Enable AEC mode changing */		{ OV511_I2C_BUS, 0x3c, 0x3c }, /* Change AEC mode */		{ OV511_I2C_BUS, 0x3c, 0x24 }, /* Disable AEC mode changing */		{ OV511_I2C_BUS, 0x3d, 0x80 },		/* These next two registers (0x4a, 0x4b) are undocumented. They		 * control the color balance */		{ OV511_I2C_BUS, 0x4a, 0x80 },		{ OV511_I2C_BUS, 0x4b, 0x80 },		{ OV511_I2C_BUS, 0x4d, 0xd2 }, /* This reduces noise a bit */		{ OV511_I2C_BUS, 0x4e, 0xc1 },		{ OV511_I2C_BUS, 0x4f, 0x04 },// Do 50-53 have any effect?// Toggle 0x12[2] off and on here?		{ OV511_DONE_BUS, 0x0, 0x00 },	/* END MARKER */	};	static struct ov511_regvals aRegvalsNorm6x30[] = {	/*OK*/	{ OV511_I2C_BUS, 0x12, 0x80 }, /* reset */		{ OV511_I2C_BUS, 0x11, 0x00 },	/*OK*/	{ OV511_I2C_BUS, 0x03, 0x60 },	/*0A?*/	{ OV511_I2C_BUS, 0x05, 0x7f }, /* For when autoadjust is off */		{ OV511_I2C_BUS, 0x07, 0xa8 },		/* The ratio of 0x0c and 0x0d  controls the white point */	/*OK*/	{ OV511_I2C_BUS, 0x0c, 0x24 },	/*OK*/	{ OV511_I2C_BUS, 0x0d, 0x24 },	/*A*/	{ OV511_I2C_BUS, 0x0e, 0x20 },//	/*04?*/	{ OV511_I2C_BUS, 0x14, 0x80 },		{ OV511_I2C_BUS, 0x16, 0x03 },//	/*OK*/	{ OV511_I2C_BUS, 0x20, 0x30 }, /* Aperture correction enable */		// 21 & 22? The suggested values look wrong. Go with default	/*A*/	{ OV511_I2C_BUS, 0x23, 0xc0 },	/*A*/	{ OV511_I2C_BUS, 0x25, 0x9a }, // Check this against default//	/*OK*/	{ OV511_I2C_BUS, 0x26, 0xb2 }, /* BLC enable */		/* 0x28: 0x05 Selects RGB format if RGB on *///	/*04?*/	{ OV511_I2C_BUS, 0x28, 0x05 },//	/*04?*/	{ OV511_I2C_BUS, 0x28, 0x45 }, // DEBUG: Tristate UV bus	/*OK*/	{ OV511_I2C_BUS, 0x2a, 0x04 }, /* Disable framerate adjust *///	/*OK*/	{ OV511_I2C_BUS, 0x2b, 0xac }, /* Framerate; Set 2a[7] first */		{ OV511_I2C_BUS, 0x2d, 0x99 },//	/*A*/	{ OV511_I2C_BUS, 0x33, 0x26 }, // Reserved bits on 6620//	/*d2?*/	{ OV511_I2C_BUS, 0x34, 0x03 }, /* Max A/D range *///	/*8b?*/	{ OV511_I2C_BUS, 0x38, 0x83 },//	/*40?*/	{ OV511_I2C_BUS, 0x39, 0xc0 }, // 6630 adds bit 7//		{ OV511_I2C_BUS, 0x3c, 0x39 }, /* Enable AEC mode changing *///		{ OV511_I2C_BUS, 0x3c, 0x3c }, /* Change AEC mode *///		{ OV511_I2C_BUS, 0x3c, 0x24 }, /* Disable AEC mode changing */		{ OV511_I2C_BUS, 0x3d, 0x80 },//	/*A*/	{ OV511_I2C_BUS, 0x3f, 0x0e },		/* These next two registers (0x4a, 0x4b) are undocumented. They		 * control the color balance *///	/*OK?*/	{ OV511_I2C_BUS, 0x4a, 0x80 }, // Check these//	/*OK?*/	{ OV511_I2C_BUS, 0x4b, 0x80 },		{ OV511_I2C_BUS, 0x4d, 0x10 }, /* U = 0.563u, V = 0.714v */	/*c1?*/	{ OV511_I2C_BUS, 0x4e, 0x40 },		/* UV average mode, color killer: strongest */		{ OV511_I2C_BUS, 0x4f, 0x07 },		{ OV511_I2C_BUS, 0x54, 0x23 }, /* Max AGC gain: 18dB */		{ OV511_I2C_BUS, 0x57, 0x81 }, /* (default) */		{ OV511_I2C_BUS, 0x59, 0x01 }, /* AGC dark current comp: +1 */		{ OV511_I2C_BUS, 0x5a, 0x2c }, /* (undocumented) */		{ OV511_I2C_BUS, 0x5b, 0x0f }, /* AWB chrominance levels *///		{ OV511_I2C_BUS, 0x5c, 0x10 },		{ OV511_DONE_BUS, 0x0, 0x00 },	/* END MARKER */	};	PDEBUG(4, "starting sensor configuration");	if (init_ov_sensor(ov) < 0) {		err("Failed to read sensor ID. You might not have an OV6xx0,");		err("or it may be not responding. Report this to " EMAIL);		return -1;	} else {		PDEBUG(1, "OV6xx0 sensor detected");	}	/* Detect sensor (sub)type */	rc = i2c_r(ov, OV7610_REG_COM_I);	if (rc < 0) {		err("Error detecting sensor type");		return -1;	}	if ((rc & 3) == 0) {		ov->sensor = SEN_OV6630;		info("Sensor is an OV6630");	} else if ((rc & 3) == 1) {		ov->sensor = SEN_OV6620;		info("Sensor is an OV6620");	} else if ((rc & 3) == 2) {		ov->sensor = SEN_OV6630;		info("Sensor is an OV6630AE");	} else if ((rc & 3) == 3) {		ov->sensor = SEN_OV6630;		info("Sensor is an OV6630AF");	}	/* Set sensor-specific vars */	ov->maxwidth = 352;	ov->maxheight = 288;	ov->minwidth = 64;	ov->minheight = 48;	// FIXME: These do not match the actual settings yet	ov->brightness = 0x80 << 8;	ov->contrast = 0x80 << 8;	ov->colour = 0x80 << 8;	ov->hue = 0x80 << 8;	if (ov->sensor == SEN_OV6620) {		PDEBUG(4, "Writing 6x20 registers");		if (write_regvals(ov, aRegvalsNorm6x20))			return -1;	} else {		PDEBUG(4, "Writing 6x30 registers");		if (write_regvals(ov, aRegvalsNorm6x30))			return -1;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/093cf723b2b06d774929ea07982f6a466ff22314/ov511.c/clean/drivers/usb/media/ov511.c