diff options
-rw-r--r-- | drivers/media/dvb/firewire/firedtv-fw.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/media/dvb/firewire/firedtv-fw.c b/drivers/media/dvb/firewire/firedtv-fw.c index 6954848b5803..d8408cea335f 100644 --- a/drivers/media/dvb/firewire/firedtv-fw.c +++ b/drivers/media/dvb/firewire/firedtv-fw.c | |||
@@ -79,19 +79,14 @@ struct firedtv_receive_context { | |||
79 | static int queue_iso(struct firedtv_receive_context *ctx, int index) | 79 | static int queue_iso(struct firedtv_receive_context *ctx, int index) |
80 | { | 80 | { |
81 | struct fw_iso_packet p; | 81 | struct fw_iso_packet p; |
82 | int err; | ||
83 | 82 | ||
84 | p.payload_length = MAX_PACKET_SIZE; | 83 | p.payload_length = MAX_PACKET_SIZE; |
85 | p.interrupt = !(ctx->interrupt_packet & (IRQ_INTERVAL - 1)); | 84 | p.interrupt = !(++ctx->interrupt_packet & (IRQ_INTERVAL - 1)); |
86 | p.skip = 0; | 85 | p.skip = 0; |
87 | p.header_length = ISO_HEADER_SIZE; | 86 | p.header_length = ISO_HEADER_SIZE; |
88 | 87 | ||
89 | err = fw_iso_context_queue(ctx->context, &p, &ctx->buffer, | 88 | return fw_iso_context_queue(ctx->context, &p, &ctx->buffer, |
90 | index * MAX_PACKET_SIZE); | 89 | index * MAX_PACKET_SIZE); |
91 | if (!err) | ||
92 | ctx->interrupt_packet++; | ||
93 | |||
94 | return err; | ||
95 | } | 90 | } |
96 | 91 | ||
97 | static void handle_iso(struct fw_iso_context *context, u32 cycle, | 92 | static void handle_iso(struct fw_iso_context *context, u32 cycle, |
@@ -150,7 +145,7 @@ static int start_iso(struct firedtv *fdtv) | |||
150 | if (err) | 145 | if (err) |
151 | goto fail_context_destroy; | 146 | goto fail_context_destroy; |
152 | 147 | ||
153 | ctx->interrupt_packet = 1; | 148 | ctx->interrupt_packet = 0; |
154 | ctx->current_packet = 0; | 149 | ctx->current_packet = 0; |
155 | 150 | ||
156 | for (i = 0; i < N_PAGES; i++) | 151 | for (i = 0; i < N_PAGES; i++) |