Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 173943
b: refs/heads/master
c: 2052601
h: refs/heads/master
i:
  173941: 6a83a3e
  173939: 66fa373
  173935: b2101fe
v: v3
  • Loading branch information
Hans de Goede authored and Mauro Carvalho Chehab committed Dec 5, 2009
1 parent b3b52ee commit afafc20
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6ca3f255f790764f9cfc41d3ac02823d83dfa5ac
refs/heads/master: 205260102c5cef4180982eec88aaeb6934faf214
23 changes: 7 additions & 16 deletions trunk/drivers/media/video/gspca/sq905c.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ static void sq905c_dostream(struct work_struct *work)
int bytes_left; /* bytes remaining in current frame. */
int data_len; /* size to use for the next read. */
int act_len;
int discarding = 0; /* true if we failed to get space for frame. */
int packet_type;
int ret;
u8 *buffer;
Expand All @@ -131,8 +130,6 @@ static void sq905c_dostream(struct work_struct *work)
}

while (gspca_dev->present && gspca_dev->streaming) {
if (!gspca_dev->present)
goto quit_stream;
/* Request the header, which tells the size to download */
ret = usb_bulk_msg(gspca_dev->dev,
usb_rcvbulkpipe(gspca_dev->dev, 0x81),
Expand All @@ -150,16 +147,12 @@ static void sq905c_dostream(struct work_struct *work)
/* We keep the header. It has other information, too. */
packet_type = FIRST_PACKET;
frame = gspca_get_i_frame(gspca_dev);
if (frame && !discarding) {
if (frame)
gspca_frame_add(gspca_dev, packet_type,
frame, buffer, FRAME_HEADER_LEN);
} else
discarding = 1;
while (bytes_left > 0) {
while (bytes_left > 0 && gspca_dev->present) {
data_len = bytes_left > SQ905C_MAX_TRANSFER ?
SQ905C_MAX_TRANSFER : bytes_left;
if (!gspca_dev->present)
goto quit_stream;
ret = usb_bulk_msg(gspca_dev->dev,
usb_rcvbulkpipe(gspca_dev->dev, 0x81),
buffer, data_len, &act_len,
Expand All @@ -174,19 +167,17 @@ static void sq905c_dostream(struct work_struct *work)
packet_type = LAST_PACKET;
else
packet_type = INTER_PACKET;
frame = gspca_get_i_frame(gspca_dev);
if (frame && !discarding)
if (frame)
gspca_frame_add(gspca_dev, packet_type,
frame, buffer, data_len);
else
discarding = 1;
}
}
quit_stream:
mutex_lock(&gspca_dev->usb_lock);
if (gspca_dev->present)
if (gspca_dev->present) {
mutex_lock(&gspca_dev->usb_lock);
sq905c_command(gspca_dev, SQ905C_CLEAR, 0);
mutex_unlock(&gspca_dev->usb_lock);
mutex_unlock(&gspca_dev->usb_lock);
}
kfree(buffer);
}

Expand Down

0 comments on commit afafc20

Please sign in to comment.