1. 11 Dec, 2009 1 commit
  2. 04 Dec, 2009 1 commit
  3. 20 Nov, 2009 1 commit
    • Jay Fenlason's avatar
      firewire: ohci: pass correct iso xmit timestamps to core · 31769cef
      Jay Fenlason authored
      
      
      Here is the final set of patches I used to get ffado to work with the
      new firewire stack.  With these patches, I was able to start ardour
      and record from and playback to my PreSonus Inspire1394 from a
      (mostly) Fedora 12 system.
      Signed-off-by: default avatarJay Fenlason <fenlason@redhat.com>
      
      Until now, firewire-ohci exposed only the transmit cycle of the last
      transmitted packet at each isochronous transmit complete event.  This
      made it impossible for FFADO (FireWire audio drivers in userspace) to
      synchronize audio-out streams.  The fix is to store the timestamp of
      each packet in the iso xmit event.  As a bonus, the transfer status is
      stored too.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      31769cef
  4. 18 Nov, 2009 1 commit
    • Jay Fenlason's avatar
      firewire: ohci: Make cycleMatch ISO transmission work · 5ed1f321
      Jay Fenlason authored
      
      
      Calling the START_ISO ioctl with a nonnegative cycle paramater has
      never worked.  Last night I got around to figuring out why.  Most of
      this patch is a big comment explaining why we enable an interrupt
      source then don't actually do anything when we get one.  As the
      comment says, we should do more, but we don't have a way to tell
      userspace what happened. . .
      Signed-off-by: default avatarJay Fenlason <fenlason@redhat.com>
      Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (edited comment)
      5ed1f321
  5. 31 Oct, 2009 3 commits
  6. 14 Oct, 2009 7 commits
    • Stefan Richter's avatar
      firewire: core: optimize Topology Map creation · cb7c96da
      Stefan Richter authored
      
      
      The Topology Map of the local node was created in CPU byte order,
      then a temporary big endian copy was created to compute the CRC,
      and when a read request to the Topology Map arrived it had to be
      converted to big endian byte order again.
      
      We now generate it in big endian byte order in the first place.
      This also rids us of 1000 bytes stack usage in tasklet context.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      cb7c96da
    • Stefan Richter's avatar
      firewire: core: clarify generate_config_rom usage · fe242579
      Stefan Richter authored
      
      
      Move the static config ROM buffer into the scope of the two callers of
      generate_config_rom().  That way the ROM length can be passed over as
      return value rather than through a pointer argument.
      
      It also becomes more obvious that accesses to the config ROM buffer have
      to be serialized and how this is accomplished.  And firewire-core.ko
      shrinks a bit as well.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      fe242579
    • Stefan Richter's avatar
      firewire: optimize config ROM creation · 8e85973e
      Stefan Richter authored
      
      
      The config ROM image of the local node was created in CPU byte order,
      then a temporary big endian copy was created to compute the CRC, and
      finally the card driver created its own big endian copy.
      
      We now generate it in big endian byte order in the first place to avoid
      one byte order conversion and the temporary on-stack copy of the ROM
      image (1000 bytes stack usage in process context).  Furthermore, two
      1000 bytes memset()s are replaced by one 1000 bytes - ROM length sized
      memset.
      
      The trivial fw_memcpy_{from,to}_be32() helpers are now superfluous and
      removed.  The newly added __compute_block_crc() function will be folded
      into fw_compute_block_crc() in a subsequent change.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      8e85973e
    • Stefan Richter's avatar
      firewire: cdev: normalize variable names · e21fcf79
      Stefan Richter authored
      
      
      Unify some names:
        - "e" for pointers to subtypes of struct event,
        - "event" for struct members and pointers to struct event,
        - "r" for pointers to subtypes of struct client_resource,
        - "resource" for struct members and pointers to struct client_resource,
        - other names for struct members and pointers to other types.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      e21fcf79
    • Stefan Richter's avatar
      firewire: normalize style of queue_work wrappers · 9fb551bf
      Stefan Richter authored
      
      
      A few stylistic changes to unify some code patterns in the subsystem:
      
        - The similar queue_delayed_work helpers fw_schedule_bm_work,
          schedule_iso_resource, and sbp2_queue_work now have the same call
          convention.
        - Two conditional calls of schedule_iso_resource are factored into
          another small helper.
        - An sbp2_target_get helper is added as counterpart to
          sbp2_target_put.
      
      Object size of firewire-core is decreased a little bit, object size of
      firewire-sbp2 remains unchanged.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      9fb551bf
    • Stefan Richter's avatar
      firewire: sbp2: provide fallback if mgt_ORB_timeout is missing · eaf76e0d
      Stefan Richter authored
      
      
      The Unit_Characteristics entry of an SBP-2 unit directory is not
      mandatory as far as I can tell.  If it is missing, we would probably
      fail to log in into the target because firewire-sbp2 would not wait for
      status after it sent the login request.
      
      The fix moves the cleanup of tgt->mgt_orb_timeout into a place where it
      is executed exactly once before login, rather than 0..n times depending
      on the target's config ROM.  With targets with one or more
      Unit_Characteristics entries, the result is the same as before.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      eaf76e0d
    • Stefan Richter's avatar
      firewire: cdev: fix memory leak in an error path · 7e44c0b5
      Stefan Richter authored
      
      
      If copy_from_user in an FW_CDEV_IOC_SEND_RESPONSE ioctl failed, an
      inbound_transaction_resource instance is no longer referenced and needs
      to be freed.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      7e44c0b5
  7. 04 Oct, 2009 1 commit
  8. 15 Sep, 2009 1 commit
  9. 12 Sep, 2009 6 commits
  10. 05 Sep, 2009 4 commits
  11. 03 Sep, 2009 1 commit
  12. 02 Sep, 2009 1 commit
  13. 01 Sep, 2009 1 commit
  14. 02 Jul, 2009 1 commit
  15. 25 Jun, 2009 1 commit
    • Stefan Richter's avatar
      firewire: core: do not DMA-map stack addresses · 6fdc0370
      Stefan Richter authored
      
      
      The DMA mapping API cannot map on-stack addresses, as explained in
      Documentation/DMA-mapping.txt.  Convert the two cases of on-stack packet
      payload buffers in firewire-core (payload of lock requests in the bus
      manager work and in iso resource management) to slab-allocated memory.
      
      There are a number on-stack buffers for quadlet write or quadlet read
      requests in firewire-core and firewire-sbp2.  These are harmless; they
      are copied to/ from card driver internal DMA buffers since quadlet
      payloads are inlined with packet headers.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      6fdc0370
  16. 21 Jun, 2009 1 commit
    • Stefan Richter's avatar
      firewire: new stack is no longer experimental · 0c53decd
      Stefan Richter authored
      
      
      The new stack is now recommended over the old one if used for industrial
      video (IIDC/DCAM) or for storage devices (SBP-2) due to better
      performance, improved compatibility, added features, and security.  It
      should also be functionally on par with and is more secure than the old
      ieee1394 stack in the use case of consumer video devices.
      
      IP-over-1394 support for the new stack is currently emerging, and a
      backend of the firedtv DVB driver to the new stack should be available
      soon.
      
      The one remaining area where the old stack is still required are audio
      devices, as the new stack is not yet able to support the FFADO FireWire
      audio framework.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      0c53decd
  17. 16 Jun, 2009 5 commits
  18. 14 Jun, 2009 3 commits
    • Stefan Richter's avatar
      firewire: net: adjust net_device ops · 1337f853
      Stefan Richter authored
      
      
      The .ndo_tx_timeout callback is currently without function; delete it.
      Give .watchdog_timeo a proper time value; lower it to 2 seconds.
      
      Decrease the .tx_queue_len from 1000 (as in Ethernet card drivers) to 10
      because we have only 64 transaction labels available, and responders
      might have further limits of their AR req contexts.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      1337f853
    • Stefan Richter's avatar
      156ce867
    • Stefan Richter's avatar
      firewire: net: allow for unordered unit discovery · 5a124d38
      Stefan Richter authored
      
      
      Decouple the creation and destruction of the net_device from the order
      of discovery and removal of nodes with RFC 2734 unit directories since
      there is no reliable order.  The net_device is now created when the
      first RFC 2734 unit on a card is discovered, and destroyed when the last
      RFC 2734 unit on a card went away.  This includes all remote units as
      well as the local unit, which is therefore tracked as a peer now too.
      
      Also, locking around the list of peers is slightly extended to guard
      against peer removal.  As a side effect, fwnet_peer.pdg_lock has become
      superfluous and is deleted.
      
      Peer data (max_rec, speed, node ID, generation) are updated more
      carefully.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      5a124d38