diff options
-rw-r--r-- | drivers/media/video/gspca/gspca.c | 6 | ||||
-rw-r--r-- | drivers/media/video/gspca/gspca.h | 11 |
2 files changed, 11 insertions, 6 deletions
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c index afddb18024a8..8a528c97aae0 100644 --- a/drivers/media/video/gspca/gspca.c +++ b/drivers/media/video/gspca/gspca.c | |||
@@ -150,8 +150,11 @@ static void fill_frame(struct gspca_dev *gspca_dev, | |||
150 | 150 | ||
151 | /* check the packet status and length */ | 151 | /* check the packet status and length */ |
152 | len = urb->iso_frame_desc[i].actual_length; | 152 | len = urb->iso_frame_desc[i].actual_length; |
153 | if (len == 0) | 153 | if (len == 0) { |
154 | if (gspca_dev->empty_packet == 0) | ||
155 | gspca_dev->empty_packet = 1; | ||
154 | continue; | 156 | continue; |
157 | } | ||
155 | st = urb->iso_frame_desc[i].status; | 158 | st = urb->iso_frame_desc[i].status; |
156 | if (st) { | 159 | if (st) { |
157 | PDEBUG(D_ERR, | 160 | PDEBUG(D_ERR, |
@@ -1858,6 +1861,7 @@ int gspca_dev_probe(struct usb_interface *intf, | |||
1858 | gspca_dev->nbalt = intf->num_altsetting; | 1861 | gspca_dev->nbalt = intf->num_altsetting; |
1859 | gspca_dev->sd_desc = sd_desc; | 1862 | gspca_dev->sd_desc = sd_desc; |
1860 | gspca_dev->nbufread = 2; | 1863 | gspca_dev->nbufread = 2; |
1864 | gspca_dev->empty_packet = -1; /* don't check the empty packets */ | ||
1861 | 1865 | ||
1862 | /* configure the subdriver and initialize the USB device */ | 1866 | /* configure the subdriver and initialize the USB device */ |
1863 | ret = gspca_dev->sd_desc->config(gspca_dev, id); | 1867 | ret = gspca_dev->sd_desc->config(gspca_dev, id); |
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h index 2ae1ad7c1483..50913caf1872 100644 --- a/drivers/media/video/gspca/gspca.h +++ b/drivers/media/video/gspca/gspca.h | |||
@@ -142,22 +142,21 @@ struct gspca_dev { | |||
142 | char fr_q; /* next frame to queue */ | 142 | char fr_q; /* next frame to queue */ |
143 | char fr_o; /* next frame to dequeue */ | 143 | char fr_o; /* next frame to dequeue */ |
144 | signed char fr_queue[GSPCA_MAX_FRAMES]; /* frame queue */ | 144 | signed char fr_queue[GSPCA_MAX_FRAMES]; /* frame queue */ |
145 | char last_packet_type; | 145 | __u8 last_packet_type; |
146 | __s8 empty_packet; /* if (-1) don't check empty packets */ | ||
147 | __u8 streaming; | ||
146 | 148 | ||
147 | __u8 iface; /* USB interface number */ | ||
148 | __u8 alt; /* USB alternate setting */ | ||
149 | __u8 curr_mode; /* current camera mode */ | 149 | __u8 curr_mode; /* current camera mode */ |
150 | __u32 pixfmt; /* current mode parameters */ | 150 | __u32 pixfmt; /* current mode parameters */ |
151 | __u16 width; | 151 | __u16 width; |
152 | __u16 height; | 152 | __u16 height; |
153 | __u32 sequence; /* frame sequence number */ | ||
153 | 154 | ||
154 | atomic_t nevent; /* number of frames done */ | 155 | atomic_t nevent; /* number of frames done */ |
155 | wait_queue_head_t wq; /* wait queue */ | 156 | wait_queue_head_t wq; /* wait queue */ |
156 | struct mutex usb_lock; /* usb exchange protection */ | 157 | struct mutex usb_lock; /* usb exchange protection */ |
157 | struct mutex read_lock; /* read protection */ | 158 | struct mutex read_lock; /* read protection */ |
158 | struct mutex queue_lock; /* ISOC queue protection */ | 159 | struct mutex queue_lock; /* ISOC queue protection */ |
159 | __u32 sequence; /* frame sequence number */ | ||
160 | char streaming; | ||
161 | #ifdef CONFIG_PM | 160 | #ifdef CONFIG_PM |
162 | char frozen; /* suspend - resume */ | 161 | char frozen; /* suspend - resume */ |
163 | #endif | 162 | #endif |
@@ -166,6 +165,8 @@ struct gspca_dev { | |||
166 | char nbufread; /* number of buffers for read() */ | 165 | char nbufread; /* number of buffers for read() */ |
167 | char nurbs; /* number of allocated URBs */ | 166 | char nurbs; /* number of allocated URBs */ |
168 | char memory; /* memory type (V4L2_MEMORY_xxx) */ | 167 | char memory; /* memory type (V4L2_MEMORY_xxx) */ |
168 | __u8 iface; /* USB interface number */ | ||
169 | __u8 alt; /* USB alternate setting */ | ||
169 | __u8 nbalt; /* number of USB alternate settings */ | 170 | __u8 nbalt; /* number of USB alternate settings */ |
170 | }; | 171 | }; |
171 | 172 | ||