1. 19 11月, 2009 1 次提交
  2. 05 1月, 2009 4 次提交
  3. 26 4月, 2008 1 次提交
    • P
      ieee1394: rawiso: requeue packet for transmission after skipped cycle · cc9429bc
      Pieter Palmers 提交于
      As it seems, some host controllers have issues that can cause them to
      skip cycles now and then when using large packets. I suspect that this
      is due to DMA not succeeding in time. If the transmit fifo can't contain
      more than one packet (big packets), the DMA should provide a new packet
      each cycle (125us). I am under the impression that my current PCI
      express test system can't guarantee this.
      
      In any case, the patch tries to provide a workaround as follows:
      The DMA program descriptors are modified such that when an error occurs,
      the DMA engine retries the descriptor the next cycle instead of
      stalling. This way no data is lost. The side effect of this is that
      packets are sent with one cycle delay. This however might not be that
      much of a problem for certain protocols (e.g. AM824). If they use
      padding packets for e.g. rate matching they can drop one of those to
      resync the streams.
      
      The amount of skips between two userspace wakeups is counted. This
      number is then propagated to userspace through the upper 16 bits of the
      'dropped' parameter. This allows unmodified userspace applications due
      to the following:
      1) libraw simply passes this dropped parameter to the user application
      2) the meaning of the dropped parameter is: if it's nonzero, something
      bad has happened. The actual value of the parameter at this moment does
      not have a specific meaning.
      
      A libraw client can then retrieve the number of skipped cycles and
      account for them if needed.
      Signed-off-by: NPieter Palmers <pieterp@joow.be>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      cc9429bc
  4. 18 4月, 2008 7 次提交
  5. 31 1月, 2008 1 次提交
  6. 21 9月, 2007 1 次提交
    • S
      ieee1394: ohci1394: fix initialization if built non-modular · be7963b7
      Stefan Richter 提交于
      Initialization of ohci1394 was broken according to one reporter if the
      driver was statically linked, i.e. not built as loadable module.  Dmesg:
      
        PCI: Device 0000:02:07.0 not available because of resource collisions
        ohci1394: Failed to enable OHCI hardware.
      
      This was reported for a Toshiba Satellite 5100-503.  The cause is commit
      8df4083c in Linux 2.6.19-rc1 which only
      served purposes of early remote debugging via FireWire.  This
      functionality is better provided by the currently out-of-tree driver
      ohci1394_earlyinit.  Reversal of the commit was OK'd by Andi Kleen.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      be7963b7
  7. 10 7月, 2007 2 次提交
    • S
      ieee1394: remove old isochronous ABI · 53c96b41
      Stefan Richter 提交于
      Based on patch "the scheduled removal of RAW1394_REQ_ISO_{SEND,LISTEN}"
      from Adrian Bunk, November 20 2006.
      
      This patch also removes the underlying facilities in ohci1394 and
      disables them in pcilynx.  That is, hpsb_host_driver.devctl() and
      hpsb_host_driver.transmit_packet() are no longer used for iso reception
      and transmission.
      
      Since video1394 and dv1394 only work with ohci1394 and raw1394's rawiso
      interface has never been implemented in pcilynx, pcilynx is now no
      longer useful for isochronous applications.
      
      raw1394 will still handle the request types but will complete the
      requests with errors that indicate API version conflicts.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      53c96b41
    • S
      ieee1394: ohci1394: remove dead CONFIG variable · 17a62486
      Stefan Richter 提交于
      spotted by Robert P. J. Day <rpjday@mindspring.com>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      17a62486
  8. 30 4月, 2007 4 次提交
  9. 18 2月, 2007 1 次提交
  10. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  11. 09 2月, 2007 3 次提交
  12. 08 12月, 2006 9 次提交
  13. 30 10月, 2006 1 次提交
  14. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  15. 18 9月, 2006 3 次提交