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

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

V4L/DVB (8713): gspca: Bad color control again in sonixj.

parent 759aa3c2
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -108,9 +108,9 @@ static struct ctrl sd_ctrls[] = {
		.type    = V4L2_CTRL_TYPE_INTEGER,
		.name    = "Color",
		.minimum = 0,
		.maximum = 255,
		.maximum = 64,
		.step    = 1,
#define COLOR_DEF 127
#define COLOR_DEF 32
		.default_value = COLOR_DEF,
	    },
	    .set = sd_setcolors,
@@ -1132,17 +1132,18 @@ static void setcontrast(struct gspca_dev *gspca_dev)
static void setcolors(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;
	__u8 data;
	int colour;
	__u8 blue, red;

	colour = sd->colors - 128;
	if (colour > 0) {
		data = (colour + 32) & 0x7f;	/* blue */
		reg_w1(gspca_dev, 0x06, data);
	if (sd->colors >= 32) {
		red = 32 + (sd->colors - 32) / 2;
		blue = 64 - sd->colors;
	} else {
		data = (-colour + 32) & 0x7f;	/* red */
		reg_w1(gspca_dev, 0x05, data);
		red = sd->colors;
		blue = 32 + (32 - sd->colors) / 2;
	}
	reg_w1(gspca_dev, 0x05, red);
/*	reg_w1(gspca_dev, 0x07, 32); */
	reg_w1(gspca_dev, 0x06, blue);
}

static void setautogain(struct gspca_dev *gspca_dev)