Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 168921
b: refs/heads/master
c: 31769ce
h: refs/heads/master
i:
  168919: eef4f50
v: v3
  • Loading branch information
Jay Fenlason authored and Stefan Richter committed Nov 20, 2009
1 parent f372244 commit 7df93be
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 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: 5ed1f321a71b8549cc2eea26c94fe7943ed01d31
refs/heads/master: 31769cef2e973544164aa7d0db2e2024660d5e21
25 changes: 20 additions & 5 deletions trunk/drivers/firewire/ohci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1904,15 +1904,30 @@ static int handle_it_packet(struct context *context,
{
struct iso_context *ctx =
container_of(context, struct iso_context, context);
int i;
struct descriptor *pd;

if (last->transfer_status == 0)
/* This descriptor isn't done yet, stop iteration. */
for (pd = d; pd <= last; pd++)
if (pd->transfer_status)
break;
if (pd > last)
/* Descriptor(s) not done yet, stop iteration */
return 0;

if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS)
i = ctx->header_length;
if (i + 4 < PAGE_SIZE) {
/* Present this value as big-endian to match the receive code */
*(__be32 *)(ctx->header + i) = cpu_to_be32(
((u32)le16_to_cpu(pd->transfer_status) << 16) |
le16_to_cpu(pd->res_count));
ctx->header_length += 4;
}
if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS) {
ctx->base.callback(&ctx->base, le16_to_cpu(last->res_count),
0, NULL, ctx->base.callback_data);

ctx->header_length, ctx->header,
ctx->base.callback_data);
ctx->header_length = 0;
}
return 1;
}

Expand Down

0 comments on commit 7df93be

Please sign in to comment.