aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/video4linux/gspca.txt1
-rw-r--r--drivers/media/video/gspca/sunplus.c10
2 files changed, 9 insertions, 2 deletions
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt
index 7045ebf1d72d..37247697dbe8 100644
--- a/Documentation/video4linux/gspca.txt
+++ b/Documentation/video4linux/gspca.txt
@@ -140,6 +140,7 @@ spca500 04fc:7333 PalmPixDC85
140sunplus 04fc:ffff Pure DigitalDakota 140sunplus 04fc:ffff Pure DigitalDakota
141spca501 0506:00df 3Com HomeConnect Lite 141spca501 0506:00df 3Com HomeConnect Lite
142sunplus 052b:1513 Megapix V4 142sunplus 052b:1513 Megapix V4
143sunplus 052b:1803 MegaImage VI
143tv8532 0545:808b Veo Stingray 144tv8532 0545:808b Veo Stingray
144tv8532 0545:8333 Veo Stingray 145tv8532 0545:8333 Veo Stingray
145sunplus 0546:3155 Polaroid PDC3070 146sunplus 0546:3155 Polaroid PDC3070
diff --git a/drivers/media/video/gspca/sunplus.c b/drivers/media/video/gspca/sunplus.c
index 5127bbf9dd26..eabad47a3ca6 100644
--- a/drivers/media/video/gspca/sunplus.c
+++ b/drivers/media/video/gspca/sunplus.c
@@ -52,6 +52,7 @@ struct sd {
52#define LogitechClickSmart420 2 52#define LogitechClickSmart420 2
53#define LogitechClickSmart820 3 53#define LogitechClickSmart820 3
54#define MegapixV4 4 54#define MegapixV4 4
55#define MegaImageVI 5
55 56
56 u8 *jpeg_hdr; 57 u8 *jpeg_hdr;
57}; 58};
@@ -844,7 +845,10 @@ static int sd_config(struct gspca_dev *gspca_dev,
844 break; 845 break;
845 case BRIDGE_SPCA533: 846 case BRIDGE_SPCA533:
846 cam->cam_mode = custom_mode; 847 cam->cam_mode = custom_mode;
847 cam->nmodes = sizeof custom_mode / sizeof custom_mode[0]; 848 if (sd->subtype == MegaImageVI) /* 320x240 only */
849 cam->nmodes = ARRAY_SIZE(custom_mode) - 1;
850 else
851 cam->nmodes = ARRAY_SIZE(custom_mode);
848 break; 852 break;
849 case BRIDGE_SPCA504C: 853 case BRIDGE_SPCA504C:
850 cam->cam_mode = vga_mode2; 854 cam->cam_mode = vga_mode2;
@@ -988,7 +992,8 @@ static int sd_start(struct gspca_dev *gspca_dev)
988/* case BRIDGE_SPCA533: */ 992/* case BRIDGE_SPCA533: */
989/* case BRIDGE_SPCA536: */ 993/* case BRIDGE_SPCA536: */
990 if (sd->subtype == MegapixV4 || 994 if (sd->subtype == MegapixV4 ||
991 sd->subtype == LogitechClickSmart820) { 995 sd->subtype == LogitechClickSmart820 ||
996 sd->subtype == MegaImageVI) {
992 reg_w(gspca_dev, 0xf0, 0, 0, 0); 997 reg_w(gspca_dev, 0xf0, 0, 0, 0);
993 spca504B_WaitCmdStatus(gspca_dev); 998 spca504B_WaitCmdStatus(gspca_dev);
994 reg_r(gspca_dev, 0xf0, 4, 0); 999 reg_r(gspca_dev, 0xf0, 4, 0);
@@ -1384,6 +1389,7 @@ static const __devinitdata struct usb_device_id device_table[] = {
1384 {USB_DEVICE(0x04fc, 0x5360), BS(SPCA536, 0)}, 1389 {USB_DEVICE(0x04fc, 0x5360), BS(SPCA536, 0)},
1385 {USB_DEVICE(0x04fc, 0xffff), BS(SPCA504B, 0)}, 1390 {USB_DEVICE(0x04fc, 0xffff), BS(SPCA504B, 0)},
1386 {USB_DEVICE(0x052b, 0x1513), BS(SPCA533, MegapixV4)}, 1391 {USB_DEVICE(0x052b, 0x1513), BS(SPCA533, MegapixV4)},
1392 {USB_DEVICE(0x052b, 0x1803), BS(SPCA533, MegaImageVI)},
1387 {USB_DEVICE(0x0546, 0x3155), BS(SPCA533, 0)}, 1393 {USB_DEVICE(0x0546, 0x3155), BS(SPCA533, 0)},
1388 {USB_DEVICE(0x0546, 0x3191), BS(SPCA504B, 0)}, 1394 {USB_DEVICE(0x0546, 0x3191), BS(SPCA504B, 0)},
1389 {USB_DEVICE(0x0546, 0x3273), BS(SPCA504B, 0)}, 1395 {USB_DEVICE(0x0546, 0x3273), BS(SPCA504B, 0)},