diff options
author | Kristian Høgsberg <krh@redhat.com> | 2007-04-12 14:11:48 -0400 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2007-04-12 14:11:48 -0400 |
commit | 7096501f0d4d40ad4df67e250e66e3db16de2832 (patch) | |
tree | ab179f22ea7745eb92c0d6fb27d6c03ee933d2e9 | |
parent | fb1570efbf4cb8ff4ef45937408cee43874c863a (diff) | |
download | libraw1394-7096501f0d4d40ad4df67e250e66e3db16de2832.tar.gz |
Use power-of-two max packet sizes.
-rw-r--r-- | juju/raw1394-iso.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/juju/raw1394-iso.c b/juju/raw1394-iso.c index 06ece9a..a320440 100644 --- a/juju/raw1394-iso.c +++ b/juju/raw1394-iso.c @@ -327,6 +327,18 @@ int raw1394_iso_recv_flush(raw1394handle_t handle) return 0; } +static unsigned int +round_to_power_of_two(unsigned int value) +{ + unsigned int pot; + + pot = 1; + while (pot < value) + pot <<= 1; + + return pot; +} + static int iso_init(raw1394handle_t handle, int type, raw1394_iso_xmit_handler_t xmit_handler, @@ -366,7 +378,7 @@ iso_init(raw1394handle_t handle, int type, handle->iso.xmit_handler = xmit_handler; handle->iso.recv_handler = recv_handler; handle->iso.buf_packets = buf_packets; - handle->iso.max_packet_size = max_packet_size; + handle->iso.max_packet_size = round_to_power_of_two(max_packet_size); handle->iso.packet_phase = 0; handle->iso.packet_count = 0; handle->iso.packets = |