Hello community, here is the log from the commit of package libdc1394 for openSUSE:Factory checked in at Fri Jan 7 12:15:16 CET 2011. -------- --- libdc1394/libdc1394.changes 2010-11-19 19:11:16.000000000 +0100 +++ /mounts/work_src_done/STABLE/libdc1394/libdc1394.changes 2011-01-03 08:40:07.000000000 +0100 @@ -1,0 +2,9 @@ +Mon Jan 3 10:27:58 MSK 2011 - matwey.kornilov@gmail.com +- Update to 2.1.3. + - Bug fixes: + Fix for usb writes larger than 1 quadlet + On MAC OS, add needed frameworks to link line + Update firewire-{cdev,constants}.h to latest version and license + Change dequeue/enqueue to return error code if usb transfer haserror + dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN define +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- libdc1394-2.1.2.tar.bz2 New: ---- libdc1394-2.1.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libdc1394.spec ++++++ --- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:46.000000000 +0100 +++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:46.000000000 +0100 @@ -1,7 +1,7 @@ # -# spec file for package libdc1394 (Version 2.1.2) +# spec file for package libdc1394 (Version 2.1.3) # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ Name: libdc1394 %define libdc1394_12_version 1.2.2 -%define libdc1394_version 2.1.2 +%define libdc1394_version 2.1.3 BuildRequires: libraw1394-devel %if 0%{?suse_version} > 1100 # no IIDC-over-USB support for openSUSE 11.0 @@ -32,7 +32,7 @@ Group: Hardware/Camera AutoReqProv: on Version: %{libdc1394_version} -Release: 18 +Release: 1 Url: http://sourceforge.net/projects/libdc1394/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Summary: 1394-Based Digital Camera Control Library @@ -70,7 +70,7 @@ Summary: 1394-Based Digital Camera Control Library Group: Hardware/Camera Version: %{libdc1394_12_version} -Release: 18 +Release: 19 %description -n libdc1394_control12 This library provides functionality for controlling any camera that @@ -97,7 +97,7 @@ Summary: 1394-Based Digital Camera Control Library Group: Development/Libraries/C and C++ Version: %{libdc1394_12_version} -Release: 18 +Release: 19 Requires: libdc1394_control12 = %{libdc1394_12_version} libraw1394-devel %description -n libdc1394_control12-devel ++++++ libdc1394-2.1.2.tar.bz2 -> libdc1394-2.1.3.tar.bz2 ++++++ ++++ 5310 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/AUTHORS new/libdc1394-2.1.3/AUTHORS --- old/libdc1394-2.1.2/AUTHORS 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/AUTHORS 2011-01-03 05:05:00.000000000 +0100 @@ -3,6 +3,7 @@ Christophe Achard AgBr +Shane Anderson Simon Andersson Peter Antoniac Samuel Audet diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/ChangeLog new/libdc1394-2.1.3/ChangeLog --- old/libdc1394-2.1.2/ChangeLog 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/ChangeLog 2011-01-03 05:09:14.000000000 +0100 @@ -1,3 +1,17 @@ +2011-01-02 David Moore <david.moore@gmail.com> + * dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN + * Update NEWS, README, AUTHORS and version for release 2.1.3. + +2010-04-18 David Moore <david.moore@gmail.com> + * Change dequeue/enqueue to return error code if usb transfer has error. + +2010-04-17 David Moore <david.moore@gmail.com> + * Updated firewire-{cdev,constants}.h to latest version and MIT license. + * On Mac OS, add needed frameworks to link line (found by Holger Rapp) + +2009-09-19 David Moore <dcm@acm.org> + * Fix for usb writes larger than 1 quadlet found by Shane Anderson. + 2009-06-10 David Moore <dcm@acm.org> * Update NEWS and version for release 2.1.2. * Revert 5cf24a2051fc77b35dacb6bf33bc500acd533488, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/configure.in new/libdc1394-2.1.3/configure.in --- old/libdc1394-2.1.2/configure.in 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/configure.in 2011-01-03 05:12:36.000000000 +0100 @@ -1,6 +1,6 @@ # process this file with autoconf to get a configure script AC_PREREQ([2.6.0]) -AC_INIT([libdc1394],[2.1.2],[libdc1394-devel@lists.sf.net]) +AC_INIT([libdc1394],[2.1.3],[libdc1394-devel@lists.sf.net]) AC_CONFIG_SRCDIR([dc1394/control.c]) AC_CANONICAL_SYSTEM @@ -55,6 +55,8 @@ AC_CHECK_LIB(IOKit, IOMasterPort, [AC_DEFINE(HAVE_MACOSX,[],[Defined if IOKitLib is present]) have_macosx=true], [AC_MSG_ERROR(IOKitLib not found.)]) + platform_LDFLAGS="-framework CoreServices -framework CoreFoundation -framework Carbon" + AC_SUBST(platform_LDFLAGS) ;; *-*-cygwin* | *-*-mingw*) have_windows=true @@ -115,7 +117,7 @@ dnl 4. If the interface has removed or changed elements, set AGE to 0. dnl --------------------------------------------------------------------------- lt_current=23 -lt_revision=4 +lt_revision=5 lt_age=1 AC_SUBST(lt_current) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/conversions.h new/libdc1394-2.1.3/dc1394/conversions.h --- old/libdc1394-2.1.2/dc1394/conversions.h 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/dc1394/conversions.h 2010-12-16 16:54:10.000000000 +0100 @@ -62,7 +62,7 @@ DC1394_STEREO_METHOD_INTERLACED=0, DC1394_STEREO_METHOD_FIELD } dc1394stereo_method_t; -#define DC1394_STEREO_METHOD_MIN DC1394_STEREO_METHOD_INTERLACE +#define DC1394_STEREO_METHOD_MIN DC1394_STEREO_METHOD_INTERLACED #define DC1394_STEREO_METHOD_MAX DC1394_STEREO_METHOD_FIELD #define DC1394_STEREO_METHOD_NUM (DC1394_STEREO_METHOD_MAX-DC1394_STEREO_METHOD_MIN+1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/juju/firewire-cdev.h new/libdc1394-2.1.3/dc1394/juju/firewire-cdev.h --- old/libdc1394-2.1.2/dc1394/juju/firewire-cdev.h 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/dc1394/juju/firewire-cdev.h 2010-04-18 07:45:14.000000000 +0200 @@ -1,21 +1,26 @@ /* * Char device interface. * - * Copyright (C) 2005-2006 Kristian Hoegsberg <krh@bitplanet.net> + * Copyright (C) 2005-2007 Kristian Hoegsberg <krh@bitplanet.net> * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. */ #ifndef _LINUX_FIREWIRE_CDEV_H @@ -138,7 +143,24 @@ * This event is sent when the controller has completed an &fw_cdev_iso_packet * with the %FW_CDEV_ISO_INTERRUPT bit set. In the receive case, the headers * stripped of all packets up until and including the interrupt packet are - * returned in the @header field. + * returned in the @header field. The amount of header data per packet is as + * specified at iso context creation by &fw_cdev_create_iso_context.header_size. + * + * In version 1 of this ABI, header data consisted of the 1394 isochronous + * packet header, followed by quadlets from the packet payload if + * &fw_cdev_create_iso_context.header_size > 4. + * + * In version 2 of this ABI, header data consist of the 1394 isochronous + * packet header, followed by a timestamp quadlet if + * &fw_cdev_create_iso_context.header_size > 4, followed by quadlets from the + * packet payload if &fw_cdev_create_iso_context.header_size > 8. + * + * Behaviour of ver. 1 of this ABI is no longer available since ABI ver. 2. + * + * Format of 1394 iso packet header: 16 bits len, 2 bits tag, 6 bits channel, + * 4 bits tcode, 4 bits sy, in big endian byte order. Format of timestamp: + * 16 bits invalid, 3 bits cycleSeconds, 13 bits cycleCount, in big endian byte + * order. */ struct fw_cdev_event_iso_interrupt { __u64 closure; @@ -157,8 +179,6 @@ * @handle: Reference by which an allocated resource can be deallocated * @channel: Isochronous channel which was (de)allocated, if any * @bandwidth: Bandwidth allocation units which were (de)allocated, if any - * @channels_available: Last known availability of channels - * @bandwidth_available: Last known availability of bandwidth * * An %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED event is sent after an isochronous * resource was allocated at the IRM. The client has to check @channel and @@ -208,35 +228,45 @@ }; /* available since kernel version 2.6.22 */ -#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info) -#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request) -#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate) -#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate) -#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response) -#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset) -#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor) -#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor) -#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context) -#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso) -#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso) -#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso) +#define FW_CDEV_IOC_GET_INFO _IOWR('#', 0x00, struct fw_cdev_get_info) +#define FW_CDEV_IOC_SEND_REQUEST _IOW('#', 0x01, struct fw_cdev_send_request) +#define FW_CDEV_IOC_ALLOCATE _IOWR('#', 0x02, struct fw_cdev_allocate) +#define FW_CDEV_IOC_DEALLOCATE _IOW('#', 0x03, struct fw_cdev_deallocate) +#define FW_CDEV_IOC_SEND_RESPONSE _IOW('#', 0x04, struct fw_cdev_send_response) +#define FW_CDEV_IOC_INITIATE_BUS_RESET _IOW('#', 0x05, struct fw_cdev_initiate_bus_reset) +#define FW_CDEV_IOC_ADD_DESCRIPTOR _IOWR('#', 0x06, struct fw_cdev_add_descriptor) +#define FW_CDEV_IOC_REMOVE_DESCRIPTOR _IOW('#', 0x07, struct fw_cdev_remove_descriptor) +#define FW_CDEV_IOC_CREATE_ISO_CONTEXT _IOWR('#', 0x08, struct fw_cdev_create_iso_context) +#define FW_CDEV_IOC_QUEUE_ISO _IOWR('#', 0x09, struct fw_cdev_queue_iso) +#define FW_CDEV_IOC_START_ISO _IOW('#', 0x0a, struct fw_cdev_start_iso) +#define FW_CDEV_IOC_STOP_ISO _IOW('#', 0x0b, struct fw_cdev_stop_iso) /* available since kernel version 2.6.24 */ -#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer) +#define FW_CDEV_IOC_GET_CYCLE_TIMER _IOR('#', 0x0c, struct fw_cdev_get_cycle_timer) /* available since kernel version 2.6.30 */ #define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE _IOWR('#', 0x0d, struct fw_cdev_allocate_iso_resource) #define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE _IOW('#', 0x0e, struct fw_cdev_deallocate) #define FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x0f, struct fw_cdev_allocate_iso_resource) #define FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE _IOW('#', 0x10, struct fw_cdev_allocate_iso_resource) -#define FW_CDEV_IOC_GET_SPEED _IOR('#', 0x11, struct fw_cdev_get_speed) +#define FW_CDEV_IOC_GET_SPEED _IO('#', 0x11) /* returns speed code */ #define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) +#define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) -/* FW_CDEV_VERSION History - * - * 1 Feb 18, 2007: Initial version. +/* available since kernel version 2.6.34 */ +#define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2) + +/* + * FW_CDEV_VERSION History + * 1 (2.6.22) - initial version + * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if + * &fw_cdev_create_iso_context.header_size is 8 or more + * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt + * (2.6.33) - IR has always packet-per-buffer semantics now, not one of + * dual-buffer or packet-per-buffer depending on hardware + * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable */ -#define FW_CDEV_VERSION 1 +#define FW_CDEV_VERSION 3 /** * struct fw_cdev_get_info - General purpose information ioctl @@ -322,6 +352,9 @@ * The @closure field is passed back to userspace in the response event. * The @handle field is an out parameter, returning a handle to the allocated * range to be used for later deallocation of the range. + * + * The address range is allocated on all local nodes. The address allocation + * is exclusive except for the FCP command and response registers. */ struct fw_cdev_allocate { __u64 offset; @@ -359,7 +392,7 @@ * @immediate: If non-zero, immediate key to insert before pointer * @key: Upper 8 bits of root directory pointer * @data: Userspace pointer to contents of descriptor block - * @length: Length of descriptor block data, in bytes + * @length: Length of descriptor block data, in quadlets * @handle: Handle to the descriptor, written by the kernel * * Add a descriptor block and optionally a preceding immediate key to the local @@ -373,9 +406,14 @@ * If not 0, the @immediate field specifies an immediate key which will be * inserted before the root directory pointer. * + * @immediate, @key, and @data array elements are CPU-endian quadlets. + * * If successful, the kernel adds the descriptor and writes back a handle to the * kernel-side object to be used for later removal of the descriptor block and * immediate key. + * + * This ioctl affects the configuration ROMs of all local nodes. + * The ioctl only succeeds on device files which represent a local node. */ struct fw_cdev_add_descriptor { __u32 immediate; @@ -391,7 +429,7 @@ * descriptor was added * * Remove a descriptor block and accompanying immediate key from the local - * node's configuration ROM. + * nodes' configuration ROMs. */ struct fw_cdev_remove_descriptor { __u32 handle; @@ -405,7 +443,7 @@ * @type: %FW_CDEV_ISO_CONTEXT_TRANSMIT or %FW_CDEV_ISO_CONTEXT_RECEIVE * @header_size: Header size to strip for receive contexts * @channel: Channel to bind to - * @speed: Speed to transmit at + * @speed: Speed for transmit contexts * @closure: To be returned in &fw_cdev_event_iso_interrupt * @handle: Handle to context, written back by kernel * @@ -417,6 +455,12 @@ * * If a context was successfully created, the kernel writes back a handle to the * context, which must be passed in for subsequent operations on that context. + * + * For receive contexts, @header_size must be at least 4 and must be a multiple + * of 4. + * + * Note that the effect of a @header_size > 4 depends on + * &fw_cdev_get_info.version, as documented at &fw_cdev_event_iso_interrupt. */ struct fw_cdev_create_iso_context { __u32 type; @@ -445,10 +489,34 @@ * * &struct fw_cdev_iso_packet is used to describe isochronous packet queues. * - * Use the FW_CDEV_ISO_ macros to fill in @control. The sy and tag fields are - * specified by IEEE 1394a and IEC 61883. + * Use the FW_CDEV_ISO_ macros to fill in @control. * - * FIXME - finish this documentation + * For transmit packets, the header length must be a multiple of 4 and specifies + * the numbers of bytes in @header that will be prepended to the packet's + * payload; these bytes are copied into the kernel and will not be accessed + * after the ioctl has returned. The sy and tag fields are copied to the iso + * packet header (these fields are specified by IEEE 1394a and IEC 61883-1). + * The skip flag specifies that no packet is to be sent in a frame; when using + * this, all other fields except the interrupt flag must be zero. + * + * For receive packets, the header length must be a multiple of the context's + * header size; if the header length is larger than the context's header size, + * multiple packets are queued for this entry. The sy and tag fields are + * ignored. If the sync flag is set, the context drops all packets until + * a packet with a matching sy field is received (the sync value to wait for is + * specified in the &fw_cdev_start_iso structure). The payload length defines + * how many payload bytes can be received for one packet (in addition to payload + * quadlets that have been defined as headers and are stripped and returned in + * the &fw_cdev_event_iso_interrupt structure). If more bytes are received, the + * additional bytes are dropped. If less bytes are received, the remaining + * bytes in this part of the payload buffer will not be written to, not even by + * the next packet, i.e., packets received in consecutive frames will not + * necessarily be consecutive in memory. If an entry has queued multiple + * packets, the payload length is divided equally among them. + * + * When a packet with the interrupt flag set has been completed, the + * &fw_cdev_event_iso_interrupt event will be sent. An entry that has queued + * multiple receive packets is completed when its last packet is completed. */ struct fw_cdev_iso_packet { __u32 control; @@ -465,7 +533,7 @@ * Queue a number of isochronous packets for reception or transmission. * This ioctl takes a pointer to an array of &fw_cdev_iso_packet structs, * which describe how to transmit from or receive into a contiguous region - * of a mmap()'ed payload buffer. As part of the packet descriptors, + * of a mmap()'ed payload buffer. As part of transmit packet descriptors, * a series of headers can be supplied, which will be prepended to the * payload during DMA. * @@ -515,11 +583,18 @@ /** * struct fw_cdev_get_cycle_timer - read cycle timer register * @local_time: system time, in microseconds since the Epoch - * @cycle_timer: isochronous cycle timer, as per OHCI 1.1 clause 5.13 + * @cycle_timer: Cycle Time register contents * * The %FW_CDEV_IOC_GET_CYCLE_TIMER ioctl reads the isochronous cycle timer - * and also the system clock. This allows to express the receive time of an - * isochronous packet as a system time with microsecond accuracy. + * and also the system clock (%CLOCK_REALTIME). This allows to express the + * receive time of an isochronous packet as a system time. + * + * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and + * 12 bits cycleOffset, in host byte order. Cf. the Cycle Time register + * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394. + * + * In version 1 and 2 of the ABI, this ioctl returned unreliable (non- + * monotonic) @cycle_timer values on certain controllers. */ struct fw_cdev_get_cycle_timer { __u64 local_time; @@ -527,6 +602,25 @@ }; /** + * struct fw_cdev_get_cycle_timer2 - read cycle timer register + * @tv_sec: system time, seconds + * @tv_nsec: system time, sub-seconds part in nanoseconds + * @clk_id: input parameter, clock from which to get the system time + * @cycle_timer: Cycle Time register contents + * + * The %FW_CDEV_IOC_GET_CYCLE_TIMER2 works like + * %FW_CDEV_IOC_GET_CYCLE_TIMER but lets you choose a clock like with POSIX' + * clock_gettime function. Supported @clk_id values are POSIX' %CLOCK_REALTIME + * and %CLOCK_MONOTONIC and Linux' %CLOCK_MONOTONIC_RAW. + */ +struct fw_cdev_get_cycle_timer2 { + __s64 tv_sec; + __s32 tv_nsec; + __s32 clk_id; + __u32 cycle_timer; +}; + +/** * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth * @closure: Passed back to userspace in correponding iso resource events * @channels: Isochronous channels of which one is to be (de)allocated @@ -555,17 +649,17 @@ * * The %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE ioctl works like * %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE except that resources are freed - * instead of allocated. At most one channel may be specified in this ioctl. + * instead of allocated. * An %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED event concludes this operation. * - * To summarize, %FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE allocates iso resources - * for the lifetime of the fd or handle. + * To summarize, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE allocates iso resources + * for the lifetime of the fd or @handle. * In contrast, %FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE allocates iso resources * for the duration of a bus generation. * - * @channels is a host-endian bitfield with the most significant bit - * representing channel 0 and the least significant bit representing channel 63: - * 1ULL << (63 - c) + * @channels is a host-endian bitfield with the least significant bit + * representing channel 0 and the most significant bit representing channel 63: + * 1ULL << c for each channel c that is a candidate for (de)allocation. * * @bandwidth is expressed in bandwidth allocation units, i.e. the time to send * one quadlet of data (payload or header data) at speed S1600. @@ -578,12 +672,30 @@ }; /** - * struct fw_cdev_get_speed - Query maximum speed to or from this device - * @max_speed: Speed code; minimum of the device's link speed, the local node's - * link speed, and all PHY port speeds between the two links + * struct fw_cdev_send_stream_packet - send an asynchronous stream packet + * @length: Length of outgoing payload, in bytes + * @tag: Data format tag + * @channel: Isochronous channel to transmit to + * @sy: Synchronization code + * @closure: Passed back to userspace in the response event + * @data: Userspace pointer to payload + * @generation: The bus generation where packet is valid + * @speed: Speed to transmit at + * + * The %FW_CDEV_IOC_SEND_STREAM_PACKET ioctl sends an asynchronous stream packet + * to every device which is listening to the specified channel. The kernel + * writes an &fw_cdev_event_response event which indicates success or failure of + * the transmission. */ -struct fw_cdev_get_speed { - __u32 max_speed; +struct fw_cdev_send_stream_packet { + __u32 length; + __u32 tag; + __u32 channel; + __u32 sy; + __u64 closure; + __u64 data; + __u32 generation; + __u32 speed; }; #endif /* _LINUX_FIREWIRE_CDEV_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/juju/firewire-constants.h new/libdc1394-2.1.3/dc1394/juju/firewire-constants.h --- old/libdc1394-2.1.2/dc1394/juju/firewire-constants.h 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/dc1394/juju/firewire-constants.h 2010-04-18 07:45:02.000000000 +0200 @@ -1,3 +1,28 @@ +/* + * IEEE 1394 constants. + * + * Copyright (C) 2005-2007 Kristian Hoegsberg <krh@bitplanet.net> + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + #ifndef _LINUX_FIREWIRE_CONSTANTS_H #define _LINUX_FIREWIRE_CONSTANTS_H @@ -21,7 +46,7 @@ #define EXTCODE_WRAP_ADD 0x6 #define EXTCODE_VENDOR_DEPENDENT 0x7 -/* Juju specific tcodes */ +/* Linux firewire-core (Juju) specific tcodes */ #define TCODE_LOCK_MASK_SWAP (0x10 | EXTCODE_MASK_SWAP) #define TCODE_LOCK_COMPARE_SWAP (0x10 | EXTCODE_COMPARE_SWAP) #define TCODE_LOCK_FETCH_ADD (0x10 | EXTCODE_FETCH_ADD) @@ -36,7 +61,7 @@ #define RCODE_TYPE_ERROR 0x6 #define RCODE_ADDRESS_ERROR 0x7 -/* Juju specific rcodes */ +/* Linux firewire-core (Juju) specific rcodes */ #define RCODE_SEND_ERROR 0x10 #define RCODE_CANCELLED 0x11 #define RCODE_BUSY 0x12 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/usb/capture.c new/libdc1394-2.1.3/dc1394/usb/capture.c --- old/libdc1394-2.1.2/dc1394/usb/capture.c 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/dc1394/usb/capture.c 2010-04-18 23:53:21.000000000 +0200 @@ -41,15 +41,18 @@ return; } - if (transfer->status != LIBUSB_TRANSFER_COMPLETED) - dc1394_log_error ("usb: Bulk transfer %d failed with code %d", - f->frame.id, transfer->status); - dc1394_log_debug ("usb: Bulk transfer %d complete, %d of %d bytes", f->frame.id, transfer->actual_length, transfer->length); int status = BUFFER_FILLED; if (transfer->actual_length < transfer->length) status = BUFFER_CORRUPT; + + if (transfer->status != LIBUSB_TRANSFER_COMPLETED) { + dc1394_log_error ("usb: Bulk transfer %d failed with code %d", + f->frame.id, transfer->status); + status = BUFFER_ERROR; + } + pthread_mutex_lock (&craw->mutex); f->status = status; craw->frames_ready++; @@ -131,6 +134,7 @@ craw->num_frames = num_dma_buffers; craw->current = -1; craw->frames_ready = 0; + craw->queue_broken = 0; craw->buffer_size = proto.total_bytes * num_dma_buffers; craw->buffer = malloc (craw->buffer_size); if (craw->buffer == NULL) { @@ -311,15 +315,18 @@ pthread_mutex_lock (&craw->mutex); status = f->status; pthread_mutex_unlock (&craw->mutex); - if (status != BUFFER_FILLED && status != BUFFER_CORRUPT) + if (status == BUFFER_EMPTY) return DC1394_SUCCESS; } + if (craw->queue_broken) + return DC1394_FAILURE; + char ch; read (craw->notify_pipe[0], &ch, 1); pthread_mutex_lock (&craw->mutex); - if (f->status != BUFFER_FILLED && f->status != BUFFER_CORRUPT) { + if (f->status == BUFFER_EMPTY) { dc1394_log_error ("usb: Expected filled buffer"); pthread_mutex_unlock (&craw->mutex); return DC1394_FAILURE; @@ -332,6 +339,9 @@ *frame_return = &f->frame; + if (f->status == BUFFER_ERROR) + return DC1394_FAILURE; + return DC1394_SUCCESS; } @@ -347,13 +357,16 @@ return DC1394_INVALID_ARGUMENT_VALUE; } - if (f->status != BUFFER_FILLED && f->status != BUFFER_CORRUPT) { + if (f->status == BUFFER_EMPTY) { dc1394_log_error ("usb: Frame is not enqueuable"); return DC1394_FAILURE; } f->status = BUFFER_EMPTY; - libusb_submit_transfer (f->transfer); + if (libusb_submit_transfer (f->transfer) != LIBUSB_SUCCESS) { + craw->queue_broken = 1; + return DC1394_FAILURE; + } return DC1394_SUCCESS; } @@ -373,7 +386,7 @@ { struct usb_frame * f = (struct usb_frame *) frame; - if (f->status == BUFFER_CORRUPT) + if (f->status == BUFFER_CORRUPT || f->status == BUFFER_ERROR) return DC1394_TRUE; return DC1394_FALSE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/usb/control.c new/libdc1394-2.1.3/dc1394/usb/control.c --- old/libdc1394-2.1.2/dc1394/usb/control.c 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/dc1394/usb/control.c 2009-09-19 20:40:21.000000000 +0200 @@ -200,10 +200,10 @@ int i; /* Convert from host-endian to little-endian */ for (i = 0; i < num_quads; i++) { - buf[4*i] = quads[0] & 0xff; - buf[4*i+1] = (quads[0] >> 8) & 0xff; - buf[4*i+2] = (quads[0] >> 16) & 0xff; - buf[4*i+3] = (quads[0] >> 24) & 0xff; + buf[4*i] = quads[i] & 0xff; + buf[4*i+1] = (quads[i] >> 8) & 0xff; + buf[4*i+2] = (quads[i] >> 16) & 0xff; + buf[4*i+3] = (quads[i] >> 24) & 0xff; } /* IEEE 1394 address writes are mapped to USB control transfers as * shown here. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/dc1394/usb/usb.h new/libdc1394-2.1.3/dc1394/usb/usb.h --- old/libdc1394-2.1.2/dc1394/usb/usb.h 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/dc1394/usb/usb.h 2010-04-18 23:51:36.000000000 +0200 @@ -44,6 +44,7 @@ unsigned int num_frames; int current; int frames_ready; + int queue_broken; uint8_t bus; uint8_t addr; @@ -64,6 +65,7 @@ BUFFER_EMPTY, BUFFER_FILLED, BUFFER_CORRUPT, + BUFFER_ERROR, } usb_frame_status; struct usb_frame { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/NEWS new/libdc1394-2.1.3/NEWS --- old/libdc1394-2.1.2/NEWS 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/NEWS 2011-01-03 05:04:36.000000000 +0100 @@ -1,6 +1,14 @@ Release information and news: ----------------------------- +-- 2.1.3: + - Bug fixes: + - Fix for usb writes larger than 1 quadlet + - On MAC OS, add needed frameworks to link line + - Update firewire-{cdev,constants}.h to latest version and license + - Change dequeue/enqueue to return error code if usb transfer has error + - dc1394/conversions.h: Fix typo in DC1394_STEREO_METHOD_MIN define + -- 2.1.2: - Fix broken ABI caused by new Format7 modes in release 2.1.1. Reverted for now. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libdc1394-2.1.2/README new/libdc1394-2.1.3/README --- old/libdc1394-2.1.2/README 2009-06-11 06:05:47.000000000 +0200 +++ new/libdc1394-2.1.3/README 2011-01-03 05:07:36.000000000 +0100 @@ -57,7 +57,7 @@ make install Obviously, you need to be root when executing the last statement if you wish to -do a system-wide installation. To compile and install libdc1394 from an SVN +do a system-wide installation. To compile and install libdc1394 from a git source tree do the following: autoreconf -i -s @@ -65,11 +65,10 @@ make make install -Details on getting a source tree from the SVN repository is beyond the scope of +Details on getting a source tree from the git repository is beyond the scope of this small readme but the following command should give you the latest trunk: -svn co https://libdc1394.svn.sourceforge.net/svnroot/libdc1394/trunk/libdc1394/ - +git clone git://libdc1394.git.sourceforge.net/gitroot/libdc1394/libdc1394 -- 2000-01-13 Gord Peters ++++++ libdc1394.ac.patch ++++++ --- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:47.000000000 +0100 +++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:47.000000000 +0100 @@ -1,5 +1,5 @@ ---- a/libdc1394-2.1.2/configure.in 2009-11-23 10:11:16.000000000 +0300 -+++ b/libdc1394-2.1.2/configure.in 2009-11-23 10:11:51.000000000 +0300 +--- a/libdc1394-2.1.3/configure.in 2009-11-23 10:11:16.000000000 +0300 ++++ b/libdc1394-2.1.3/configure.in 2009-11-23 10:11:51.000000000 +0300 @@ -5,12 +5,6 @@ AC_CANONICAL_SYSTEM ++++++ libdc1394.no-x11.patch ++++++ --- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:47.000000000 +0100 +++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:47.000000000 +0100 @@ -13,9 +13,9 @@ grab_gray_image_SOURCES = grab_gray_image.c grab_gray_image_LDADD = ../libdc1394/libdc1394_control.la -lraw1394 ---- a/libdc1394-2.1.2/configure.in -+++ b/libdc1394-2.1.2/configure.in -@@ -79,21 +79,30 @@ +--- a/libdc1394-2.1.3/configure.in ++++ b/libdc1394-2.1.3/configure.in +@@ -76,21 +76,30 @@ # check for Xv extensions (necessary for examples/dc1394_multiview) # imported from Coriander ++++++ libdc1394-swab_fix.patch ++++++ --- /var/tmp/diff_new_pack.qZjKlS/_old 2011-01-07 12:14:47.000000000 +0100 +++ /var/tmp/diff_new_pack.qZjKlS/_new 2011-01-07 12:14:47.000000000 +0100 @@ -2,8 +2,8 @@ libdc1394-2.0.2/dc1394/conversions.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) ---- a/libdc1394-2.1.2/dc1394/conversions.c -+++ b/libdc1394-2.1.2/dc1394/conversions.c +--- a/libdc1394-2.1.3/dc1394/conversions.c ++++ b/libdc1394-2.1.3/dc1394/conversions.c @@ -22,11 +22,10 @@ #include <string.h> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de