From 728f538340cd926ce0d6d757ccee0c165c9e3722 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Fri, 25 Feb 2011 08:48:22 +0100 Subject: [PATCH] do not delay iso packet queueing Libraw1394's attempt to optimize away the packet queueing ioctl syscall overhead was a little bit too successful: when used with FFADO's streaming system, it ended up delaying packets after their intended transmission time. For now, to ensure correctness, don't try to optimize anything. This makes FFADO playback on Juju with my DICE work. Signed-off-by: Clemens Ladisch Signed-off-by: Stefan Richter --- src/fw-iso.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/fw-iso.c b/src/fw-iso.c index 253ce1d..ce1a891 100644 --- a/src/fw-iso.c +++ b/src/fw-iso.c @@ -51,10 +51,8 @@ queue_packet(fw_handle_t handle, if (handle->iso.head + handle->iso.max_packet_size > handle->iso.buffer_end) handle->iso.head = handle->iso.buffer; - /* Queue the packets in the kernel if we filled up the packets - * array or wrapped the payload buffer. */ - if (handle->iso.packet_index == handle->iso.irq_interval || - handle->iso.head == handle->iso.buffer) { + /* queue each packet individually */ + if (1) { queue_iso.packets = ptr_to_u64(handle->iso.packets); queue_iso.size = handle->iso.packet_index * sizeof handle->iso.packets[0]; queue_iso.data = ptr_to_u64(handle->iso.first_payload);