diff options
author | Ondrej Zary <linux@rainbow-software.org> | 2013-08-30 16:54:23 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2013-09-26 06:19:09 -0400 |
commit | 1966bc2a48f12d5d11c4fbe0880955cc4bfda0f9 (patch) | |
tree | 6a1c4e50b81e194b1d60f0e62fd566f662b3657a /drivers/media | |
parent | 08149ecf2cbf788b5a0d01481e290f84e4660c06 (diff) |
[media] gspca: store current mode instead of individual parameters
Store complete current mode (struct v4l2_pix_format) in struct gspca_dev
instead of separate pixfmt, width and height parameters.
This is a preparation for variable resolution support.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media')
33 files changed, 146 insertions, 136 deletions
diff --git a/drivers/media/usb/gspca/conex.c b/drivers/media/usb/gspca/conex.c index 38714df31ac4..2e15c80d6e3d 100644 --- a/drivers/media/usb/gspca/conex.c +++ b/drivers/media/usb/gspca/conex.c | |||
@@ -783,7 +783,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
783 | struct sd *sd = (struct sd *) gspca_dev; | 783 | struct sd *sd = (struct sd *) gspca_dev; |
784 | 784 | ||
785 | /* create the JPEG header */ | 785 | /* create the JPEG header */ |
786 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 786 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
787 | gspca_dev->pixfmt.width, | ||
787 | 0x22); /* JPEG 411 */ | 788 | 0x22); /* JPEG 411 */ |
788 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); | 789 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); |
789 | 790 | ||
diff --git a/drivers/media/usb/gspca/cpia1.c b/drivers/media/usb/gspca/cpia1.c index 064b53043b15..f23df4a9d8c5 100644 --- a/drivers/media/usb/gspca/cpia1.c +++ b/drivers/media/usb/gspca/cpia1.c | |||
@@ -1553,9 +1553,9 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
1553 | sd->params.format.videoSize = VIDEOSIZE_CIF; | 1553 | sd->params.format.videoSize = VIDEOSIZE_CIF; |
1554 | 1554 | ||
1555 | sd->params.roi.colEnd = sd->params.roi.colStart + | 1555 | sd->params.roi.colEnd = sd->params.roi.colStart + |
1556 | (gspca_dev->width >> 3); | 1556 | (gspca_dev->pixfmt.width >> 3); |
1557 | sd->params.roi.rowEnd = sd->params.roi.rowStart + | 1557 | sd->params.roi.rowEnd = sd->params.roi.rowStart + |
1558 | (gspca_dev->height >> 2); | 1558 | (gspca_dev->pixfmt.height >> 2); |
1559 | 1559 | ||
1560 | /* And now set the camera to a known state */ | 1560 | /* And now set the camera to a known state */ |
1561 | ret = do_command(gspca_dev, CPIA_COMMAND_SetGrabMode, | 1561 | ret = do_command(gspca_dev, CPIA_COMMAND_SetGrabMode, |
diff --git a/drivers/media/usb/gspca/gspca.c b/drivers/media/usb/gspca/gspca.c index 048507b27bb2..c341bbb638f0 100644 --- a/drivers/media/usb/gspca/gspca.c +++ b/drivers/media/usb/gspca/gspca.c | |||
@@ -504,8 +504,7 @@ static int frame_alloc(struct gspca_dev *gspca_dev, struct file *file, | |||
504 | unsigned int frsz; | 504 | unsigned int frsz; |
505 | int i; | 505 | int i; |
506 | 506 | ||
507 | i = gspca_dev->curr_mode; | 507 | frsz = gspca_dev->pixfmt.sizeimage; |
508 | frsz = gspca_dev->cam.cam_mode[i].sizeimage; | ||
509 | PDEBUG(D_STREAM, "frame alloc frsz: %d", frsz); | 508 | PDEBUG(D_STREAM, "frame alloc frsz: %d", frsz); |
510 | frsz = PAGE_ALIGN(frsz); | 509 | frsz = PAGE_ALIGN(frsz); |
511 | if (count >= GSPCA_MAX_FRAMES) | 510 | if (count >= GSPCA_MAX_FRAMES) |
@@ -627,16 +626,14 @@ static struct usb_host_endpoint *alt_xfer(struct usb_host_interface *alt, | |||
627 | static u32 which_bandwidth(struct gspca_dev *gspca_dev) | 626 | static u32 which_bandwidth(struct gspca_dev *gspca_dev) |
628 | { | 627 | { |
629 | u32 bandwidth; | 628 | u32 bandwidth; |
630 | int i; | ||
631 | 629 | ||
632 | /* get the (max) image size */ | 630 | /* get the (max) image size */ |
633 | i = gspca_dev->curr_mode; | 631 | bandwidth = gspca_dev->pixfmt.sizeimage; |
634 | bandwidth = gspca_dev->cam.cam_mode[i].sizeimage; | ||
635 | 632 | ||
636 | /* if the image is compressed, estimate its mean size */ | 633 | /* if the image is compressed, estimate its mean size */ |
637 | if (!gspca_dev->cam.needs_full_bandwidth && | 634 | if (!gspca_dev->cam.needs_full_bandwidth && |
638 | bandwidth < gspca_dev->cam.cam_mode[i].width * | 635 | bandwidth < gspca_dev->pixfmt.width * |
639 | gspca_dev->cam.cam_mode[i].height) | 636 | gspca_dev->pixfmt.height) |
640 | bandwidth = bandwidth * 3 / 8; /* 0.375 */ | 637 | bandwidth = bandwidth * 3 / 8; /* 0.375 */ |
641 | 638 | ||
642 | /* estimate the frame rate */ | 639 | /* estimate the frame rate */ |
@@ -650,7 +647,7 @@ static u32 which_bandwidth(struct gspca_dev *gspca_dev) | |||
650 | 647 | ||
651 | /* don't hope more than 15 fps with USB 1.1 and | 648 | /* don't hope more than 15 fps with USB 1.1 and |
652 | * image resolution >= 640x480 */ | 649 | * image resolution >= 640x480 */ |
653 | if (gspca_dev->width >= 640 | 650 | if (gspca_dev->pixfmt.width >= 640 |
654 | && gspca_dev->dev->speed == USB_SPEED_FULL) | 651 | && gspca_dev->dev->speed == USB_SPEED_FULL) |
655 | bandwidth *= 15; /* 15 fps */ | 652 | bandwidth *= 15; /* 15 fps */ |
656 | else | 653 | else |
@@ -982,9 +979,7 @@ static void gspca_set_default_mode(struct gspca_dev *gspca_dev) | |||
982 | 979 | ||
983 | i = gspca_dev->cam.nmodes - 1; /* take the highest mode */ | 980 | i = gspca_dev->cam.nmodes - 1; /* take the highest mode */ |
984 | gspca_dev->curr_mode = i; | 981 | gspca_dev->curr_mode = i; |
985 | gspca_dev->width = gspca_dev->cam.cam_mode[i].width; | 982 | gspca_dev->pixfmt = gspca_dev->cam.cam_mode[i]; |
986 | gspca_dev->height = gspca_dev->cam.cam_mode[i].height; | ||
987 | gspca_dev->pixfmt = gspca_dev->cam.cam_mode[i].pixelformat; | ||
988 | 983 | ||
989 | /* does nothing if ctrl_handler == NULL */ | 984 | /* does nothing if ctrl_handler == NULL */ |
990 | v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler); | 985 | v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler); |
@@ -1105,10 +1100,8 @@ static int vidioc_g_fmt_vid_cap(struct file *file, void *priv, | |||
1105 | struct v4l2_format *fmt) | 1100 | struct v4l2_format *fmt) |
1106 | { | 1101 | { |
1107 | struct gspca_dev *gspca_dev = video_drvdata(file); | 1102 | struct gspca_dev *gspca_dev = video_drvdata(file); |
1108 | int mode; | ||
1109 | 1103 | ||
1110 | mode = gspca_dev->curr_mode; | 1104 | fmt->fmt.pix = gspca_dev->pixfmt; |
1111 | fmt->fmt.pix = gspca_dev->cam.cam_mode[mode]; | ||
1112 | /* some drivers use priv internally, zero it before giving it to | 1105 | /* some drivers use priv internally, zero it before giving it to |
1113 | userspace */ | 1106 | userspace */ |
1114 | fmt->fmt.pix.priv = 0; | 1107 | fmt->fmt.pix.priv = 0; |
@@ -1187,10 +1180,8 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, | |||
1187 | ret = -EBUSY; | 1180 | ret = -EBUSY; |
1188 | goto out; | 1181 | goto out; |
1189 | } | 1182 | } |
1190 | gspca_dev->width = fmt->fmt.pix.width; | ||
1191 | gspca_dev->height = fmt->fmt.pix.height; | ||
1192 | gspca_dev->pixfmt = fmt->fmt.pix.pixelformat; | ||
1193 | gspca_dev->curr_mode = ret; | 1183 | gspca_dev->curr_mode = ret; |
1184 | gspca_dev->pixfmt = gspca_dev->cam.cam_mode[ret]; | ||
1194 | 1185 | ||
1195 | ret = 0; | 1186 | ret = 0; |
1196 | out: | 1187 | out: |
@@ -1471,8 +1462,9 @@ static int vidioc_streamon(struct file *file, void *priv, | |||
1471 | if (ret < 0) | 1462 | if (ret < 0) |
1472 | goto out; | 1463 | goto out; |
1473 | } | 1464 | } |
1474 | PDEBUG_MODE(gspca_dev, D_STREAM, "stream on OK", gspca_dev->pixfmt, | 1465 | PDEBUG_MODE(gspca_dev, D_STREAM, "stream on OK", |
1475 | gspca_dev->width, gspca_dev->height); | 1466 | gspca_dev->pixfmt.pixelformat, |
1467 | gspca_dev->pixfmt.width, gspca_dev->pixfmt.height); | ||
1476 | ret = 0; | 1468 | ret = 0; |
1477 | out: | 1469 | out: |
1478 | mutex_unlock(&gspca_dev->queue_lock); | 1470 | mutex_unlock(&gspca_dev->queue_lock); |
diff --git a/drivers/media/usb/gspca/gspca.h b/drivers/media/usb/gspca/gspca.h index ac0b11f46f50..0f3d15002555 100644 --- a/drivers/media/usb/gspca/gspca.h +++ b/drivers/media/usb/gspca/gspca.h | |||
@@ -183,9 +183,7 @@ struct gspca_dev { | |||
183 | __u8 streaming; /* protected by both mutexes (*) */ | 183 | __u8 streaming; /* protected by both mutexes (*) */ |
184 | 184 | ||
185 | __u8 curr_mode; /* current camera mode */ | 185 | __u8 curr_mode; /* current camera mode */ |
186 | __u32 pixfmt; /* current mode parameters */ | 186 | struct v4l2_pix_format pixfmt; /* current mode parameters */ |
187 | __u16 width; | ||
188 | __u16 height; | ||
189 | __u32 sequence; /* frame sequence number */ | 187 | __u32 sequence; /* frame sequence number */ |
190 | 188 | ||
191 | wait_queue_head_t wq; /* wait queue */ | 189 | wait_queue_head_t wq; /* wait queue */ |
diff --git a/drivers/media/usb/gspca/jeilinj.c b/drivers/media/usb/gspca/jeilinj.c index 8da3dde38385..19736e237b37 100644 --- a/drivers/media/usb/gspca/jeilinj.c +++ b/drivers/media/usb/gspca/jeilinj.c | |||
@@ -378,11 +378,12 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
378 | struct sd *dev = (struct sd *) gspca_dev; | 378 | struct sd *dev = (struct sd *) gspca_dev; |
379 | 379 | ||
380 | /* create the JPEG header */ | 380 | /* create the JPEG header */ |
381 | jpeg_define(dev->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 381 | jpeg_define(dev->jpeg_hdr, gspca_dev->pixfmt.height, |
382 | gspca_dev->pixfmt.width, | ||
382 | 0x21); /* JPEG 422 */ | 383 | 0x21); /* JPEG 422 */ |
383 | jpeg_set_qual(dev->jpeg_hdr, dev->quality); | 384 | jpeg_set_qual(dev->jpeg_hdr, dev->quality); |
384 | PDEBUG(D_STREAM, "Start streaming at %dx%d", | 385 | PDEBUG(D_STREAM, "Start streaming at %dx%d", |
385 | gspca_dev->height, gspca_dev->width); | 386 | gspca_dev->pixfmt.height, gspca_dev->pixfmt.width); |
386 | jlj_start(gspca_dev); | 387 | jlj_start(gspca_dev); |
387 | return gspca_dev->usb_err; | 388 | return gspca_dev->usb_err; |
388 | } | 389 | } |
diff --git a/drivers/media/usb/gspca/jl2005bcd.c b/drivers/media/usb/gspca/jl2005bcd.c index fdaeeb14453f..5b481fa43099 100644 --- a/drivers/media/usb/gspca/jl2005bcd.c +++ b/drivers/media/usb/gspca/jl2005bcd.c | |||
@@ -455,7 +455,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
455 | struct sd *sd = (struct sd *) gspca_dev; | 455 | struct sd *sd = (struct sd *) gspca_dev; |
456 | sd->cap_mode = gspca_dev->cam.cam_mode; | 456 | sd->cap_mode = gspca_dev->cam.cam_mode; |
457 | 457 | ||
458 | switch (gspca_dev->width) { | 458 | switch (gspca_dev->pixfmt.width) { |
459 | case 640: | 459 | case 640: |
460 | PDEBUG(D_STREAM, "Start streaming at vga resolution"); | 460 | PDEBUG(D_STREAM, "Start streaming at vga resolution"); |
461 | jl2005c_stream_start_vga_lg(gspca_dev); | 461 | jl2005c_stream_start_vga_lg(gspca_dev); |
diff --git a/drivers/media/usb/gspca/m5602/m5602_mt9m111.c b/drivers/media/usb/gspca/m5602/m5602_mt9m111.c index cfa4663f8934..27fcef11aef4 100644 --- a/drivers/media/usb/gspca/m5602/m5602_mt9m111.c +++ b/drivers/media/usb/gspca/m5602/m5602_mt9m111.c | |||
@@ -266,7 +266,7 @@ static int mt9m111_set_hvflip(struct gspca_dev *gspca_dev) | |||
266 | return err; | 266 | return err; |
267 | 267 | ||
268 | data[0] = MT9M111_RMB_OVER_SIZED; | 268 | data[0] = MT9M111_RMB_OVER_SIZED; |
269 | if (gspca_dev->width == 640) { | 269 | if (gspca_dev->pixfmt.width == 640) { |
270 | data[1] = MT9M111_RMB_ROW_SKIP_2X | | 270 | data[1] = MT9M111_RMB_ROW_SKIP_2X | |
271 | MT9M111_RMB_COLUMN_SKIP_2X | | 271 | MT9M111_RMB_COLUMN_SKIP_2X | |
272 | (hflip << 1) | vflip; | 272 | (hflip << 1) | vflip; |
diff --git a/drivers/media/usb/gspca/mars.c b/drivers/media/usb/gspca/mars.c index ff2c5abf115b..779a8785f421 100644 --- a/drivers/media/usb/gspca/mars.c +++ b/drivers/media/usb/gspca/mars.c | |||
@@ -254,7 +254,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
254 | int i; | 254 | int i; |
255 | 255 | ||
256 | /* create the JPEG header */ | 256 | /* create the JPEG header */ |
257 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 257 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
258 | gspca_dev->pixfmt.width, | ||
258 | 0x21); /* JPEG 422 */ | 259 | 0x21); /* JPEG 422 */ |
259 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); | 260 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); |
260 | 261 | ||
@@ -270,8 +271,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
270 | data[0] = 0x00; /* address */ | 271 | data[0] = 0x00; /* address */ |
271 | data[1] = 0x0c | 0x01; /* reg 0 */ | 272 | data[1] = 0x0c | 0x01; /* reg 0 */ |
272 | data[2] = 0x01; /* reg 1 */ | 273 | data[2] = 0x01; /* reg 1 */ |
273 | data[3] = gspca_dev->width / 8; /* h_size , reg 2 */ | 274 | data[3] = gspca_dev->pixfmt.width / 8; /* h_size , reg 2 */ |
274 | data[4] = gspca_dev->height / 8; /* v_size , reg 3 */ | 275 | data[4] = gspca_dev->pixfmt.height / 8; /* v_size , reg 3 */ |
275 | data[5] = 0x30; /* reg 4, MI, PAS5101 : | 276 | data[5] = 0x30; /* reg 4, MI, PAS5101 : |
276 | * 0x30 for 24mhz , 0x28 for 12mhz */ | 277 | * 0x30 for 24mhz , 0x28 for 12mhz */ |
277 | data[6] = 0x02; /* reg 5, H start - was 0x04 */ | 278 | data[6] = 0x02; /* reg 5, H start - was 0x04 */ |
diff --git a/drivers/media/usb/gspca/mr97310a.c b/drivers/media/usb/gspca/mr97310a.c index 68bb2f359666..f006e29ca019 100644 --- a/drivers/media/usb/gspca/mr97310a.c +++ b/drivers/media/usb/gspca/mr97310a.c | |||
@@ -521,7 +521,7 @@ static int start_cif_cam(struct gspca_dev *gspca_dev) | |||
521 | if (sd->sensor_type) | 521 | if (sd->sensor_type) |
522 | data[5] = 0xbb; | 522 | data[5] = 0xbb; |
523 | 523 | ||
524 | switch (gspca_dev->width) { | 524 | switch (gspca_dev->pixfmt.width) { |
525 | case 160: | 525 | case 160: |
526 | data[9] |= 0x04; /* reg 8, 2:1 scale down from 320 */ | 526 | data[9] |= 0x04; /* reg 8, 2:1 scale down from 320 */ |
527 | /* fall thru */ | 527 | /* fall thru */ |
@@ -618,7 +618,7 @@ static int start_vga_cam(struct gspca_dev *gspca_dev) | |||
618 | data[10] = 0x18; | 618 | data[10] = 0x18; |
619 | } | 619 | } |
620 | 620 | ||
621 | switch (gspca_dev->width) { | 621 | switch (gspca_dev->pixfmt.width) { |
622 | case 160: | 622 | case 160: |
623 | data[9] |= 0x0c; /* reg 8, 4:1 scale down */ | 623 | data[9] |= 0x0c; /* reg 8, 4:1 scale down */ |
624 | /* fall thru */ | 624 | /* fall thru */ |
@@ -847,7 +847,7 @@ static void setexposure(struct gspca_dev *gspca_dev, s32 expo, s32 min_clockdiv) | |||
847 | u8 clockdiv = (60 * expo + 7999) / 8000; | 847 | u8 clockdiv = (60 * expo + 7999) / 8000; |
848 | 848 | ||
849 | /* Limit framerate to not exceed usb bandwidth */ | 849 | /* Limit framerate to not exceed usb bandwidth */ |
850 | if (clockdiv < min_clockdiv && gspca_dev->width >= 320) | 850 | if (clockdiv < min_clockdiv && gspca_dev->pixfmt.width >= 320) |
851 | clockdiv = min_clockdiv; | 851 | clockdiv = min_clockdiv; |
852 | else if (clockdiv < 2) | 852 | else if (clockdiv < 2) |
853 | clockdiv = 2; | 853 | clockdiv = 2; |
diff --git a/drivers/media/usb/gspca/nw80x.c b/drivers/media/usb/gspca/nw80x.c index 44c9964b1b3e..599f755e75b8 100644 --- a/drivers/media/usb/gspca/nw80x.c +++ b/drivers/media/usb/gspca/nw80x.c | |||
@@ -1708,7 +1708,7 @@ static void setautogain(struct gspca_dev *gspca_dev, s32 val) | |||
1708 | 1708 | ||
1709 | reg_r(gspca_dev, 0x1004, 1); | 1709 | reg_r(gspca_dev, 0x1004, 1); |
1710 | if (gspca_dev->usb_buf[0] & 0x04) { /* if AE_FULL_FRM */ | 1710 | if (gspca_dev->usb_buf[0] & 0x04) { /* if AE_FULL_FRM */ |
1711 | sd->ae_res = gspca_dev->width * gspca_dev->height; | 1711 | sd->ae_res = gspca_dev->pixfmt.width * gspca_dev->pixfmt.height; |
1712 | } else { /* get the AE window size */ | 1712 | } else { /* get the AE window size */ |
1713 | reg_r(gspca_dev, 0x1011, 8); | 1713 | reg_r(gspca_dev, 0x1011, 8); |
1714 | w = (gspca_dev->usb_buf[1] << 8) + gspca_dev->usb_buf[0] | 1714 | w = (gspca_dev->usb_buf[1] << 8) + gspca_dev->usb_buf[0] |
@@ -1717,7 +1717,8 @@ static void setautogain(struct gspca_dev *gspca_dev, s32 val) | |||
1717 | - (gspca_dev->usb_buf[7] << 8) - gspca_dev->usb_buf[6]; | 1717 | - (gspca_dev->usb_buf[7] << 8) - gspca_dev->usb_buf[6]; |
1718 | sd->ae_res = h * w; | 1718 | sd->ae_res = h * w; |
1719 | if (sd->ae_res == 0) | 1719 | if (sd->ae_res == 0) |
1720 | sd->ae_res = gspca_dev->width * gspca_dev->height; | 1720 | sd->ae_res = gspca_dev->pixfmt.width * |
1721 | gspca_dev->pixfmt.height; | ||
1721 | } | 1722 | } |
1722 | } | 1723 | } |
1723 | 1724 | ||
@@ -1856,21 +1857,21 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
1856 | reg_w_buf(gspca_dev, cmd); | 1857 | reg_w_buf(gspca_dev, cmd); |
1857 | switch (sd->webcam) { | 1858 | switch (sd->webcam) { |
1858 | case P35u: | 1859 | case P35u: |
1859 | if (gspca_dev->width == 320) | 1860 | if (gspca_dev->pixfmt.width == 320) |
1860 | reg_w_buf(gspca_dev, nw801_start_qvga); | 1861 | reg_w_buf(gspca_dev, nw801_start_qvga); |
1861 | else | 1862 | else |
1862 | reg_w_buf(gspca_dev, nw801_start_vga); | 1863 | reg_w_buf(gspca_dev, nw801_start_vga); |
1863 | reg_w_buf(gspca_dev, nw801_start_2); | 1864 | reg_w_buf(gspca_dev, nw801_start_2); |
1864 | break; | 1865 | break; |
1865 | case Kr651us: | 1866 | case Kr651us: |
1866 | if (gspca_dev->width == 320) | 1867 | if (gspca_dev->pixfmt.width == 320) |
1867 | reg_w_buf(gspca_dev, kr651_start_qvga); | 1868 | reg_w_buf(gspca_dev, kr651_start_qvga); |
1868 | else | 1869 | else |
1869 | reg_w_buf(gspca_dev, kr651_start_vga); | 1870 | reg_w_buf(gspca_dev, kr651_start_vga); |
1870 | reg_w_buf(gspca_dev, kr651_start_2); | 1871 | reg_w_buf(gspca_dev, kr651_start_2); |
1871 | break; | 1872 | break; |
1872 | case Proscope: | 1873 | case Proscope: |
1873 | if (gspca_dev->width == 320) | 1874 | if (gspca_dev->pixfmt.width == 320) |
1874 | reg_w_buf(gspca_dev, proscope_start_qvga); | 1875 | reg_w_buf(gspca_dev, proscope_start_qvga); |
1875 | else | 1876 | else |
1876 | reg_w_buf(gspca_dev, proscope_start_vga); | 1877 | reg_w_buf(gspca_dev, proscope_start_vga); |
diff --git a/drivers/media/usb/gspca/ov519.c b/drivers/media/usb/gspca/ov519.c index 8937d79fd176..c95f32a0c02b 100644 --- a/drivers/media/usb/gspca/ov519.c +++ b/drivers/media/usb/gspca/ov519.c | |||
@@ -3468,7 +3468,7 @@ static int sd_isoc_init(struct gspca_dev *gspca_dev) | |||
3468 | 3468 | ||
3469 | switch (sd->bridge) { | 3469 | switch (sd->bridge) { |
3470 | case BRIDGE_OVFX2: | 3470 | case BRIDGE_OVFX2: |
3471 | if (gspca_dev->width != 800) | 3471 | if (gspca_dev->pixfmt.width != 800) |
3472 | gspca_dev->cam.bulk_size = OVFX2_BULK_SIZE; | 3472 | gspca_dev->cam.bulk_size = OVFX2_BULK_SIZE; |
3473 | else | 3473 | else |
3474 | gspca_dev->cam.bulk_size = 7 * 4096; | 3474 | gspca_dev->cam.bulk_size = 7 * 4096; |
@@ -3507,8 +3507,8 @@ static void ov511_mode_init_regs(struct sd *sd) | |||
3507 | /* Here I'm assuming that snapshot size == image size. | 3507 | /* Here I'm assuming that snapshot size == image size. |
3508 | * I hope that's always true. --claudio | 3508 | * I hope that's always true. --claudio |
3509 | */ | 3509 | */ |
3510 | hsegs = (sd->gspca_dev.width >> 3) - 1; | 3510 | hsegs = (sd->gspca_dev.pixfmt.width >> 3) - 1; |
3511 | vsegs = (sd->gspca_dev.height >> 3) - 1; | 3511 | vsegs = (sd->gspca_dev.pixfmt.height >> 3) - 1; |
3512 | 3512 | ||
3513 | reg_w(sd, R511_CAM_PXCNT, hsegs); | 3513 | reg_w(sd, R511_CAM_PXCNT, hsegs); |
3514 | reg_w(sd, R511_CAM_LNCNT, vsegs); | 3514 | reg_w(sd, R511_CAM_LNCNT, vsegs); |
@@ -3541,7 +3541,7 @@ static void ov511_mode_init_regs(struct sd *sd) | |||
3541 | case SEN_OV7640: | 3541 | case SEN_OV7640: |
3542 | case SEN_OV7648: | 3542 | case SEN_OV7648: |
3543 | case SEN_OV76BE: | 3543 | case SEN_OV76BE: |
3544 | if (sd->gspca_dev.width == 320) | 3544 | if (sd->gspca_dev.pixfmt.width == 320) |
3545 | interlaced = 1; | 3545 | interlaced = 1; |
3546 | /* Fall through */ | 3546 | /* Fall through */ |
3547 | case SEN_OV6630: | 3547 | case SEN_OV6630: |
@@ -3551,7 +3551,7 @@ static void ov511_mode_init_regs(struct sd *sd) | |||
3551 | case 30: | 3551 | case 30: |
3552 | case 25: | 3552 | case 25: |
3553 | /* Not enough bandwidth to do 640x480 @ 30 fps */ | 3553 | /* Not enough bandwidth to do 640x480 @ 30 fps */ |
3554 | if (sd->gspca_dev.width != 640) { | 3554 | if (sd->gspca_dev.pixfmt.width != 640) { |
3555 | sd->clockdiv = 0; | 3555 | sd->clockdiv = 0; |
3556 | break; | 3556 | break; |
3557 | } | 3557 | } |
@@ -3584,7 +3584,8 @@ static void ov511_mode_init_regs(struct sd *sd) | |||
3584 | 3584 | ||
3585 | /* Check if we have enough bandwidth to disable compression */ | 3585 | /* Check if we have enough bandwidth to disable compression */ |
3586 | fps = (interlaced ? 60 : 30) / (sd->clockdiv + 1) + 1; | 3586 | fps = (interlaced ? 60 : 30) / (sd->clockdiv + 1) + 1; |
3587 | needed = fps * sd->gspca_dev.width * sd->gspca_dev.height * 3 / 2; | 3587 | needed = fps * sd->gspca_dev.pixfmt.width * |
3588 | sd->gspca_dev.pixfmt.height * 3 / 2; | ||
3588 | /* 1000 isoc packets/sec */ | 3589 | /* 1000 isoc packets/sec */ |
3589 | if (needed > 1000 * packet_size) { | 3590 | if (needed > 1000 * packet_size) { |
3590 | /* Enable Y and UV quantization and compression */ | 3591 | /* Enable Y and UV quantization and compression */ |
@@ -3646,8 +3647,8 @@ static void ov518_mode_init_regs(struct sd *sd) | |||
3646 | reg_w(sd, 0x38, 0x80); | 3647 | reg_w(sd, 0x38, 0x80); |
3647 | } | 3648 | } |
3648 | 3649 | ||
3649 | hsegs = sd->gspca_dev.width / 16; | 3650 | hsegs = sd->gspca_dev.pixfmt.width / 16; |
3650 | vsegs = sd->gspca_dev.height / 4; | 3651 | vsegs = sd->gspca_dev.pixfmt.height / 4; |
3651 | 3652 | ||
3652 | reg_w(sd, 0x29, hsegs); | 3653 | reg_w(sd, 0x29, hsegs); |
3653 | reg_w(sd, 0x2a, vsegs); | 3654 | reg_w(sd, 0x2a, vsegs); |
@@ -3686,7 +3687,8 @@ static void ov518_mode_init_regs(struct sd *sd) | |||
3686 | * happened to be with revision < 2 cams using an | 3687 | * happened to be with revision < 2 cams using an |
3687 | * OV7620 and revision 2 cams using an OV7620AE. | 3688 | * OV7620 and revision 2 cams using an OV7620AE. |
3688 | */ | 3689 | */ |
3689 | if (sd->revision > 0 && sd->gspca_dev.width == 640) { | 3690 | if (sd->revision > 0 && |
3691 | sd->gspca_dev.pixfmt.width == 640) { | ||
3690 | reg_w(sd, 0x20, 0x60); | 3692 | reg_w(sd, 0x20, 0x60); |
3691 | reg_w(sd, 0x21, 0x1f); | 3693 | reg_w(sd, 0x21, 0x1f); |
3692 | } else { | 3694 | } else { |
@@ -3812,8 +3814,8 @@ static void ov519_mode_init_regs(struct sd *sd) | |||
3812 | break; | 3814 | break; |
3813 | } | 3815 | } |
3814 | 3816 | ||
3815 | reg_w(sd, OV519_R10_H_SIZE, sd->gspca_dev.width >> 4); | 3817 | reg_w(sd, OV519_R10_H_SIZE, sd->gspca_dev.pixfmt.width >> 4); |
3816 | reg_w(sd, OV519_R11_V_SIZE, sd->gspca_dev.height >> 3); | 3818 | reg_w(sd, OV519_R11_V_SIZE, sd->gspca_dev.pixfmt.height >> 3); |
3817 | if (sd->sensor == SEN_OV7670 && | 3819 | if (sd->sensor == SEN_OV7670 && |
3818 | sd->gspca_dev.cam.cam_mode[sd->gspca_dev.curr_mode].priv) | 3820 | sd->gspca_dev.cam.cam_mode[sd->gspca_dev.curr_mode].priv) |
3819 | reg_w(sd, OV519_R12_X_OFFSETL, 0x04); | 3821 | reg_w(sd, OV519_R12_X_OFFSETL, 0x04); |
@@ -3947,14 +3949,16 @@ static void mode_init_ov_sensor_regs(struct sd *sd) | |||
3947 | } | 3949 | } |
3948 | case SEN_OV3610: | 3950 | case SEN_OV3610: |
3949 | if (qvga) { | 3951 | if (qvga) { |
3950 | xstart = (1040 - gspca_dev->width) / 2 + (0x1f << 4); | 3952 | xstart = (1040 - gspca_dev->pixfmt.width) / 2 + |
3951 | ystart = (776 - gspca_dev->height) / 2; | 3953 | (0x1f << 4); |
3954 | ystart = (776 - gspca_dev->pixfmt.height) / 2; | ||
3952 | } else { | 3955 | } else { |
3953 | xstart = (2076 - gspca_dev->width) / 2 + (0x10 << 4); | 3956 | xstart = (2076 - gspca_dev->pixfmt.width) / 2 + |
3954 | ystart = (1544 - gspca_dev->height) / 2; | 3957 | (0x10 << 4); |
3958 | ystart = (1544 - gspca_dev->pixfmt.height) / 2; | ||
3955 | } | 3959 | } |
3956 | xend = xstart + gspca_dev->width; | 3960 | xend = xstart + gspca_dev->pixfmt.width; |
3957 | yend = ystart + gspca_dev->height; | 3961 | yend = ystart + gspca_dev->pixfmt.height; |
3958 | /* Writing to the COMH register resets the other windowing regs | 3962 | /* Writing to the COMH register resets the other windowing regs |
3959 | to their default values, so we must do this first. */ | 3963 | to their default values, so we must do this first. */ |
3960 | i2c_w_mask(sd, 0x12, qvga ? 0x40 : 0x00, 0xf0); | 3964 | i2c_w_mask(sd, 0x12, qvga ? 0x40 : 0x00, 0xf0); |
@@ -4229,8 +4233,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
4229 | struct sd *sd = (struct sd *) gspca_dev; | 4233 | struct sd *sd = (struct sd *) gspca_dev; |
4230 | 4234 | ||
4231 | /* Default for most bridges, allow bridge_mode_init_regs to override */ | 4235 | /* Default for most bridges, allow bridge_mode_init_regs to override */ |
4232 | sd->sensor_width = sd->gspca_dev.width; | 4236 | sd->sensor_width = sd->gspca_dev.pixfmt.width; |
4233 | sd->sensor_height = sd->gspca_dev.height; | 4237 | sd->sensor_height = sd->gspca_dev.pixfmt.height; |
4234 | 4238 | ||
4235 | switch (sd->bridge) { | 4239 | switch (sd->bridge) { |
4236 | case BRIDGE_OV511: | 4240 | case BRIDGE_OV511: |
@@ -4345,12 +4349,13 @@ static void ov511_pkt_scan(struct gspca_dev *gspca_dev, | |||
4345 | ov51x_handle_button(gspca_dev, (in[8] >> 2) & 1); | 4349 | ov51x_handle_button(gspca_dev, (in[8] >> 2) & 1); |
4346 | if (in[8] & 0x80) { | 4350 | if (in[8] & 0x80) { |
4347 | /* Frame end */ | 4351 | /* Frame end */ |
4348 | if ((in[9] + 1) * 8 != gspca_dev->width || | 4352 | if ((in[9] + 1) * 8 != gspca_dev->pixfmt.width || |
4349 | (in[10] + 1) * 8 != gspca_dev->height) { | 4353 | (in[10] + 1) * 8 != gspca_dev->pixfmt.height) { |
4350 | PERR("Invalid frame size, got: %dx%d," | 4354 | PERR("Invalid frame size, got: %dx%d," |
4351 | " requested: %dx%d\n", | 4355 | " requested: %dx%d\n", |
4352 | (in[9] + 1) * 8, (in[10] + 1) * 8, | 4356 | (in[9] + 1) * 8, (in[10] + 1) * 8, |
4353 | gspca_dev->width, gspca_dev->height); | 4357 | gspca_dev->pixfmt.width, |
4358 | gspca_dev->pixfmt.height); | ||
4354 | gspca_dev->last_packet_type = DISCARD_PACKET; | 4359 | gspca_dev->last_packet_type = DISCARD_PACKET; |
4355 | return; | 4360 | return; |
4356 | } | 4361 | } |
@@ -4470,7 +4475,8 @@ static void ovfx2_pkt_scan(struct gspca_dev *gspca_dev, | |||
4470 | if (sd->first_frame) { | 4475 | if (sd->first_frame) { |
4471 | sd->first_frame--; | 4476 | sd->first_frame--; |
4472 | if (gspca_dev->image_len < | 4477 | if (gspca_dev->image_len < |
4473 | sd->gspca_dev.width * sd->gspca_dev.height) | 4478 | sd->gspca_dev.pixfmt.width * |
4479 | sd->gspca_dev.pixfmt.height) | ||
4474 | gspca_dev->last_packet_type = DISCARD_PACKET; | 4480 | gspca_dev->last_packet_type = DISCARD_PACKET; |
4475 | } | 4481 | } |
4476 | gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); | 4482 | gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0); |
diff --git a/drivers/media/usb/gspca/ov534.c b/drivers/media/usb/gspca/ov534.c index 03a33c46ca2c..90f0d637cd9d 100644 --- a/drivers/media/usb/gspca/ov534.c +++ b/drivers/media/usb/gspca/ov534.c | |||
@@ -1440,9 +1440,10 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev, | |||
1440 | /* If this packet is marked as EOF, end the frame */ | 1440 | /* If this packet is marked as EOF, end the frame */ |
1441 | } else if (data[1] & UVC_STREAM_EOF) { | 1441 | } else if (data[1] & UVC_STREAM_EOF) { |
1442 | sd->last_pts = 0; | 1442 | sd->last_pts = 0; |
1443 | if (gspca_dev->pixfmt == V4L2_PIX_FMT_YUYV | 1443 | if (gspca_dev->pixfmt.pixelformat == V4L2_PIX_FMT_YUYV |
1444 | && gspca_dev->image_len + len - 12 != | 1444 | && gspca_dev->image_len + len - 12 != |
1445 | gspca_dev->width * gspca_dev->height * 2) { | 1445 | gspca_dev->pixfmt.width * |
1446 | gspca_dev->pixfmt.height * 2) { | ||
1446 | PDEBUG(D_PACK, "wrong sized frame"); | 1447 | PDEBUG(D_PACK, "wrong sized frame"); |
1447 | goto discard; | 1448 | goto discard; |
1448 | } | 1449 | } |
diff --git a/drivers/media/usb/gspca/pac207.c b/drivers/media/usb/gspca/pac207.c index 83519be94e58..cd79c180f67b 100644 --- a/drivers/media/usb/gspca/pac207.c +++ b/drivers/media/usb/gspca/pac207.c | |||
@@ -299,7 +299,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
299 | pac207_write_regs(gspca_dev, 0x0042, pac207_sensor_init[3], 8); | 299 | pac207_write_regs(gspca_dev, 0x0042, pac207_sensor_init[3], 8); |
300 | 300 | ||
301 | /* Compression Balance */ | 301 | /* Compression Balance */ |
302 | if (gspca_dev->width == 176) | 302 | if (gspca_dev->pixfmt.width == 176) |
303 | pac207_write_reg(gspca_dev, 0x4a, 0xff); | 303 | pac207_write_reg(gspca_dev, 0x4a, 0xff); |
304 | else | 304 | else |
305 | pac207_write_reg(gspca_dev, 0x4a, 0x30); | 305 | pac207_write_reg(gspca_dev, 0x4a, 0x30); |
@@ -317,7 +317,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
317 | mode = 0x00; | 317 | mode = 0x00; |
318 | else | 318 | else |
319 | mode = 0x02; | 319 | mode = 0x02; |
320 | if (gspca_dev->width == 176) { /* 176x144 */ | 320 | if (gspca_dev->pixfmt.width == 176) { /* 176x144 */ |
321 | mode |= 0x01; | 321 | mode |= 0x01; |
322 | PDEBUG(D_STREAM, "pac207_start mode 176x144"); | 322 | PDEBUG(D_STREAM, "pac207_start mode 176x144"); |
323 | } else { /* 352x288 */ | 323 | } else { /* 352x288 */ |
diff --git a/drivers/media/usb/gspca/pac7311.c b/drivers/media/usb/gspca/pac7311.c index 1a5bdc853a80..25f86b1e74a8 100644 --- a/drivers/media/usb/gspca/pac7311.c +++ b/drivers/media/usb/gspca/pac7311.c | |||
@@ -326,7 +326,7 @@ static void setexposure(struct gspca_dev *gspca_dev, s32 val) | |||
326 | * 640x480 mode and page 4 reg 2 <= 3 then it must be 9 | 326 | * 640x480 mode and page 4 reg 2 <= 3 then it must be 9 |
327 | */ | 327 | */ |
328 | reg_w(gspca_dev, 0xff, 0x01); | 328 | reg_w(gspca_dev, 0xff, 0x01); |
329 | if (gspca_dev->width != 640 && val <= 3) | 329 | if (gspca_dev->pixfmt.width != 640 && val <= 3) |
330 | reg_w(gspca_dev, 0x08, 0x09); | 330 | reg_w(gspca_dev, 0x08, 0x09); |
331 | else | 331 | else |
332 | reg_w(gspca_dev, 0x08, 0x08); | 332 | reg_w(gspca_dev, 0x08, 0x08); |
@@ -337,7 +337,7 @@ static void setexposure(struct gspca_dev *gspca_dev, s32 val) | |||
337 | * camera to use higher compression or we may run out of | 337 | * camera to use higher compression or we may run out of |
338 | * bandwidth. | 338 | * bandwidth. |
339 | */ | 339 | */ |
340 | if (gspca_dev->width == 640 && val == 2) | 340 | if (gspca_dev->pixfmt.width == 640 && val == 2) |
341 | reg_w(gspca_dev, 0x80, 0x01); | 341 | reg_w(gspca_dev, 0x80, 0x01); |
342 | else | 342 | else |
343 | reg_w(gspca_dev, 0x80, 0x1c); | 343 | reg_w(gspca_dev, 0x80, 0x1c); |
@@ -615,7 +615,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev, | |||
615 | 615 | ||
616 | /* Start the new frame with the jpeg header */ | 616 | /* Start the new frame with the jpeg header */ |
617 | pac_start_frame(gspca_dev, | 617 | pac_start_frame(gspca_dev, |
618 | gspca_dev->height, gspca_dev->width); | 618 | gspca_dev->pixfmt.height, gspca_dev->pixfmt.width); |
619 | } | 619 | } |
620 | gspca_frame_add(gspca_dev, INTER_PACKET, data, len); | 620 | gspca_frame_add(gspca_dev, INTER_PACKET, data, len); |
621 | } | 621 | } |
diff --git a/drivers/media/usb/gspca/se401.c b/drivers/media/usb/gspca/se401.c index 5f729b8aa2bd..5102cea50471 100644 --- a/drivers/media/usb/gspca/se401.c +++ b/drivers/media/usb/gspca/se401.c | |||
@@ -354,9 +354,9 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
354 | 354 | ||
355 | /* set size + mode */ | 355 | /* set size + mode */ |
356 | se401_write_req(gspca_dev, SE401_REQ_SET_WIDTH, | 356 | se401_write_req(gspca_dev, SE401_REQ_SET_WIDTH, |
357 | gspca_dev->width * mult, 0); | 357 | gspca_dev->pixfmt.width * mult, 0); |
358 | se401_write_req(gspca_dev, SE401_REQ_SET_HEIGHT, | 358 | se401_write_req(gspca_dev, SE401_REQ_SET_HEIGHT, |
359 | gspca_dev->height * mult, 0); | 359 | gspca_dev->pixfmt.height * mult, 0); |
360 | /* | 360 | /* |
361 | * HDG: disabled this as it does not seem to do anything | 361 | * HDG: disabled this as it does not seem to do anything |
362 | * se401_write_req(gspca_dev, SE401_REQ_SET_OUTPUT_MODE, | 362 | * se401_write_req(gspca_dev, SE401_REQ_SET_OUTPUT_MODE, |
@@ -480,7 +480,7 @@ static void sd_complete_frame(struct gspca_dev *gspca_dev, u8 *data, int len) | |||
480 | static void sd_pkt_scan_janggu(struct gspca_dev *gspca_dev, u8 *data, int len) | 480 | static void sd_pkt_scan_janggu(struct gspca_dev *gspca_dev, u8 *data, int len) |
481 | { | 481 | { |
482 | struct sd *sd = (struct sd *)gspca_dev; | 482 | struct sd *sd = (struct sd *)gspca_dev; |
483 | int imagesize = gspca_dev->width * gspca_dev->height; | 483 | int imagesize = gspca_dev->pixfmt.width * gspca_dev->pixfmt.height; |
484 | int i, plen, bits, pixels, info, count; | 484 | int i, plen, bits, pixels, info, count; |
485 | 485 | ||
486 | if (sd->restart_stream) | 486 | if (sd->restart_stream) |
diff --git a/drivers/media/usb/gspca/sn9c20x.c b/drivers/media/usb/gspca/sn9c20x.c index f4453d52801b..2a38621cf718 100644 --- a/drivers/media/usb/gspca/sn9c20x.c +++ b/drivers/media/usb/gspca/sn9c20x.c | |||
@@ -1955,7 +1955,7 @@ static int sd_isoc_init(struct gspca_dev *gspca_dev) | |||
1955 | return 0; | 1955 | return 0; |
1956 | } | 1956 | } |
1957 | 1957 | ||
1958 | switch (gspca_dev->width) { | 1958 | switch (gspca_dev->pixfmt.width) { |
1959 | case 160: /* 160x120 */ | 1959 | case 160: /* 160x120 */ |
1960 | gspca_dev->alt = 2; | 1960 | gspca_dev->alt = 2; |
1961 | break; | 1961 | break; |
@@ -1985,8 +1985,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
1985 | { | 1985 | { |
1986 | struct sd *sd = (struct sd *) gspca_dev; | 1986 | struct sd *sd = (struct sd *) gspca_dev; |
1987 | int mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; | 1987 | int mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; |
1988 | int width = gspca_dev->width; | 1988 | int width = gspca_dev->pixfmt.width; |
1989 | int height = gspca_dev->height; | 1989 | int height = gspca_dev->pixfmt.height; |
1990 | u8 fmt, scale = 0; | 1990 | u8 fmt, scale = 0; |
1991 | 1991 | ||
1992 | jpeg_define(sd->jpeg_hdr, height, width, | 1992 | jpeg_define(sd->jpeg_hdr, height, width, |
diff --git a/drivers/media/usb/gspca/sonixb.c b/drivers/media/usb/gspca/sonixb.c index d7ff3b9687c5..921802cbdfe0 100644 --- a/drivers/media/usb/gspca/sonixb.c +++ b/drivers/media/usb/gspca/sonixb.c | |||
@@ -753,7 +753,7 @@ static void setexposure(struct gspca_dev *gspca_dev) | |||
753 | /* In 640x480, if the reg11 has less than 4, the image is | 753 | /* In 640x480, if the reg11 has less than 4, the image is |
754 | unstable (the bridge goes into a higher compression mode | 754 | unstable (the bridge goes into a higher compression mode |
755 | which we have not reverse engineered yet). */ | 755 | which we have not reverse engineered yet). */ |
756 | if (gspca_dev->width == 640 && reg11 < 4) | 756 | if (gspca_dev->pixfmt.width == 640 && reg11 < 4) |
757 | reg11 = 4; | 757 | reg11 = 4; |
758 | 758 | ||
759 | /* frame exposure time in ms = 1000 * reg11 / 30 -> | 759 | /* frame exposure time in ms = 1000 * reg11 / 30 -> |
diff --git a/drivers/media/usb/gspca/sonixj.c b/drivers/media/usb/gspca/sonixj.c index 3b5ccb1c4cdf..c69b45d7cfbf 100644 --- a/drivers/media/usb/gspca/sonixj.c +++ b/drivers/media/usb/gspca/sonixj.c | |||
@@ -2204,7 +2204,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
2204 | { 0x14, 0xe7, 0x1e, 0xdd }; | 2204 | { 0x14, 0xe7, 0x1e, 0xdd }; |
2205 | 2205 | ||
2206 | /* create the JPEG header */ | 2206 | /* create the JPEG header */ |
2207 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 2207 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
2208 | gspca_dev->pixfmt.width, | ||
2208 | 0x21); /* JPEG 422 */ | 2209 | 0x21); /* JPEG 422 */ |
2209 | 2210 | ||
2210 | /* initialize the bridge */ | 2211 | /* initialize the bridge */ |
diff --git a/drivers/media/usb/gspca/spca1528.c b/drivers/media/usb/gspca/spca1528.c index 688592b289ea..f38fd8949609 100644 --- a/drivers/media/usb/gspca/spca1528.c +++ b/drivers/media/usb/gspca/spca1528.c | |||
@@ -255,7 +255,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
255 | struct sd *sd = (struct sd *) gspca_dev; | 255 | struct sd *sd = (struct sd *) gspca_dev; |
256 | 256 | ||
257 | /* initialize the JPEG header */ | 257 | /* initialize the JPEG header */ |
258 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 258 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
259 | gspca_dev->pixfmt.width, | ||
259 | 0x22); /* JPEG 411 */ | 260 | 0x22); /* JPEG 411 */ |
260 | 261 | ||
261 | /* the JPEG quality shall be 85% */ | 262 | /* the JPEG quality shall be 85% */ |
diff --git a/drivers/media/usb/gspca/spca500.c b/drivers/media/usb/gspca/spca500.c index 9f8bf51fd64b..f011a309dd65 100644 --- a/drivers/media/usb/gspca/spca500.c +++ b/drivers/media/usb/gspca/spca500.c | |||
@@ -608,7 +608,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
608 | __u8 xmult, ymult; | 608 | __u8 xmult, ymult; |
609 | 609 | ||
610 | /* create the JPEG header */ | 610 | /* create the JPEG header */ |
611 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 611 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
612 | gspca_dev->pixfmt.width, | ||
612 | 0x22); /* JPEG 411 */ | 613 | 0x22); /* JPEG 411 */ |
613 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); | 614 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); |
614 | 615 | ||
diff --git a/drivers/media/usb/gspca/sq905c.c b/drivers/media/usb/gspca/sq905c.c index acb19fb9a3df..aa21edc9502d 100644 --- a/drivers/media/usb/gspca/sq905c.c +++ b/drivers/media/usb/gspca/sq905c.c | |||
@@ -272,7 +272,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
272 | 272 | ||
273 | dev->cap_mode = gspca_dev->cam.cam_mode; | 273 | dev->cap_mode = gspca_dev->cam.cam_mode; |
274 | /* "Open the shutter" and set size, to start capture */ | 274 | /* "Open the shutter" and set size, to start capture */ |
275 | switch (gspca_dev->width) { | 275 | switch (gspca_dev->pixfmt.width) { |
276 | case 640: | 276 | case 640: |
277 | PDEBUG(D_STREAM, "Start streaming at high resolution"); | 277 | PDEBUG(D_STREAM, "Start streaming at high resolution"); |
278 | dev->cap_mode++; | 278 | dev->cap_mode++; |
diff --git a/drivers/media/usb/gspca/sq930x.c b/drivers/media/usb/gspca/sq930x.c index b10d0821111c..e274cf19a3ea 100644 --- a/drivers/media/usb/gspca/sq930x.c +++ b/drivers/media/usb/gspca/sq930x.c | |||
@@ -906,7 +906,8 @@ static int sd_isoc_init(struct gspca_dev *gspca_dev) | |||
906 | 906 | ||
907 | gspca_dev->cam.bulk_nurbs = 1; /* there must be one URB only */ | 907 | gspca_dev->cam.bulk_nurbs = 1; /* there must be one URB only */ |
908 | sd->do_ctrl = 0; | 908 | sd->do_ctrl = 0; |
909 | gspca_dev->cam.bulk_size = gspca_dev->width * gspca_dev->height + 8; | 909 | gspca_dev->cam.bulk_size = gspca_dev->pixfmt.width * |
910 | gspca_dev->pixfmt.height + 8; | ||
910 | return 0; | 911 | return 0; |
911 | } | 912 | } |
912 | 913 | ||
diff --git a/drivers/media/usb/gspca/stk014.c b/drivers/media/usb/gspca/stk014.c index 8c0982607f25..b0c70fea760b 100644 --- a/drivers/media/usb/gspca/stk014.c +++ b/drivers/media/usb/gspca/stk014.c | |||
@@ -250,7 +250,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
250 | int ret, value; | 250 | int ret, value; |
251 | 251 | ||
252 | /* create the JPEG header */ | 252 | /* create the JPEG header */ |
253 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 253 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
254 | gspca_dev->pixfmt.width, | ||
254 | 0x22); /* JPEG 411 */ | 255 | 0x22); /* JPEG 411 */ |
255 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); | 256 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); |
256 | 257 | ||
@@ -261,7 +262,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
261 | set_par(gspca_dev, 0x00000000); | 262 | set_par(gspca_dev, 0x00000000); |
262 | set_par(gspca_dev, 0x8002e001); | 263 | set_par(gspca_dev, 0x8002e001); |
263 | set_par(gspca_dev, 0x14000000); | 264 | set_par(gspca_dev, 0x14000000); |
264 | if (gspca_dev->width > 320) | 265 | if (gspca_dev->pixfmt.width > 320) |
265 | value = 0x8002e001; /* 640x480 */ | 266 | value = 0x8002e001; /* 640x480 */ |
266 | else | 267 | else |
267 | value = 0x4001f000; /* 320x240 */ | 268 | value = 0x4001f000; /* 320x240 */ |
diff --git a/drivers/media/usb/gspca/stk1135.c b/drivers/media/usb/gspca/stk1135.c index 585868835ace..5a6ed4916ed8 100644 --- a/drivers/media/usb/gspca/stk1135.c +++ b/drivers/media/usb/gspca/stk1135.c | |||
@@ -347,8 +347,8 @@ static void stk1135_configure_mt9m112(struct gspca_dev *gspca_dev) | |||
347 | sensor_write(gspca_dev, cfg[i].reg, cfg[i].val); | 347 | sensor_write(gspca_dev, cfg[i].reg, cfg[i].val); |
348 | 348 | ||
349 | /* set output size */ | 349 | /* set output size */ |
350 | width = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].width; | 350 | width = gspca_dev->pixfmt.width; |
351 | height = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].height; | 351 | height = gspca_dev->pixfmt.height; |
352 | if (width <= 640) { /* use context A (half readout speed by default) */ | 352 | if (width <= 640) { /* use context A (half readout speed by default) */ |
353 | sensor_write(gspca_dev, 0x1a7, width); | 353 | sensor_write(gspca_dev, 0x1a7, width); |
354 | sensor_write(gspca_dev, 0x1aa, height); | 354 | sensor_write(gspca_dev, 0x1aa, height); |
@@ -484,8 +484,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
484 | reg_w(gspca_dev, STK1135_REG_CISPO + 3, 0x00); | 484 | reg_w(gspca_dev, STK1135_REG_CISPO + 3, 0x00); |
485 | 485 | ||
486 | /* set capture end position */ | 486 | /* set capture end position */ |
487 | width = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].width; | 487 | width = gspca_dev->pixfmt.width; |
488 | height = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].height; | 488 | height = gspca_dev->pixfmt.height; |
489 | reg_w(gspca_dev, STK1135_REG_CIEPO + 0, width & 0xff); | 489 | reg_w(gspca_dev, STK1135_REG_CIEPO + 0, width & 0xff); |
490 | reg_w(gspca_dev, STK1135_REG_CIEPO + 1, width >> 8); | 490 | reg_w(gspca_dev, STK1135_REG_CIEPO + 1, width >> 8); |
491 | reg_w(gspca_dev, STK1135_REG_CIEPO + 2, height & 0xff); | 491 | reg_w(gspca_dev, STK1135_REG_CIEPO + 2, height & 0xff); |
diff --git a/drivers/media/usb/gspca/stv06xx/stv06xx.c b/drivers/media/usb/gspca/stv06xx/stv06xx.c index 55ee7a61c67f..49d209bbf9ee 100644 --- a/drivers/media/usb/gspca/stv06xx/stv06xx.c +++ b/drivers/media/usb/gspca/stv06xx/stv06xx.c | |||
@@ -452,7 +452,7 @@ frame_data: | |||
452 | NULL, 0); | 452 | NULL, 0); |
453 | 453 | ||
454 | if (sd->bridge == BRIDGE_ST6422) | 454 | if (sd->bridge == BRIDGE_ST6422) |
455 | sd->to_skip = gspca_dev->width * 4; | 455 | sd->to_skip = gspca_dev->pixfmt.width * 4; |
456 | 456 | ||
457 | if (chunk_len) | 457 | if (chunk_len) |
458 | PERR("Chunk length is " | 458 | PERR("Chunk length is " |
diff --git a/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c b/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c index 8206b7743300..8d785edcccf2 100644 --- a/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c +++ b/drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c | |||
@@ -421,7 +421,7 @@ static int pb0100_set_autogain_target(struct gspca_dev *gspca_dev, __s32 val) | |||
421 | 421 | ||
422 | /* Number of pixels counted by the sensor when subsampling the pixels. | 422 | /* Number of pixels counted by the sensor when subsampling the pixels. |
423 | * Slightly larger than the real value to avoid oscillation */ | 423 | * Slightly larger than the real value to avoid oscillation */ |
424 | totalpixels = gspca_dev->width * gspca_dev->height; | 424 | totalpixels = gspca_dev->pixfmt.width * gspca_dev->pixfmt.height; |
425 | totalpixels = totalpixels/(8*8) + totalpixels/(64*64); | 425 | totalpixels = totalpixels/(8*8) + totalpixels/(64*64); |
426 | 426 | ||
427 | brightpixels = (totalpixels * val) >> 8; | 427 | brightpixels = (totalpixels * val) >> 8; |
diff --git a/drivers/media/usb/gspca/sunplus.c b/drivers/media/usb/gspca/sunplus.c index af8767a9bd4c..a517d185febe 100644 --- a/drivers/media/usb/gspca/sunplus.c +++ b/drivers/media/usb/gspca/sunplus.c | |||
@@ -715,7 +715,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
715 | int enable; | 715 | int enable; |
716 | 716 | ||
717 | /* create the JPEG header */ | 717 | /* create the JPEG header */ |
718 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 718 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
719 | gspca_dev->pixfmt.width, | ||
719 | 0x22); /* JPEG 411 */ | 720 | 0x22); /* JPEG 411 */ |
720 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); | 721 | jpeg_set_qual(sd->jpeg_hdr, QUALITY); |
721 | 722 | ||
diff --git a/drivers/media/usb/gspca/topro.c b/drivers/media/usb/gspca/topro.c index 4cb511ccc5f6..640c2fe760b3 100644 --- a/drivers/media/usb/gspca/topro.c +++ b/drivers/media/usb/gspca/topro.c | |||
@@ -3856,7 +3856,7 @@ static void setsharpness(struct gspca_dev *gspca_dev, s32 val) | |||
3856 | 3856 | ||
3857 | if (sd->bridge == BRIDGE_TP6800) { | 3857 | if (sd->bridge == BRIDGE_TP6800) { |
3858 | val |= 0x08; /* grid compensation enable */ | 3858 | val |= 0x08; /* grid compensation enable */ |
3859 | if (gspca_dev->width == 640) | 3859 | if (gspca_dev->pixfmt.width == 640) |
3860 | reg_w(gspca_dev, TP6800_R78_FORMAT, 0x00); /* vga */ | 3860 | reg_w(gspca_dev, TP6800_R78_FORMAT, 0x00); /* vga */ |
3861 | else | 3861 | else |
3862 | val |= 0x04; /* scaling down enable */ | 3862 | val |= 0x04; /* scaling down enable */ |
@@ -3880,7 +3880,7 @@ static void set_resolution(struct gspca_dev *gspca_dev) | |||
3880 | struct sd *sd = (struct sd *) gspca_dev; | 3880 | struct sd *sd = (struct sd *) gspca_dev; |
3881 | 3881 | ||
3882 | reg_w(gspca_dev, TP6800_R21_ENDP_1_CTL, 0x00); | 3882 | reg_w(gspca_dev, TP6800_R21_ENDP_1_CTL, 0x00); |
3883 | if (gspca_dev->width == 320) { | 3883 | if (gspca_dev->pixfmt.width == 320) { |
3884 | reg_w(gspca_dev, TP6800_R3F_FRAME_RATE, 0x06); | 3884 | reg_w(gspca_dev, TP6800_R3F_FRAME_RATE, 0x06); |
3885 | msleep(100); | 3885 | msleep(100); |
3886 | i2c_w(gspca_dev, CX0342_AUTO_ADC_CALIB, 0x01); | 3886 | i2c_w(gspca_dev, CX0342_AUTO_ADC_CALIB, 0x01); |
@@ -3924,7 +3924,7 @@ static int get_fr_idx(struct gspca_dev *gspca_dev) | |||
3924 | 3924 | ||
3925 | /* 640x480 * 30 fps does not work */ | 3925 | /* 640x480 * 30 fps does not work */ |
3926 | if (i == 6 /* if 30 fps */ | 3926 | if (i == 6 /* if 30 fps */ |
3927 | && gspca_dev->width == 640) | 3927 | && gspca_dev->pixfmt.width == 640) |
3928 | i = 0x05; /* 15 fps */ | 3928 | i = 0x05; /* 15 fps */ |
3929 | } else { | 3929 | } else { |
3930 | for (i = 0; i < ARRAY_SIZE(rates_6810) - 1; i++) { | 3930 | for (i = 0; i < ARRAY_SIZE(rates_6810) - 1; i++) { |
@@ -3935,7 +3935,7 @@ static int get_fr_idx(struct gspca_dev *gspca_dev) | |||
3935 | 3935 | ||
3936 | /* 640x480 * 30 fps does not work */ | 3936 | /* 640x480 * 30 fps does not work */ |
3937 | if (i == 7 /* if 30 fps */ | 3937 | if (i == 7 /* if 30 fps */ |
3938 | && gspca_dev->width == 640) | 3938 | && gspca_dev->pixfmt.width == 640) |
3939 | i = 6; /* 15 fps */ | 3939 | i = 6; /* 15 fps */ |
3940 | i |= 0x80; /* clock * 1 */ | 3940 | i |= 0x80; /* clock * 1 */ |
3941 | } | 3941 | } |
@@ -4554,7 +4554,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
4554 | { | 4554 | { |
4555 | struct sd *sd = (struct sd *) gspca_dev; | 4555 | struct sd *sd = (struct sd *) gspca_dev; |
4556 | 4556 | ||
4557 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width); | 4557 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
4558 | gspca_dev->pixfmt.width); | ||
4558 | set_dqt(gspca_dev, sd->quality); | 4559 | set_dqt(gspca_dev, sd->quality); |
4559 | if (sd->bridge == BRIDGE_TP6800) { | 4560 | if (sd->bridge == BRIDGE_TP6800) { |
4560 | if (sd->sensor == SENSOR_CX0342) | 4561 | if (sd->sensor == SENSOR_CX0342) |
@@ -4737,7 +4738,7 @@ static void sd_dq_callback(struct gspca_dev *gspca_dev) | |||
4737 | (gspca_dev->usb_buf[26] << 8) + gspca_dev->usb_buf[25] + | 4738 | (gspca_dev->usb_buf[26] << 8) + gspca_dev->usb_buf[25] + |
4738 | (gspca_dev->usb_buf[29] << 8) + gspca_dev->usb_buf[28]) | 4739 | (gspca_dev->usb_buf[29] << 8) + gspca_dev->usb_buf[28]) |
4739 | / 8; | 4740 | / 8; |
4740 | if (gspca_dev->width == 640) | 4741 | if (gspca_dev->pixfmt.width == 640) |
4741 | luma /= 4; | 4742 | luma /= 4; |
4742 | reg_w(gspca_dev, 0x7d, 0x00); | 4743 | reg_w(gspca_dev, 0x7d, 0x00); |
4743 | 4744 | ||
diff --git a/drivers/media/usb/gspca/tv8532.c b/drivers/media/usb/gspca/tv8532.c index 8591324a53e1..d497ba38af0d 100644 --- a/drivers/media/usb/gspca/tv8532.c +++ b/drivers/media/usb/gspca/tv8532.c | |||
@@ -268,7 +268,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev, | |||
268 | packet_type0 = packet_type1 = INTER_PACKET; | 268 | packet_type0 = packet_type1 = INTER_PACKET; |
269 | if (gspca_dev->empty_packet) { | 269 | if (gspca_dev->empty_packet) { |
270 | gspca_dev->empty_packet = 0; | 270 | gspca_dev->empty_packet = 0; |
271 | sd->packet = gspca_dev->height / 2; | 271 | sd->packet = gspca_dev->pixfmt.height / 2; |
272 | packet_type0 = FIRST_PACKET; | 272 | packet_type0 = FIRST_PACKET; |
273 | } else if (sd->packet == 0) | 273 | } else if (sd->packet == 0) |
274 | return; /* 2 more lines in 352x288 ! */ | 274 | return; /* 2 more lines in 352x288 ! */ |
@@ -284,9 +284,10 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev, | |||
284 | * - 4 bytes | 284 | * - 4 bytes |
285 | */ | 285 | */ |
286 | gspca_frame_add(gspca_dev, packet_type0, | 286 | gspca_frame_add(gspca_dev, packet_type0, |
287 | data + 2, gspca_dev->width); | 287 | data + 2, gspca_dev->pixfmt.width); |
288 | gspca_frame_add(gspca_dev, packet_type1, | 288 | gspca_frame_add(gspca_dev, packet_type1, |
289 | data + gspca_dev->width + 5, gspca_dev->width); | 289 | data + gspca_dev->pixfmt.width + 5, |
290 | gspca_dev->pixfmt.width); | ||
290 | } | 291 | } |
291 | 292 | ||
292 | static int sd_s_ctrl(struct v4l2_ctrl *ctrl) | 293 | static int sd_s_ctrl(struct v4l2_ctrl *ctrl) |
diff --git a/drivers/media/usb/gspca/vicam.c b/drivers/media/usb/gspca/vicam.c index a2275cfe0b81..103f6c4236b0 100644 --- a/drivers/media/usb/gspca/vicam.c +++ b/drivers/media/usb/gspca/vicam.c | |||
@@ -121,13 +121,13 @@ static int vicam_read_frame(struct gspca_dev *gspca_dev, u8 *data, int size) | |||
121 | 121 | ||
122 | memset(req_data, 0, 16); | 122 | memset(req_data, 0, 16); |
123 | req_data[0] = gain; | 123 | req_data[0] = gain; |
124 | if (gspca_dev->width == 256) | 124 | if (gspca_dev->pixfmt.width == 256) |
125 | req_data[1] |= 0x01; /* low nibble x-scale */ | 125 | req_data[1] |= 0x01; /* low nibble x-scale */ |
126 | if (gspca_dev->height <= 122) { | 126 | if (gspca_dev->pixfmt.height <= 122) { |
127 | req_data[1] |= 0x10; /* high nibble y-scale */ | 127 | req_data[1] |= 0x10; /* high nibble y-scale */ |
128 | unscaled_height = gspca_dev->height * 2; | 128 | unscaled_height = gspca_dev->pixfmt.height * 2; |
129 | } else | 129 | } else |
130 | unscaled_height = gspca_dev->height; | 130 | unscaled_height = gspca_dev->pixfmt.height; |
131 | req_data[2] = 0x90; /* unknown, does not seem to do anything */ | 131 | req_data[2] = 0x90; /* unknown, does not seem to do anything */ |
132 | if (unscaled_height <= 200) | 132 | if (unscaled_height <= 200) |
133 | req_data[3] = 0x06; /* vend? */ | 133 | req_data[3] = 0x06; /* vend? */ |
diff --git a/drivers/media/usb/gspca/w996Xcf.c b/drivers/media/usb/gspca/w996Xcf.c index 2165da0c7ce1..fb9fe2ef3a6f 100644 --- a/drivers/media/usb/gspca/w996Xcf.c +++ b/drivers/media/usb/gspca/w996Xcf.c | |||
@@ -430,11 +430,11 @@ static void w9968cf_set_crop_window(struct sd *sd) | |||
430 | #define SC(x) ((x) << 10) | 430 | #define SC(x) ((x) << 10) |
431 | 431 | ||
432 | /* Scaling factors */ | 432 | /* Scaling factors */ |
433 | fw = SC(sd->gspca_dev.width) / max_width; | 433 | fw = SC(sd->gspca_dev.pixfmt.width) / max_width; |
434 | fh = SC(sd->gspca_dev.height) / max_height; | 434 | fh = SC(sd->gspca_dev.pixfmt.height) / max_height; |
435 | 435 | ||
436 | cw = (fw >= fh) ? max_width : SC(sd->gspca_dev.width) / fh; | 436 | cw = (fw >= fh) ? max_width : SC(sd->gspca_dev.pixfmt.width) / fh; |
437 | ch = (fw >= fh) ? SC(sd->gspca_dev.height) / fw : max_height; | 437 | ch = (fw >= fh) ? SC(sd->gspca_dev.pixfmt.height) / fw : max_height; |
438 | 438 | ||
439 | sd->sensor_width = max_width; | 439 | sd->sensor_width = max_width; |
440 | sd->sensor_height = max_height; | 440 | sd->sensor_height = max_height; |
@@ -454,34 +454,34 @@ static void w9968cf_mode_init_regs(struct sd *sd) | |||
454 | 454 | ||
455 | w9968cf_set_crop_window(sd); | 455 | w9968cf_set_crop_window(sd); |
456 | 456 | ||
457 | reg_w(sd, 0x14, sd->gspca_dev.width); | 457 | reg_w(sd, 0x14, sd->gspca_dev.pixfmt.width); |
458 | reg_w(sd, 0x15, sd->gspca_dev.height); | 458 | reg_w(sd, 0x15, sd->gspca_dev.pixfmt.height); |
459 | 459 | ||
460 | /* JPEG width & height */ | 460 | /* JPEG width & height */ |
461 | reg_w(sd, 0x30, sd->gspca_dev.width); | 461 | reg_w(sd, 0x30, sd->gspca_dev.pixfmt.width); |
462 | reg_w(sd, 0x31, sd->gspca_dev.height); | 462 | reg_w(sd, 0x31, sd->gspca_dev.pixfmt.height); |
463 | 463 | ||
464 | /* Y & UV frame buffer strides (in WORD) */ | 464 | /* Y & UV frame buffer strides (in WORD) */ |
465 | if (w9968cf_vga_mode[sd->gspca_dev.curr_mode].pixelformat == | 465 | if (w9968cf_vga_mode[sd->gspca_dev.curr_mode].pixelformat == |
466 | V4L2_PIX_FMT_JPEG) { | 466 | V4L2_PIX_FMT_JPEG) { |
467 | reg_w(sd, 0x2c, sd->gspca_dev.width / 2); | 467 | reg_w(sd, 0x2c, sd->gspca_dev.pixfmt.width / 2); |
468 | reg_w(sd, 0x2d, sd->gspca_dev.width / 4); | 468 | reg_w(sd, 0x2d, sd->gspca_dev.pixfmt.width / 4); |
469 | } else | 469 | } else |
470 | reg_w(sd, 0x2c, sd->gspca_dev.width); | 470 | reg_w(sd, 0x2c, sd->gspca_dev.pixfmt.width); |
471 | 471 | ||
472 | reg_w(sd, 0x00, 0xbf17); /* reset everything */ | 472 | reg_w(sd, 0x00, 0xbf17); /* reset everything */ |
473 | reg_w(sd, 0x00, 0xbf10); /* normal operation */ | 473 | reg_w(sd, 0x00, 0xbf10); /* normal operation */ |
474 | 474 | ||
475 | /* Transfer size in WORDS (for UYVY format only) */ | 475 | /* Transfer size in WORDS (for UYVY format only) */ |
476 | val = sd->gspca_dev.width * sd->gspca_dev.height; | 476 | val = sd->gspca_dev.pixfmt.width * sd->gspca_dev.pixfmt.height; |
477 | reg_w(sd, 0x3d, val & 0xffff); /* low bits */ | 477 | reg_w(sd, 0x3d, val & 0xffff); /* low bits */ |
478 | reg_w(sd, 0x3e, val >> 16); /* high bits */ | 478 | reg_w(sd, 0x3e, val >> 16); /* high bits */ |
479 | 479 | ||
480 | if (w9968cf_vga_mode[sd->gspca_dev.curr_mode].pixelformat == | 480 | if (w9968cf_vga_mode[sd->gspca_dev.curr_mode].pixelformat == |
481 | V4L2_PIX_FMT_JPEG) { | 481 | V4L2_PIX_FMT_JPEG) { |
482 | /* We may get called multiple times (usb isoc bw negotiat.) */ | 482 | /* We may get called multiple times (usb isoc bw negotiat.) */ |
483 | jpeg_define(sd->jpeg_hdr, sd->gspca_dev.height, | 483 | jpeg_define(sd->jpeg_hdr, sd->gspca_dev.pixfmt.height, |
484 | sd->gspca_dev.width, 0x22); /* JPEG 420 */ | 484 | sd->gspca_dev.pixfmt.width, 0x22); /* JPEG 420 */ |
485 | jpeg_set_qual(sd->jpeg_hdr, v4l2_ctrl_g_ctrl(sd->jpegqual)); | 485 | jpeg_set_qual(sd->jpeg_hdr, v4l2_ctrl_g_ctrl(sd->jpegqual)); |
486 | w9968cf_upload_quantizationtables(sd); | 486 | w9968cf_upload_quantizationtables(sd); |
487 | v4l2_ctrl_grab(sd->jpegqual, true); | 487 | v4l2_ctrl_grab(sd->jpegqual, true); |
diff --git a/drivers/media/usb/gspca/xirlink_cit.c b/drivers/media/usb/gspca/xirlink_cit.c index 7eaf64eb867c..101df674d3ba 100644 --- a/drivers/media/usb/gspca/xirlink_cit.c +++ b/drivers/media/usb/gspca/xirlink_cit.c | |||
@@ -1471,14 +1471,14 @@ static int cit_get_clock_div(struct gspca_dev *gspca_dev) | |||
1471 | 1471 | ||
1472 | while (clock_div > 3 && | 1472 | while (clock_div > 3 && |
1473 | 1000 * packet_size > | 1473 | 1000 * packet_size > |
1474 | gspca_dev->width * gspca_dev->height * | 1474 | gspca_dev->pixfmt.width * gspca_dev->pixfmt.height * |
1475 | fps[clock_div - 1] * 3 / 2) | 1475 | fps[clock_div - 1] * 3 / 2) |
1476 | clock_div--; | 1476 | clock_div--; |
1477 | 1477 | ||
1478 | PDEBUG(D_PROBE, | 1478 | PDEBUG(D_PROBE, |
1479 | "PacketSize: %d, res: %dx%d -> using clockdiv: %d (%d fps)", | 1479 | "PacketSize: %d, res: %dx%d -> using clockdiv: %d (%d fps)", |
1480 | packet_size, gspca_dev->width, gspca_dev->height, clock_div, | 1480 | packet_size, gspca_dev->pixfmt.width, gspca_dev->pixfmt.height, |
1481 | fps[clock_div]); | 1481 | clock_div, fps[clock_div]); |
1482 | 1482 | ||
1483 | return clock_div; | 1483 | return clock_div; |
1484 | } | 1484 | } |
@@ -1502,7 +1502,7 @@ static int cit_start_model0(struct gspca_dev *gspca_dev) | |||
1502 | cit_write_reg(gspca_dev, 0x0002, 0x0426); | 1502 | cit_write_reg(gspca_dev, 0x0002, 0x0426); |
1503 | cit_write_reg(gspca_dev, 0x0014, 0x0427); | 1503 | cit_write_reg(gspca_dev, 0x0014, 0x0427); |
1504 | 1504 | ||
1505 | switch (gspca_dev->width) { | 1505 | switch (gspca_dev->pixfmt.width) { |
1506 | case 160: /* 160x120 */ | 1506 | case 160: /* 160x120 */ |
1507 | cit_write_reg(gspca_dev, 0x0004, 0x010b); | 1507 | cit_write_reg(gspca_dev, 0x0004, 0x010b); |
1508 | cit_write_reg(gspca_dev, 0x0001, 0x010a); | 1508 | cit_write_reg(gspca_dev, 0x0001, 0x010a); |
@@ -1643,7 +1643,7 @@ static int cit_start_model1(struct gspca_dev *gspca_dev) | |||
1643 | cit_write_reg(gspca_dev, 0x00, 0x0101); | 1643 | cit_write_reg(gspca_dev, 0x00, 0x0101); |
1644 | cit_write_reg(gspca_dev, 0x00, 0x010a); | 1644 | cit_write_reg(gspca_dev, 0x00, 0x010a); |
1645 | 1645 | ||
1646 | switch (gspca_dev->width) { | 1646 | switch (gspca_dev->pixfmt.width) { |
1647 | case 128: /* 128x96 */ | 1647 | case 128: /* 128x96 */ |
1648 | cit_write_reg(gspca_dev, 0x80, 0x0103); | 1648 | cit_write_reg(gspca_dev, 0x80, 0x0103); |
1649 | cit_write_reg(gspca_dev, 0x60, 0x0105); | 1649 | cit_write_reg(gspca_dev, 0x60, 0x0105); |
@@ -1700,7 +1700,7 @@ static int cit_start_model1(struct gspca_dev *gspca_dev) | |||
1700 | } | 1700 | } |
1701 | 1701 | ||
1702 | /* Assorted init */ | 1702 | /* Assorted init */ |
1703 | switch (gspca_dev->width) { | 1703 | switch (gspca_dev->pixfmt.width) { |
1704 | case 128: /* 128x96 */ | 1704 | case 128: /* 128x96 */ |
1705 | cit_Packet_Format1(gspca_dev, 0x2b, 0x1e); | 1705 | cit_Packet_Format1(gspca_dev, 0x2b, 0x1e); |
1706 | cit_write_reg(gspca_dev, 0xc9, 0x0119); /* Same everywhere */ | 1706 | cit_write_reg(gspca_dev, 0xc9, 0x0119); /* Same everywhere */ |
@@ -1753,7 +1753,7 @@ static int cit_start_model2(struct gspca_dev *gspca_dev) | |||
1753 | cit_write_reg(gspca_dev, 0x0000, 0x0108); | 1753 | cit_write_reg(gspca_dev, 0x0000, 0x0108); |
1754 | cit_write_reg(gspca_dev, 0x0001, 0x0133); | 1754 | cit_write_reg(gspca_dev, 0x0001, 0x0133); |
1755 | cit_write_reg(gspca_dev, 0x0001, 0x0102); | 1755 | cit_write_reg(gspca_dev, 0x0001, 0x0102); |
1756 | switch (gspca_dev->width) { | 1756 | switch (gspca_dev->pixfmt.width) { |
1757 | case 176: /* 176x144 */ | 1757 | case 176: /* 176x144 */ |
1758 | cit_write_reg(gspca_dev, 0x002c, 0x0103); /* All except 320x240 */ | 1758 | cit_write_reg(gspca_dev, 0x002c, 0x0103); /* All except 320x240 */ |
1759 | cit_write_reg(gspca_dev, 0x0000, 0x0104); /* Same */ | 1759 | cit_write_reg(gspca_dev, 0x0000, 0x0104); /* Same */ |
@@ -1792,7 +1792,7 @@ static int cit_start_model2(struct gspca_dev *gspca_dev) | |||
1792 | 1792 | ||
1793 | cit_write_reg(gspca_dev, 0x0000, 0x0100); /* LED on */ | 1793 | cit_write_reg(gspca_dev, 0x0000, 0x0100); /* LED on */ |
1794 | 1794 | ||
1795 | switch (gspca_dev->width) { | 1795 | switch (gspca_dev->pixfmt.width) { |
1796 | case 176: /* 176x144 */ | 1796 | case 176: /* 176x144 */ |
1797 | cit_write_reg(gspca_dev, 0x0050, 0x0111); | 1797 | cit_write_reg(gspca_dev, 0x0050, 0x0111); |
1798 | cit_write_reg(gspca_dev, 0x00d0, 0x0111); | 1798 | cit_write_reg(gspca_dev, 0x00d0, 0x0111); |
@@ -1840,7 +1840,7 @@ static int cit_start_model2(struct gspca_dev *gspca_dev) | |||
1840 | * Magic control of CMOS sensor. Only lower values like | 1840 | * Magic control of CMOS sensor. Only lower values like |
1841 | * 0-3 work, and picture shifts left or right. Don't change. | 1841 | * 0-3 work, and picture shifts left or right. Don't change. |
1842 | */ | 1842 | */ |
1843 | switch (gspca_dev->width) { | 1843 | switch (gspca_dev->pixfmt.width) { |
1844 | case 176: /* 176x144 */ | 1844 | case 176: /* 176x144 */ |
1845 | cit_model2_Packet1(gspca_dev, 0x0014, 0x0002); | 1845 | cit_model2_Packet1(gspca_dev, 0x0014, 0x0002); |
1846 | cit_model2_Packet1(gspca_dev, 0x0016, 0x0002); /* Horizontal shift */ | 1846 | cit_model2_Packet1(gspca_dev, 0x0016, 0x0002); /* Horizontal shift */ |
@@ -1899,7 +1899,7 @@ static int cit_start_model2(struct gspca_dev *gspca_dev) | |||
1899 | * does not allow arbitrary values and apparently is a bit mask, to | 1899 | * does not allow arbitrary values and apparently is a bit mask, to |
1900 | * be activated only at appropriate time. Don't change it randomly! | 1900 | * be activated only at appropriate time. Don't change it randomly! |
1901 | */ | 1901 | */ |
1902 | switch (gspca_dev->width) { | 1902 | switch (gspca_dev->pixfmt.width) { |
1903 | case 176: /* 176x144 */ | 1903 | case 176: /* 176x144 */ |
1904 | cit_model2_Packet1(gspca_dev, 0x0026, 0x00c2); | 1904 | cit_model2_Packet1(gspca_dev, 0x0026, 0x00c2); |
1905 | break; | 1905 | break; |
@@ -2023,7 +2023,7 @@ static int cit_start_model3(struct gspca_dev *gspca_dev) | |||
2023 | cit_model3_Packet1(gspca_dev, 0x009e, 0x0096); | 2023 | cit_model3_Packet1(gspca_dev, 0x009e, 0x0096); |
2024 | cit_model3_Packet1(gspca_dev, 0x009f, 0x000a); | 2024 | cit_model3_Packet1(gspca_dev, 0x009f, 0x000a); |
2025 | 2025 | ||
2026 | switch (gspca_dev->width) { | 2026 | switch (gspca_dev->pixfmt.width) { |
2027 | case 160: | 2027 | case 160: |
2028 | cit_write_reg(gspca_dev, 0x0000, 0x0101); /* Same on 160x120, 320x240 */ | 2028 | cit_write_reg(gspca_dev, 0x0000, 0x0101); /* Same on 160x120, 320x240 */ |
2029 | cit_write_reg(gspca_dev, 0x00a0, 0x0103); /* Same on 160x120, 320x240 */ | 2029 | cit_write_reg(gspca_dev, 0x00a0, 0x0103); /* Same on 160x120, 320x240 */ |
@@ -2134,7 +2134,7 @@ static int cit_start_model3(struct gspca_dev *gspca_dev) | |||
2134 | like with the IBM netcam pro). */ | 2134 | like with the IBM netcam pro). */ |
2135 | cit_write_reg(gspca_dev, clock_div, 0x0111); /* Clock Divider */ | 2135 | cit_write_reg(gspca_dev, clock_div, 0x0111); /* Clock Divider */ |
2136 | 2136 | ||
2137 | switch (gspca_dev->width) { | 2137 | switch (gspca_dev->pixfmt.width) { |
2138 | case 160: | 2138 | case 160: |
2139 | cit_model3_Packet1(gspca_dev, 0x001f, 0x0000); /* Same */ | 2139 | cit_model3_Packet1(gspca_dev, 0x001f, 0x0000); /* Same */ |
2140 | cit_model3_Packet1(gspca_dev, 0x0039, 0x001f); /* Same */ | 2140 | cit_model3_Packet1(gspca_dev, 0x0039, 0x001f); /* Same */ |
@@ -2211,7 +2211,7 @@ static int cit_start_model4(struct gspca_dev *gspca_dev) | |||
2211 | cit_write_reg(gspca_dev, 0xfffa, 0x0124); | 2211 | cit_write_reg(gspca_dev, 0xfffa, 0x0124); |
2212 | cit_model4_Packet1(gspca_dev, 0x0034, 0x0000); | 2212 | cit_model4_Packet1(gspca_dev, 0x0034, 0x0000); |
2213 | 2213 | ||
2214 | switch (gspca_dev->width) { | 2214 | switch (gspca_dev->pixfmt.width) { |
2215 | case 128: /* 128x96 */ | 2215 | case 128: /* 128x96 */ |
2216 | cit_write_reg(gspca_dev, 0x0070, 0x0119); | 2216 | cit_write_reg(gspca_dev, 0x0070, 0x0119); |
2217 | cit_write_reg(gspca_dev, 0x00d0, 0x0111); | 2217 | cit_write_reg(gspca_dev, 0x00d0, 0x0111); |
@@ -2531,7 +2531,7 @@ static int cit_start_ibm_netcam_pro(struct gspca_dev *gspca_dev) | |||
2531 | cit_write_reg(gspca_dev, 0x00fc, 0x012b); /* Same */ | 2531 | cit_write_reg(gspca_dev, 0x00fc, 0x012b); /* Same */ |
2532 | cit_write_reg(gspca_dev, 0x0022, 0x012a); /* Same */ | 2532 | cit_write_reg(gspca_dev, 0x0022, 0x012a); /* Same */ |
2533 | 2533 | ||
2534 | switch (gspca_dev->width) { | 2534 | switch (gspca_dev->pixfmt.width) { |
2535 | case 160: /* 160x120 */ | 2535 | case 160: /* 160x120 */ |
2536 | cit_write_reg(gspca_dev, 0x0024, 0x010b); | 2536 | cit_write_reg(gspca_dev, 0x0024, 0x010b); |
2537 | cit_write_reg(gspca_dev, 0x0089, 0x0119); | 2537 | cit_write_reg(gspca_dev, 0x0089, 0x0119); |
@@ -2635,7 +2635,7 @@ static int sd_isoc_init(struct gspca_dev *gspca_dev) | |||
2635 | struct usb_host_interface *alt; | 2635 | struct usb_host_interface *alt; |
2636 | int max_packet_size; | 2636 | int max_packet_size; |
2637 | 2637 | ||
2638 | switch (gspca_dev->width) { | 2638 | switch (gspca_dev->pixfmt.width) { |
2639 | case 160: | 2639 | case 160: |
2640 | max_packet_size = 450; | 2640 | max_packet_size = 450; |
2641 | break; | 2641 | break; |
@@ -2659,7 +2659,7 @@ static int sd_isoc_nego(struct gspca_dev *gspca_dev) | |||
2659 | int ret, packet_size, min_packet_size; | 2659 | int ret, packet_size, min_packet_size; |
2660 | struct usb_host_interface *alt; | 2660 | struct usb_host_interface *alt; |
2661 | 2661 | ||
2662 | switch (gspca_dev->width) { | 2662 | switch (gspca_dev->pixfmt.width) { |
2663 | case 160: | 2663 | case 160: |
2664 | min_packet_size = 200; | 2664 | min_packet_size = 200; |
2665 | break; | 2665 | break; |
@@ -2780,7 +2780,7 @@ static u8 *cit_find_sof(struct gspca_dev *gspca_dev, u8 *data, int len) | |||
2780 | case CIT_MODEL1: | 2780 | case CIT_MODEL1: |
2781 | case CIT_MODEL3: | 2781 | case CIT_MODEL3: |
2782 | case CIT_IBM_NETCAM_PRO: | 2782 | case CIT_IBM_NETCAM_PRO: |
2783 | switch (gspca_dev->width) { | 2783 | switch (gspca_dev->pixfmt.width) { |
2784 | case 160: /* 160x120 */ | 2784 | case 160: /* 160x120 */ |
2785 | byte3 = 0x02; | 2785 | byte3 = 0x02; |
2786 | byte4 = 0x0a; | 2786 | byte4 = 0x0a; |
diff --git a/drivers/media/usb/gspca/zc3xx.c b/drivers/media/usb/gspca/zc3xx.c index cbfc2f921427..7b95d8e88a20 100644 --- a/drivers/media/usb/gspca/zc3xx.c +++ b/drivers/media/usb/gspca/zc3xx.c | |||
@@ -6700,7 +6700,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
6700 | }; | 6700 | }; |
6701 | 6701 | ||
6702 | /* create the JPEG header */ | 6702 | /* create the JPEG header */ |
6703 | jpeg_define(sd->jpeg_hdr, gspca_dev->height, gspca_dev->width, | 6703 | jpeg_define(sd->jpeg_hdr, gspca_dev->pixfmt.height, |
6704 | gspca_dev->pixfmt.width, | ||
6704 | 0x21); /* JPEG 422 */ | 6705 | 0x21); /* JPEG 422 */ |
6705 | 6706 | ||
6706 | mode = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; | 6707 | mode = gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv; |