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

[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
...@@ -396,57 +396,6 @@ static void reg_w_riv(struct gspca_dev *gspca_dev, ...@@ -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, ...@@ -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, ...@@ -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,17 +507,19 @@ static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev) ...@@ -555,17 +507,19 @@ 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;
data = gspca_dev->usb_buf; data = gspca_dev->usb_buf;
reg_r(gspca_dev, 0x20, 0, 5); reg_r(gspca_dev, 0x20, 0, 5);
PDEBUG(D_STREAM, "FirmWare : %d %d %d %d %d ", PDEBUG(D_STREAM, "FirmWare: %d %d %d %d %d",
data[0], data[1], data[2], data[3], data[4]); data[0], data[1], data[2], data[3], data[4]);
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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment