summaryrefslogtreecommitdiff
path: root/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c')
-rw-r--r--drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c b/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
index 04046bd..be43780 100644
--- a/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
+++ b/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.c
@@ -75,19 +75,23 @@ static void init_private_context(struct private_context *ctx)
init_completion(&ctx->done);
}
-static void handle_receive(struct voicebus *vb, void *vbb)
+static void handle_receive(struct voicebus *vb, struct list_head *buffers)
{
struct private_context *ctx = pci_get_drvdata(vb->pdev);
- __vpmadt032_receive(ctx->pvt, vbb);
- if (__vpmadt032_done(ctx->pvt))
- complete(&ctx->done);
+ struct vbb *vbb;
+ list_for_each_entry(vbb, buffers, entry) {
+ __vpmadt032_receive(ctx->pvt, vbb->data);
+ if (__vpmadt032_done(ctx->pvt))
+ complete(&ctx->done);
+ }
}
-static void handle_transmit(struct voicebus *vb, void *vbb)
+static void handle_transmit(struct voicebus *vb, struct list_head *buffers)
{
+ struct vbb *vbb;
struct private_context *ctx = pci_get_drvdata(vb->pdev);
- __vpmadt032_transmit(ctx->pvt, vbb);
- voicebus_transmit(ctx->vb, vbb);
+ list_for_each_entry(vbb, buffers, entry)
+ __vpmadt032_transmit(ctx->pvt, vbb->data);
}
static const struct voicebus_operations loader_operations = {