Fix default isochronous IRQ interval on firewire-core

libraw1394 takes a negative IRQ interval to mean "every 256 packets"
with the juju backend, which doesn't work well if you don't queue that
many.  Use buf_packets / 4 like the ieee1394 version.

Signed-off-by: Jay Fenlason <fenlason@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (order, comment)
This commit is contained in:
Jay Fenlason 2009-11-04 16:53:24 -05:00 committed by Stefan Richter
parent e98abe588a
commit 1fb09ead37
1 changed files with 7 additions and 4 deletions

View File

@ -391,11 +391,14 @@ iso_init(fw_handle_t handle, int type,
return -1;
}
handle->iso.type = type;
/* set irq_interval from < 1 to default values like ieee1394 rawiso */
if (irq_interval < 0)
handle->iso.irq_interval = 256;
else
handle->iso.irq_interval = irq_interval;
irq_interval = buf_packets / 4;
if (irq_interval == 0)
irq_interval = 1;
handle->iso.type = type;
handle->iso.irq_interval = irq_interval;
handle->iso.xmit_handler = xmit_handler;
handle->iso.recv_handler = recv_handler;
handle->iso.buf_packets = buf_packets;