To Do

From IEEE 1394 FireWire Wiki
(Difference between revisions)
Jump to: navigation, search
(import from http://wiki.linux1394.org/ToDo, last edited 2008-07-24 --- without priorities)
 
(firewire-ohci: second thoughts about IR/IT DMA event handlers)
 
(72 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
''Linux1394 Project TODO List''
 
''Linux1394 Project TODO List''
  
This page is targeted towards users (to see which things don't work yet) as well as to developers (to pick a project which caught their interest).  People new to FireWire low-level development may find our lists of specs and books useful.  Almost all FireWire related specs are open, some of them even gratis.
+
This page is targeted towards users (to see which things don't work yet) as well as to developers (to pick a project which caught their interest).  People new to FireWire low-level development may find our lists of [[Specifications|specifications]] and [[Books and Articles|books]] useful.  Almost all FireWire related specifications are open, some of them even gratis.
  
 
See also our [http://bugzilla.kernel.org/buglist.cgi?product=Drivers&component=IEEE1394&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=DEFERRED&bug_status=NEEDINFO list of bugs at bugzilla.kernel.org] for a whole lot of TODO items.  There are also bugs filed in distributors' bug trackers but they are not as easy to query.
 
See also our [http://bugzilla.kernel.org/buglist.cgi?product=Drivers&component=IEEE1394&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=DEFERRED&bug_status=NEEDINFO list of bugs at bugzilla.kernel.org] for a whole lot of TODO items.  There are also bugs filed in distributors' bug trackers but they are not as easy to query.
Line 9: Line 9:
  
  
== FireWire subsystem (a.k.a. Juju driver stack) ==
+
== Documentation ==
  
=== Documentation ===
+
* Userspace programming documentation (for "plumbing layer" and application layer programming):
 +
** Write some overview documentation of firewire-core's character device file interface;  how to perform a few common tasks...
 +
* Kernel programming documentation:
 +
** Finish kerneldoc comments of all exported functions and struct types that are part of the firewire-core APIs?
 +
** Add a template to linux/Documentation/DocBook to pull firewire-core's kerneldoc comments in?  Ideally, arrange the documentation in chapters for the userspace API, high-level API, and low-level API.
 +
* Usage documentation:
 +
** Add documentation for individual drivers on this wiki?  See [[Special:Wantedpages]].
 +
** Derive documentation suitable for distribution with the mainline kernel sources, i.e. linux/Documentation/...?
  
* Add documentation for individual drivers on this wiki.  See [[Special:Wantedpages]].
 
* Derive documentation suitable for distribution with the mainline kernel sources, i.e. linux/Documentation/...?
 
* Finish kerneldoc comments of all exported functions and struct types that are part of the firewire-core APIs.
 
* Add a template to linux/Documentation/DocBook to pull firewire-core's kerneldoc comments in.  Ideally, arrange the documentation in chapters for the userspace API, high-level API, and low-level API.
 
  
=== support in userspace ===
+
== Support in userspace ==
  
* Add support in FFmpeg's libavformat.
+
* libraw1394:
* <s>Implement automatic selection of linux1394 backend or juju backend in libraw1394 at runtime. -- Almost done: [http://marc.info/?l=linux1394-devel&m=120902086418604 first shot at unified libraw1394]</s> (implemented in libraw1394 v2)
+
** Fix handling of device removal. Implement hand-over to different default ioctl fd and iso ioctl fd when necessary and possible.
* Finish support by libraw1394. E.g. use OHCI timestamps when the respective kernel patch is merged.
+
** Implement multichannel isochronous reception with firewire-core of kernel 2.6.36 and later, as present in the raw1394 backend.
* Implement automatic selection of linux1394 backend or juju backend in libdc1394 at runtime.
+
* Add <linux/firewire-cdev.h> support in FFmpeg's libavformat?
* Add support in libdc1394 v1?
+
* Add <linux/firewire-cdev.h> support in libdc1394 v1?
 +
 
 +
 
 +
== FireWire kernel subsystem ==
  
 
=== firewire-core ===
 
=== firewire-core ===
  
* Userspace interface:  Extend the ABI to export timestamps in a way palatable to video1394 and raw1394 clients. Needed e.g. for [http://www.nabble.com/Re:-Receive-and-Display-framerates-not-showing-p15304660.html coriander] and even more so for audio applications.  (Does this also bring dvgrab into trouble?  [https://bugzilla.redhat.com/show_bug.cgi?id=370931 Fedora bug 370931], [https://bugzilla.redhat.com/show_bug.cgi?id=445266 Fedora bug 445266])  Almost done: [http://marc.info/?l=linux1394-devel&m=121679423418348 patch]
+
* Design and implement an FCP transactions serializing infrastructure? See this [http://marc.info/?l=linux1394-devel&m=126182749522427 posting] for requirements.
* Userspace interface: Add feature to allocate isochronous bandwidth and channels, and optionally de-allocate them when a process which allocated them diesMailinglist discussions:  [http://marc.info/?l=linux1394-devel&m=120352821002943 in 02/2008], [http://marc.info/?l=linux1394-devel&m=119694051427429 in 12/2007], [http://marc.info/?l=linux1394-devel&m=116547403420879 in 12/2006]Also implement (optional?) automatic re-allocation on bus reset events.  Multi-camera capture is currently very awkward to implement via libdc1394 v2 because the IRM cannot be conveniently accessed without elevated device file access rights and open-coding of the (de-,re-)allocation procedure by userspace.
+
* Bus management:
* Fix remaining device recognition bugs.  Best done in hands-on mode rather than via e-mail debugging.
+
** Set SPLIT_TIMEOUT to the same value on all nodes.
 +
** Initialize BUS_TIME to the same value on all nodes.
 +
** Set PRIORITY_BUDGET on all nodes.
 +
** Implement gap count optimization based on round-trip delay measurement alternatively to the present hop count table based gap count optimizationThe latter cannot be used if 1394b repeater nodes are present. (The algorithm for this is [http://www.google.com/patents/about?id=VY0GAAAAEBAJ patented] and not included in the [http://www.mpegla.com/main/programs/1394/Pages/Intro.aspx 1394 Patent Portfolio License].)
 +
** Power management: Clear the linkoff bit and/or send link_on to disabled nodes <s>if there is enough power</s>.  (It is impossible to determine whether there is enough power since too many devices and PCs provide wrong power class information.)
 +
 
 +
=== firewire-net ===
 +
 
 +
* Reduce CPU utilization.
  
 
=== firewire-ohci ===
 
=== firewire-ohci ===
  
* [http://bugzilla.kernel.org/show_bug.cgi?id=10936 Bug 10936], [https://bugzilla.redhat.com/show_bug.cgi?id=415841 Fedora bug 415841]: DV reception through some VIA VT6306 and 6307 OHCI 1.0 cards stops after the first frame.
+
* <s>Move all (or as much as possible) of the isochronous receive and transmit context tasklets into the IRQ handler. This is most desirable for low latency as required for audio I/O. Note, such a change may also affect other drivers.  It may for example be necessary to add a tasklet to firewire-net for ARP/ broadcast/ multicast reception.</s> (Sounds like a bad ideaBetter move audio streaming into the kernel, as a set of ALSA drivers.)
* <s>[https://bugzilla.redhat.com/show_bug.cgi?id=435550 Fedora bug 435550]:  DV reception through some TSB43AB22(A?) cards is corrupted.</s>  (done)
+
* [http://bugzilla.kernel.org/show_bug.cgi?id=10935 Bug 10935]:  ALi controllers don't work yet.
* [http://bugzilla.kernel.org/show_bug.cgi?id=10935 Bug 10935]: ALi controllers don't work yet.
+
* [https://bugzilla.redhat.com/show_bug.cgi?id=228073 Fedora bug 228073]: Apple UniNorth v1 built-in controllers do not seem to fully work.
* [http://bugzilla.kernel.org/show_bug.cgi?id=8828 Bug 8828], [https://bugzilla.redhat.com/show_bug.cgi?id=244576 Fedora bug 244576]: Come up with a quirk fix for NForce2.  The person to do so will most certainly require direct access to this hardware.  Note, the NForce2 workaround in ohci1394 is unacceptable by today's standards as it involves busy-waiting in the interrupt handler.  Either we find something better for firewire-ohci, or NForce2 remains unsupported in firewire-ohci.
+
* [http://bugzilla.kernel.org/show_bug.cgi?id=8828 Bug 8828], [https://bugzilla.redhat.com/show_bug.cgi?id=244576 Fedora bug 244576]: Come up with a quirk fix for NForce2.  The person to do so will most certainly require direct access to this hardware.  Note, the NForce2 workaround in ohci1394 is unacceptable by today's standards as it involves busy-waiting in the interrupt handler.  Either we find something better for firewire-ohci, or NForce2 remains unsupported in firewire-ohci.
 +
* [https://bugzilla.redhat.com/show_bug.cgi?id=492718#c5 Fedora bug 492718 comments 5 and 6]:  Implement a workaround for Texas Instruments' erratum [http://focus.ti.com/lit/er/sllz012/sllz012.pdf SLLZ012], "Errata for the 1394 Physical Layer Devices"?
 +
* [https://bugzilla.redhat.com/show_bug.cgi?id=608544 Fedora bug 608544]:  Handle IntEvent.regAccessFail at least in ohci_enable().
 +
* [https://bugzilla.kernel.org/show_bug.cgi?id=36622 Bug 36622]:  Pinnacle controllers don't work yet.  Similar to Fedora bug 608544.
  
 
=== firewire-sbp2 ===
 
=== firewire-sbp2 ===
  
* Implement dynamically appended ORB lists for performance improvement.  Note, the old sbp2 driver's implementation of ORB lists is very buggy and does not seem to improve performance noticeably.
+
* Make the DMA mapping more prepared for uncommon architectures:
* Implement SBP-3 FASTSTART protocol which is rumored to be supported by newer OxSemi bridges and INIC-2430.
+
:* Allocate all DMA regions (ORBs, page tables) separately from CPU data.
 +
:* Honor Unit_Characteristics.ORB_size when allocating and mapping DMA regions for ORBs.
 +
* Change the bus reset handling thus that scsi_block_requests/scsi_unblock_requests is no longer needed, as this is a fragile mechanism and requires nontrivial state tracking.  Instead, let a SCSI transaction overlap a bus reset and either let it time out (so that the SCSI subsystem retries it) or retry it in firewire-sbp2 itself after the reset and reconnect/re-login.
 +
* Implement dynamically appended ORB lists for performance improvement.  Note, the old sbp2 driver's implementation of ORB lists is very buggy (default: off) but nevertheless results in better throughput with [http://marc.info/?l=linux1394-devel&m=125071985218864 some hardware combinations].
 +
* <s>Implement SBP-3 FASTSTART protocol which is rumored to be supported by newer OxSemi bridges and INIC-2430.</s>  &mdash;  None of my (Stefan R.'s) OxSemi 912/ 924/ 934/ 936 or Initio 2430 based devices' firmwares offer FASTSTART support.  It seems too rare to justify to add it to the driver.
 
* Implement operation without physical DMA.
 
* Implement operation without physical DMA.
 
* Implement hand-over from OpenFirmware login.  When an Apple PC boots from a FireWire disk, the OpenFirmware is already logged in but does apparently not log out after it loaded the kernel image.  When then the kernel's firewire-sbp2 (or sbp2, for that matter) logs in, the target may deny access.  This has been observed with Momobay CX-1.  The old ieee1394 driver stack somehow overcomes this because of timing subtleties, but firewire-sbp2 ends up with failed login due to denied access.
 
* Implement hand-over from OpenFirmware login.  When an Apple PC boots from a FireWire disk, the OpenFirmware is already logged in but does apparently not log out after it loaded the kernel image.  When then the kernel's firewire-sbp2 (or sbp2, for that matter) logs in, the target may deny access.  This has been observed with Momobay CX-1.  The old ieee1394 driver stack somehow overcomes this because of timing subtleties, but firewire-sbp2 ends up with failed login due to denied access.
 
* [http://bugzilla.kernel.org/show_bug.cgi?id=3225 Bug 3225]: Integrate with scsi_wait_scan module?
 
* [http://bugzilla.kernel.org/show_bug.cgi?id=3225 Bug 3225]: Integrate with scsi_wait_scan module?
 +
* The PL-3507 FireWire-to-IDE bridge chip is known to sometimes become unresponsive despite our drivers sending a fetch agent reset.  To do:  Find a way to inject such failures; find a method which gets the PL-3507 unstuck again.  (Target reset via RESET_START register perhaps?)
  
=== New drivers ===
 
* Implement IPv4 over FireWire as per RFC 2734, i.e. port the functionality of eth1394 to the new driver stack.  But try not to port eth1394's bugs too.
 
* Implement an SBP-2 target using the in-kernel SCSI target framework as an alternative to Endpoint (Oracle's SBP-2 target implementation in userspace).
 
* After IPv4, implement IPv6 support as per RFC 3146.
 
* ohci1394_earlyinit:  <s>Prepare the ohci1394_earlyinit driver for mainline submission.</s> (merged into mainline)  Add support for more architectures besides x86-64.  Add interrupt handling to re-enable physical DMA after bus reset. Add hand-over of interrupt handling from ohci1394_earlyinit to firewire-ohci.
 
  
 +
== Other kernel drivers ==
  
== IEEE1394 Subsystem (a.k.a. Linux1394 driver stack) ==
+
=== firedtv ===
  
Note, the new FireWire subsystem in Linux 2.6.22+ (linux/drivers/firewire) is meant to replace the old IEEE 1394 subsystem (linux/drivers/ieee1394) in the long run.  New development, bug fixing, and even janitorial work should therefore concentrate on the new subsystem.  While the new subsystem is catching up on features and stability, it makes less and less sense to fix bugs of the old subsystem which the new one doesn't have.  Many of the following to-do items could therefore as well be dropped.  There is also a [http://bugzilla.kernel.org/show_bug.cgi?id=10046 meta-bug in kernel.org's bugzilla] which tracks items on which nobody is working anymore because these bugs don't exist in the new firewire drivers or should be fixed in them.  Anybody who nevertheless wants to fix any of those superseded issues is of course welcome to do so.
+
* Use firewire-core's channel and bandwidth allocation function in firedtv for proper cooperation with non-FireDTV AV/C devices on the same bus.
  
=== Documentation ===
+
=== init_ohci1394_dma ===
  
* Update the documentation for individual drivers on this wiki. See [[Special:Wantedpages]]. Drivers which have different usage under Linux 2.4 and 2.6, especially sbp2, should get separate pages with information targeted towards Linux 2.4 and 2.6 users respectively.
+
* Add support for more architectures besides x86-64.
 +
* Add interrupt handling to re-enable physical DMA after bus reset.
 +
* Add hand-over of interrupt handling from init_ohci1394_dma to firewire-ohci.
  
=== Subsystem and core driver ===
+
=== New drivers ===
 
+
* [http://bugzilla.kernel.org/show_bug.cgi?id=8403 Bug 8403]:  If several Linux boxes are plugged into the same bus, they may go multiple forced bus resets, fighting over who gets to be IRM.  Our IRM code is too pessimistic if errors happen when querying the remote IRM for its capabilities.
+
* Handle same node being connected to multiple local hosts (multi-pathing).
+
* Report driver (de)attach for information purposes (like usb does). (Why?)
+
* <s>Redo entire bus reset handling scheme.</s>  (implemented in the new FireWire subsystem)
+
* <s>[http://bugzilla.kernel.org/show_bug.cgi?id=8017 Bug 8017]:  Packet sizes can currently not exceed PAGE_SIZE, which is usually 4096 bytes.</s>  (implemented in the new FireWire subsystem)
+
* <s>Complete Bus Manager functionality.</s>  (implemented in the new FireWire subsystem)
+
* <s>Complete IRM functionality.</s>  (implemented in the new FireWire subsystem)
+
* <s>1394b compatibility.</s>  (done)
+
 
+
=== sbp2 ===
+
 
+
* [http://bugzilla.kernel.org/show_bug.cgi?id=1872 Bug 1872]:  Fix serialize_io=0.
+
* [http://bugzilla.kernel.org/show_bug.cgi?id=6393 Bug 6393]:  Fix operation without physical DMA.  Implement it in a portable fashion.
+
* Implement per-node queueing options (look at sym2 driver for example).
+
* Host and device sysfs attributes.  (Do we need more than ieee1394_id?)
+
* <s>[http://bugzilla.kernel.org/show_bug.cgi?id=7794 Bug 7794]:  Implement operation with filtered physical DMA.</s>  (implemented in the new FireWire subsystem)
+
Also see sbp2's TODO list in the source.
+
 
+
=== ether1394 ===
+
 
+
* Improve reliability ([http://bugzilla.kernel.org/show_bug.cgi?id=8361 bug 8361], [http://bugzilla.kernel.org/show_bug.cgi?id=8704 bug 8704]).
+
* Fix "Waking dma ctx=0 ... processing is probably too slow", perhaps by increasing the AR DMA buffer size in ohci1394.
+
* Make it work with the bonding driver.  There are [http://marc.info/?l=linux1394-devel&m=119228969504105 changes to the bonding driver pending] to have it support IP over Infiniband.  These might take care of issues between bonding and eth1394 as well.
+
* Implement MCAP and multicast support.
+
 
+
=== ohci1394 ===
+
 
+
* <s>[http://bugzilla.kernel.org/show_bug.cgi?id=8174 Bug 8174]:  Implement atomic config ROM updates according to the procedure described in OHCI 1.1.</s>  (implemented in the new FireWire subsystem)
+
 
+
=== raw1394 ===
+
  
* Userspace:  Implement access to RAW1394_REQ_MODIFY_ROM in libraw1394. This should be used instead of RAW1394_REQ_UPDATE_ROMMake sure that the RAW1394_REQ_MODIFY_ROM accessor can be ported to the ROM manipulation ioctl of the new firewire-core ABI, which should eventually be fully supported by libraw1394 too.
+
* Implement an audio i/o driver to enable [http://ffado.org/ FFADO] to run smoother with less effortCurrent and previous work, in reverse chronological order:
* [http://bugzilla.kernel.org/show_bug.cgi?id=4779 Bug 4779]: Test and fix 32bit userland on 64bit kernelIt appears that only address range mapping is still buggy as of Linux 2.6.23.
+
:* [http://sourceforge.net/mailarchive/message.php?msg_id=27216367 DICE, iSight, and OXFW970 speakers driver] (snd-firewire-speakers has been released in Linux 2.6.39, snd-isight has been released in Linux 3.0)
 +
:* [http://marc.info/?l=linux1394-devel&m=129897337016054 OXFW970 speakers driver]
 +
:* [http://lists.linuxaudio.org/pipermail/linux-audio-user/2010-January/066800.html Fireworks driver], [http://git.alsa-project.org/?p=alsa-kprivate.git;a=shortlog;h=refs/heads/fireworks original driver sources] by Clemens Ladisch, [https://github.com/takaswie/snd-firewire-improve further work] by Takashi Sakamoto
 +
:* [http://socghop.appspot.com/student_project/show/google/gsoc2009/linux_foundation/t124022664340 Google Summer of Code project] with some [http://repo.or.cz/w/firewire-audio.git initial results]
 +
* Implement a V4L2 driver which exposes DV and HDV devices ([[Specifications#IEC_61883|IEC 61883-2...-4]] camcorders, tapes, analogue tuners, TV sets) as /dev/video* devices? This has been [http://marc.info/?l=linux1394-devel&m=122488376116868 suggested] in order to offer an interface that is supported by a broad variety of multimedia application programs.
 +
* Implement a V4L2 driver for [[Specifications#IIDC|IIDC]] cameras, as an alternative to capturing via the low-level firewire-cdev.h interface with [[Libraries#libdc1394|libdc1394]].  The latter way would probably stay preferred whenever more advanced modes and features of cameras need to be accessed, but a V4L2 driver would enable generic video applications to access IIDC cameras.

Latest revision as of 18:36, 17 May 2013

Linux1394 Project TODO List

This page is targeted towards users (to see which things don't work yet) as well as to developers (to pick a project which caught their interest). People new to FireWire low-level development may find our lists of specifications and books useful. Almost all FireWire related specifications are open, some of them even gratis.

See also our list of bugs at bugzilla.kernel.org for a whole lot of TODO items. There are also bugs filed in distributors' bug trackers but they are not as easy to query.


Contents


[edit] Documentation

  • Userspace programming documentation (for "plumbing layer" and application layer programming):
    • Write some overview documentation of firewire-core's character device file interface; how to perform a few common tasks...
  • Kernel programming documentation:
    • Finish kerneldoc comments of all exported functions and struct types that are part of the firewire-core APIs?
    • Add a template to linux/Documentation/DocBook to pull firewire-core's kerneldoc comments in? Ideally, arrange the documentation in chapters for the userspace API, high-level API, and low-level API.
  • Usage documentation:
    • Add documentation for individual drivers on this wiki? See Special:Wantedpages.
    • Derive documentation suitable for distribution with the mainline kernel sources, i.e. linux/Documentation/...?


[edit] Support in userspace

  • libraw1394:
    • Fix handling of device removal. Implement hand-over to different default ioctl fd and iso ioctl fd when necessary and possible.
    • Implement multichannel isochronous reception with firewire-core of kernel 2.6.36 and later, as present in the raw1394 backend.
  • Add <linux/firewire-cdev.h> support in FFmpeg's libavformat?
  • Add <linux/firewire-cdev.h> support in libdc1394 v1?


[edit] FireWire kernel subsystem

[edit] firewire-core

  • Design and implement an FCP transactions serializing infrastructure? See this posting for requirements.
  • Bus management:
    • Set SPLIT_TIMEOUT to the same value on all nodes.
    • Initialize BUS_TIME to the same value on all nodes.
    • Set PRIORITY_BUDGET on all nodes.
    • Implement gap count optimization based on round-trip delay measurement alternatively to the present hop count table based gap count optimization. The latter cannot be used if 1394b repeater nodes are present. (The algorithm for this is patented and not included in the 1394 Patent Portfolio License.)
    • Power management: Clear the linkoff bit and/or send link_on to disabled nodes if there is enough power. (It is impossible to determine whether there is enough power since too many devices and PCs provide wrong power class information.)

[edit] firewire-net

  • Reduce CPU utilization.

[edit] firewire-ohci

  • Move all (or as much as possible) of the isochronous receive and transmit context tasklets into the IRQ handler. This is most desirable for low latency as required for audio I/O. Note, such a change may also affect other drivers. It may for example be necessary to add a tasklet to firewire-net for ARP/ broadcast/ multicast reception. (Sounds like a bad idea. Better move audio streaming into the kernel, as a set of ALSA drivers.)
  • Bug 10935: ALi controllers don't work yet.
  • Fedora bug 228073: Apple UniNorth v1 built-in controllers do not seem to fully work.
  • Bug 8828, Fedora bug 244576: Come up with a quirk fix for NForce2. The person to do so will most certainly require direct access to this hardware. Note, the NForce2 workaround in ohci1394 is unacceptable by today's standards as it involves busy-waiting in the interrupt handler. Either we find something better for firewire-ohci, or NForce2 remains unsupported in firewire-ohci.
  • Fedora bug 492718 comments 5 and 6: Implement a workaround for Texas Instruments' erratum SLLZ012, "Errata for the 1394 Physical Layer Devices"?
  • Fedora bug 608544: Handle IntEvent.regAccessFail at least in ohci_enable().
  • Bug 36622: Pinnacle controllers don't work yet. Similar to Fedora bug 608544.

[edit] firewire-sbp2

  • Make the DMA mapping more prepared for uncommon architectures:
  • Allocate all DMA regions (ORBs, page tables) separately from CPU data.
  • Honor Unit_Characteristics.ORB_size when allocating and mapping DMA regions for ORBs.
  • Change the bus reset handling thus that scsi_block_requests/scsi_unblock_requests is no longer needed, as this is a fragile mechanism and requires nontrivial state tracking. Instead, let a SCSI transaction overlap a bus reset and either let it time out (so that the SCSI subsystem retries it) or retry it in firewire-sbp2 itself after the reset and reconnect/re-login.
  • Implement dynamically appended ORB lists for performance improvement. Note, the old sbp2 driver's implementation of ORB lists is very buggy (default: off) but nevertheless results in better throughput with some hardware combinations.
  • Implement SBP-3 FASTSTART protocol which is rumored to be supported by newer OxSemi bridges and INIC-2430. — None of my (Stefan R.'s) OxSemi 912/ 924/ 934/ 936 or Initio 2430 based devices' firmwares offer FASTSTART support. It seems too rare to justify to add it to the driver.
  • Implement operation without physical DMA.
  • Implement hand-over from OpenFirmware login. When an Apple PC boots from a FireWire disk, the OpenFirmware is already logged in but does apparently not log out after it loaded the kernel image. When then the kernel's firewire-sbp2 (or sbp2, for that matter) logs in, the target may deny access. This has been observed with Momobay CX-1. The old ieee1394 driver stack somehow overcomes this because of timing subtleties, but firewire-sbp2 ends up with failed login due to denied access.
  • Bug 3225: Integrate with scsi_wait_scan module?
  • The PL-3507 FireWire-to-IDE bridge chip is known to sometimes become unresponsive despite our drivers sending a fetch agent reset. To do: Find a way to inject such failures; find a method which gets the PL-3507 unstuck again. (Target reset via RESET_START register perhaps?)


[edit] Other kernel drivers

[edit] firedtv

  • Use firewire-core's channel and bandwidth allocation function in firedtv for proper cooperation with non-FireDTV AV/C devices on the same bus.

[edit] init_ohci1394_dma

  • Add support for more architectures besides x86-64.
  • Add interrupt handling to re-enable physical DMA after bus reset.
  • Add hand-over of interrupt handling from init_ohci1394_dma to firewire-ohci.

[edit] New drivers

  • Implement an audio i/o driver to enable FFADO to run smoother with less effort. Current and previous work, in reverse chronological order:
  • Implement a V4L2 driver which exposes DV and HDV devices (IEC 61883-2...-4 camcorders, tapes, analogue tuners, TV sets) as /dev/video* devices? This has been suggested in order to offer an interface that is supported by a broad variety of multimedia application programs.
  • Implement a V4L2 driver for IIDC cameras, as an alternative to capturing via the low-level firewire-cdev.h interface with libdc1394. The latter way would probably stay preferred whenever more advanced modes and features of cameras need to be accessed, but a V4L2 driver would enable generic video applications to access IIDC cameras.
Personal tools