1. 25 3月, 2009 4 次提交
    • J
      firewire: cdev: add ioctls for isochronous resource management · b1bda4cd
      Jay Fenlason, Stefan Richter 提交于
      Based on
          Date: Tue, 18 Nov 2008 11:41:27 -0500
          From: Jay Fenlason <fenlason@redhat.com>
          Subject: [Patch V4] Add ISO resource management support
      with several changes to the ABI and implementation.  Only the part of
      the ABI which enables auto-reallocation and auto-deallocation is
      included here.
      
      This implements ioctls for kernel-assisted allocation of isochronous
      channels and isochronous bandwidth.  The benefits are:
        - The client does not have to have write access to the /dev/fw* device
          corresponding to the IRM.
        - The client does not have to perform reallocation after bus resets.
        - Channel and bandwidth are deallocated by the kernel if the file is
          closed before the client deallocated the resources.  Thus resources
          are released even if the client crashes.
      
      It is anticipated that future in-kernel code (firewire-core IRM code;
      the firewire port of firedtv), will use the fw-iso.c portions of this
      code too.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Tested-by: NDavid Moore <dcm@acm.org>
      b1bda4cd
    • S
      firewire: prevent creation of multiple IR DMA contexts for the same channel · 4817ed24
      Stefan Richter 提交于
      OHCI-1394 1.1 clause 10.4.3 says:  "If more than one IR DMA context
      specifies receives for packets from the same isochronous channel, the
      context destination for that channel's packets is undefined."
      
      Any userspace client and in the future also kernelspace clients can
      allocate IR DMA contexts for any channel.  We don't want them to
      interfere with each other, hence it is preferable to return -EBUSY if
      allocation of a second context for a channel is attempted.
      
      Notes:
        - This limitation is OHCI-1394 specific, therefore its proper place of
          implementation is down in the low-level driver.
      
        - Since the <linux/firewire-cdev.h> ABI simply maps one userspace iso
          client context to one hardware iso context, this OHCI-1394
          limitation alas requires userspace to implement its own multiplexing
          of iso reception from the same channel and card to multiple clients
          when needed.
      
        - The limitation is independent of channel allocation at the IRM; the
          latter is really only important for the initiation of iso 
          transmission but not of iso reception.
      
        - We don't need to do the same for IT DMA because OHCI-1394 does not
          have any ties between IT contexts and channels.  Only the voluntary
          channel allocation protocol via the IRM, globally to the FireWire
          bus, can ensure proper isochronous transmit behaviour anyway.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      4817ed24
    • S
      firewire: remove line breaks before function names · 53dca511
      Stefan Richter 提交于
      type
          function_name(parameters);
      
      is nice to look at but was not used consistently.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      53dca511
    • S
      firewire: standardize a variable name · 2dbd7d7e
      Stefan Richter 提交于
      "ret" is the new "retval".
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      2dbd7d7e
  2. 27 7月, 2008 1 次提交
    • F
      dma-mapping: add the device argument to dma_mapping_error() · 8d8bb39b
      FUJITA Tomonori 提交于
      Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
      architecture does:
      
      This enables us to cleanly fix the Calgary IOMMU issue that some devices
      are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).
      
      I think that per-device dma_mapping_ops support would be also helpful for
      KVM people to support PCI passthrough but Andi thinks that this makes it
      difficult to support the PCI passthrough (see the above thread).  So I
      CC'ed this to KVM camp.  Comments are appreciated.
      
      A pointer to dma_mapping_ops to struct dev_archdata is added.  If the
      pointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it's
      NULL, the system-wide dma_ops pointer is used as before.
      
      If it's useful for KVM people, I plan to implement a mechanism to register
      a hook called when a new pci (or dma capable) device is created (it works
      with hot plugging).  It enables IOMMUs to set up an appropriate
      dma_mapping_ops per device.
      
      The major obstacle is that dma_mapping_error doesn't take a pointer to the
      device unlike other DMA operations.  So x86 can't have dma_mapping_ops per
      device.  Note all the POWER IOMMUs use the same dma_mapping_error function
      so this is not a problem for POWER but x86 IOMMUs use different
      dma_mapping_error functions.
      
      The first patch adds the device argument to dma_mapping_error.  The patch
      is trivial but large since it touches lots of drivers and dma-mapping.h in
      all the architecture.
      
      This patch:
      
      dma_mapping_error() doesn't take a pointer to the device unlike other DMA
      operations.  So we can't have dma_mapping_ops per device.
      
      Note that POWER already has dma_mapping_ops per device but all the POWER
      IOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device
      argument.
      
      [akpm@linux-foundation.org: fix sge]
      [akpm@linux-foundation.org: fix svc_rdma]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix bnx2x]
      [akpm@linux-foundation.org: fix s2io]
      [akpm@linux-foundation.org: fix pasemi_mac]
      [akpm@linux-foundation.org: fix sdhci]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix sparc]
      [akpm@linux-foundation.org: fix ibmvscsi]
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Muli Ben-Yehuda <muli@il.ibm.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Avi Kivity <avi@qumranet.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d8bb39b
  3. 18 4月, 2008 1 次提交
    • A
      firewire: cleanups · db8be076
      Adrian Bunk 提交于
      This patch contains the following cleanups:
      - #if 0 the following unused structs:
        - fw-transaction.c:fw_low_memory_region
        - fw-transaction.c:fw_private_region
        - fw-transaction.c:fw_csr_region
        - fw-transaction.c:fw_unit_space_region
      - remove the following unused EXPORT_SYMBOL's:
        - fw-card.c:fw_core_add_descriptor
        - fw-card.c:fw_core_remove_descriptor
        - fw-iso.c:fw_iso_context_create
        - fw-iso.c:fw_iso_context_destroy
        - fw-iso.c:fw_iso_context_start
        - fw-iso.c:fw_iso_context_queue
        - fw-iso.c:fw_iso_context_stop
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      db8be076
  4. 11 5月, 2007 1 次提交
  5. 16 3月, 2007 1 次提交
  6. 10 3月, 2007 13 次提交