@@ -602,7 +602,9 @@ static void reg_w_page(struct gspca_dev
/* output a variable sequence */
static void reg_w_var(struct gspca_dev *gspca_dev,
- const __u8 *seq)
+ const __u8 *seq,
+ const __u8 *page3, unsigned int page3_len,
+ const __u8 *page4, unsigned int page4_len)
{
int index, len;
@@ -613,10 +615,10 @@ static void reg_w_var(struct gspca_dev *
case END_OF_SEQUENCE:
return;
case LOAD_PAGE4:
- reg_w_page(gspca_dev, page4_7311, sizeof page4_7311);
+ reg_w_page(gspca_dev, page4, page4_len);
break;
case LOAD_PAGE3:
- reg_w_page(gspca_dev, page3_7302, sizeof page3_7302);
+ reg_w_page(gspca_dev, page3, page3_len);
break;
default:
if (len > USB_BUF_SZ) {
@@ -874,7 +876,9 @@ static int pac7302_sd_start(struct gspca
sd->sof_read = 0;
- reg_w_var(gspca_dev, start_7302);
+ reg_w_var(gspca_dev, start_7302,
+ page3_7302, sizeof(page3_7302),
+ NULL, 0);
pac7302_setbrightcont(gspca_dev);
pac7302_setcolors(gspca_dev);
pac7302_setgain(gspca_dev);
@@ -900,7 +904,9 @@ static int pac7311_sd_start(struct gspca
sd->sof_read = 0;
- reg_w_var(gspca_dev, start_7311);
+ reg_w_var(gspca_dev, start_7311,
+ NULL, 0,
+ page4_7311, sizeof(page4_7311));
pac7311_setcontrast(gspca_dev);
pac7311_setgain(gspca_dev);
pac7311_setexposure(gspca_dev);