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

Commit cf252206 authored by Jean-François Moine's avatar Jean-François Moine Committed by Mauro Carvalho Chehab
Browse files

[media] gspca - sunplus: Fix some warnings and simplify code



This patch removes warnings due to GSPCA_DEBUG unsetting. It implied
a simplification of the code.

Signed-off-by: default avatarJean-François Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent bd62bbcd
Loading
Loading
Loading
Loading
+33 −66
Original line number Original line Diff line number Diff line
@@ -396,57 +396,6 @@ static void reg_w_riv(struct gspca_dev *gspca_dev,
		req, index, value);
		req, index, value);
}
}


/* read 1 byte */
static u8 reg_r_1(struct gspca_dev *gspca_dev,
			u16 value)	/* wValue */
{
	int ret;

	if (gspca_dev->usb_err < 0)
		return 0;
	ret = usb_control_msg(gspca_dev->dev,
			usb_rcvctrlpipe(gspca_dev->dev, 0),
			0x20,			/* request */
			USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
			value,
			0,			/* index */
			gspca_dev->usb_buf, 1,
			500);			/* timeout */
	if (ret < 0) {
		err("reg_r_1 err %d", ret);
		gspca_dev->usb_err = ret;
		return 0;
	}
	return gspca_dev->usb_buf[0];
}

/* read 1 or 2 bytes */
static u16 reg_r_12(struct gspca_dev *gspca_dev,
			u8 req,		/* bRequest */
			u16 index,	/* wIndex */
			u16 length)	/* wLength (1 or 2 only) */
{
	int ret;

	if (gspca_dev->usb_err < 0)
		return 0;
	gspca_dev->usb_buf[1] = 0;
	ret = usb_control_msg(gspca_dev->dev,
			usb_rcvctrlpipe(gspca_dev->dev, 0),
			req,
			USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
			0,		/* value */
			index,
			gspca_dev->usb_buf, length,
			500);
	if (ret < 0) {
		err("reg_r_12 err %d", ret);
		gspca_dev->usb_err = ret;
		return 0;
	}
	return (gspca_dev->usb_buf[1] << 8) + gspca_dev->usb_buf[0];
}

static void write_vector(struct gspca_dev *gspca_dev,
static void write_vector(struct gspca_dev *gspca_dev,
			const struct cmd *data, int ncmds)
			const struct cmd *data, int ncmds)
{
{
@@ -473,44 +422,46 @@ static void setup_qtable(struct gspca_dev *gspca_dev,
static void spca504_acknowledged_command(struct gspca_dev *gspca_dev,
static void spca504_acknowledged_command(struct gspca_dev *gspca_dev,
			     u8 req, u16 idx, u16 val)
			     u8 req, u16 idx, u16 val)
{
{
	u16 notdone;

	reg_w_riv(gspca_dev, req, idx, val);
	reg_w_riv(gspca_dev, req, idx, val);
	notdone = reg_r_12(gspca_dev, 0x01, 0x0001, 1);
	reg_r(gspca_dev, 0x01, 0x0001, 1);
	PDEBUG(D_FRAM, "before wait 0x%04x", gspca_dev->usb_buf[0]);
	reg_w_riv(gspca_dev, req, idx, val);
	reg_w_riv(gspca_dev, req, idx, val);


	PDEBUG(D_FRAM, "before wait 0x%04x", notdone);

	msleep(200);
	msleep(200);
	notdone = reg_r_12(gspca_dev, 0x01, 0x0001, 1);
	reg_r(gspca_dev, 0x01, 0x0001, 1);
	PDEBUG(D_FRAM, "after wait 0x%04x", notdone);
	PDEBUG(D_FRAM, "after wait 0x%04x", gspca_dev->usb_buf[0]);
}
}


#ifdef GSPCA_DEBUG
static void spca504_read_info(struct gspca_dev *gspca_dev)
static void spca504_read_info(struct gspca_dev *gspca_dev)
{
{
	int i;
	int i;
	u8 info[6];
	u8 info[6];


	for (i = 0; i < 6; i++)
	for (i = 0; i < 6; i++) {
		info[i] = reg_r_1(gspca_dev, i);
		reg_r(gspca_dev, 0, i, 1);
		info[i] = gspca_dev->usb_buf[0];
	}
	PDEBUG(D_STREAM,
	PDEBUG(D_STREAM,
		"Read info: %d %d %d %d %d %d."
		"Read info: %d %d %d %d %d %d."
		" Should be 1,0,2,2,0,0",
		" Should be 1,0,2,2,0,0",
		info[0], info[1], info[2],
		info[0], info[1], info[2],
		info[3], info[4], info[5]);
		info[3], info[4], info[5]);
}
}
#endif


static void spca504A_acknowledged_command(struct gspca_dev *gspca_dev,
static void spca504A_acknowledged_command(struct gspca_dev *gspca_dev,
			u8 req,
			u8 req,
			u16 idx, u16 val, u16 endcode, u8 count)
			u16 idx, u16 val, u8 endcode, u8 count)
{
{
	u16 status;
	u16 status;


	reg_w_riv(gspca_dev, req, idx, val);
	reg_w_riv(gspca_dev, req, idx, val);
	status = reg_r_12(gspca_dev, 0x01, 0x0001, 1);
	reg_r(gspca_dev, 0x01, 0x0001, 1);
	if (gspca_dev->usb_err < 0)
	if (gspca_dev->usb_err < 0)
		return;
		return;
	PDEBUG(D_FRAM, "Status 0x%04x Need 0x%04x", status, endcode);
	PDEBUG(D_FRAM, "Status 0x%02x Need 0x%02x",
			gspca_dev->usb_buf[0], endcode);
	if (!count)
	if (!count)
		return;
		return;
	count = 200;
	count = 200;
@@ -518,7 +469,8 @@ static void spca504A_acknowledged_command(struct gspca_dev *gspca_dev,
		msleep(10);
		msleep(10);
		/* gsmart mini2 write a each wait setting 1 ms is enough */
		/* gsmart mini2 write a each wait setting 1 ms is enough */
/*		reg_w_riv(gspca_dev, req, idx, val); */
/*		reg_w_riv(gspca_dev, req, idx, val); */
		status = reg_r_12(gspca_dev, 0x01, 0x0001, 1);
		reg_r(gspca_dev, 0x01, 0x0001, 1);
		status = gspca_dev->usb_buf[0];
		if (status == endcode) {
		if (status == endcode) {
			PDEBUG(D_FRAM, "status 0x%04x after wait %d",
			PDEBUG(D_FRAM, "status 0x%04x after wait %d",
				status, 200 - count);
				status, 200 - count);
@@ -555,6 +507,7 @@ static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev)
	}
	}
}
}


#ifdef GSPCA_DEBUG
static void spca50x_GetFirmware(struct gspca_dev *gspca_dev)
static void spca50x_GetFirmware(struct gspca_dev *gspca_dev)
{
{
	u8 *data;
	u8 *data;
@@ -566,6 +519,7 @@ static void spca50x_GetFirmware(struct gspca_dev *gspca_dev)
	reg_r(gspca_dev, 0x23, 0, 64);
	reg_r(gspca_dev, 0x23, 0, 64);
	reg_r(gspca_dev, 0x23, 1, 64);
	reg_r(gspca_dev, 0x23, 1, 64);
}
}
#endif


static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
{
{
@@ -578,7 +532,9 @@ static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
		reg_w_riv(gspca_dev, 0x31, 0, 0);
		reg_w_riv(gspca_dev, 0x31, 0, 0);
		spca504B_WaitCmdStatus(gspca_dev);
		spca504B_WaitCmdStatus(gspca_dev);
		spca504B_PollingDataReady(gspca_dev);
		spca504B_PollingDataReady(gspca_dev);
#ifdef GSPCA_DEBUG
		spca50x_GetFirmware(gspca_dev);
		spca50x_GetFirmware(gspca_dev);
#endif
		reg_w_1(gspca_dev, 0x24, 0, 8, 2);		/* type */
		reg_w_1(gspca_dev, 0x24, 0, 8, 2);		/* type */
		reg_r(gspca_dev, 0x24, 8, 1);
		reg_r(gspca_dev, 0x24, 8, 1);


@@ -628,7 +584,8 @@ static void spca504_wait_status(struct gspca_dev *gspca_dev)
	cnt = 256;
	cnt = 256;
	while (--cnt > 0) {
	while (--cnt > 0) {
		/* With this we get the status, when return 0 it's all ok */
		/* With this we get the status, when return 0 it's all ok */
		if (reg_r_12(gspca_dev, 0x06, 0x00, 1) == 0)
		reg_r(gspca_dev, 0x06, 0x00, 1);
		if (gspca_dev->usb_buf[0] == 0)
			return;
			return;
		msleep(10);
		msleep(10);
	}
	}
@@ -772,10 +729,14 @@ static int sd_init(struct gspca_dev *gspca_dev)
		/* fall thru */
		/* fall thru */
	case BRIDGE_SPCA533:
	case BRIDGE_SPCA533:
		spca504B_PollingDataReady(gspca_dev);
		spca504B_PollingDataReady(gspca_dev);
#ifdef GSPCA_DEBUG
		spca50x_GetFirmware(gspca_dev);
		spca50x_GetFirmware(gspca_dev);
#endif
		break;
		break;
	case BRIDGE_SPCA536:
	case BRIDGE_SPCA536:
#ifdef GSPCA_DEBUG
		spca50x_GetFirmware(gspca_dev);
		spca50x_GetFirmware(gspca_dev);
#endif
		reg_r(gspca_dev, 0x00, 0x5002, 1);
		reg_r(gspca_dev, 0x00, 0x5002, 1);
		reg_w_1(gspca_dev, 0x24, 0, 0, 0);
		reg_w_1(gspca_dev, 0x24, 0, 0, 0);
		reg_r(gspca_dev, 0x24, 0, 1);
		reg_r(gspca_dev, 0x24, 0, 1);
@@ -801,7 +762,9 @@ static int sd_init(struct gspca_dev *gspca_dev)
/*	case BRIDGE_SPCA504: */
/*	case BRIDGE_SPCA504: */
		PDEBUG(D_STREAM, "Opening SPCA504");
		PDEBUG(D_STREAM, "Opening SPCA504");
		if (sd->subtype == AiptekMiniPenCam13) {
		if (sd->subtype == AiptekMiniPenCam13) {
#ifdef GSPCA_DEBUG
			spca504_read_info(gspca_dev);
			spca504_read_info(gspca_dev);
#endif


			/* Set AE AWB Banding Type 3-> 50Hz 2-> 60Hz */
			/* Set AE AWB Banding Type 3-> 50Hz 2-> 60Hz */
			spca504A_acknowledged_command(gspca_dev, 0x24,
			spca504A_acknowledged_command(gspca_dev, 0x24,
@@ -873,7 +836,9 @@ static int sd_start(struct gspca_dev *gspca_dev)
		break;
		break;
	case BRIDGE_SPCA504:
	case BRIDGE_SPCA504:
		if (sd->subtype == AiptekMiniPenCam13) {
		if (sd->subtype == AiptekMiniPenCam13) {
#ifdef GSPCA_DEBUG
			spca504_read_info(gspca_dev);
			spca504_read_info(gspca_dev);
#endif


			/* Set AE AWB Banding Type 3-> 50Hz 2-> 60Hz */
			/* Set AE AWB Banding Type 3-> 50Hz 2-> 60Hz */
			spca504A_acknowledged_command(gspca_dev, 0x24,
			spca504A_acknowledged_command(gspca_dev, 0x24,
@@ -885,7 +850,9 @@ static int sd_start(struct gspca_dev *gspca_dev)
							0, 0, 0x9d, 1);
							0, 0, 0x9d, 1);
		} else {
		} else {
			spca504_acknowledged_command(gspca_dev, 0x24, 8, 3);
			spca504_acknowledged_command(gspca_dev, 0x24, 8, 3);
#ifdef GSPCA_DEBUG
			spca504_read_info(gspca_dev);
			spca504_read_info(gspca_dev);
#endif
			spca504_acknowledged_command(gspca_dev, 0x24, 8, 3);
			spca504_acknowledged_command(gspca_dev, 0x24, 8, 3);
			spca504_acknowledged_command(gspca_dev, 0x24, 0, 0);
			spca504_acknowledged_command(gspca_dev, 0x24, 0, 0);
		}
		}