1. 08 12月, 2006 2 次提交
    • B
      ohci1394: steps to implement suspend/resume · f011bf08
      Bernhard Kaindl 提交于
      I did a quick shot on what I described and the appended patch
      does the first thing needed for working suspend/resume
      in ohci1394 which is HW de- and re-initialisation.
      
      It works with suspend2disk on my Ricoh R5C552 IEEE 1394 Controller
      with the 2.6.17 kernel to the extent that if I call dvgrab --interactive
      after suspend2disk without unloading ohci1394, it does not lock up
      dvgrab with 100% CPU but properly connects to the camera, given
      that I first unplug and plug the camera after coming back from
      suspend.
      
      I guess that could be fixed by forcing a bus reset in the resume
      function.
      
      I cannot test suspend to RAM here at the moment and should
      follow the guidelines in Documentation/power/pci.txt also,
      so this is rather a quick report than a finished patch and
      there are some rough edges:
      
      However, with this patch, I have to unload at least some in-kernel
      users of ohci1394 like dv1394 or video1394 before suspending.
      
      Not doing that caused an Oops and a bad tasklet error, probably from
      not handling ISO tasklets during suspend/resume properly.
      
      Maybe these can be temporarily cleared or unregistered and
      re-registered for suspend/resume with help from the other
      layers or from the highlevel 1394 core, but I do not really
      know what these do.
      
      But this patch provides a useful base to start from and is
      already of much help for people which do not need dv1394
      and video1394 or can unload them at least during suspend.
      
      I cannot test function with sbp2 at the moment, but raw1394
      seems to work fine.
      Signed-off-by: NBernhard Kaindl <bk@fsfe.org>
      
      Update 1: merge with previous two ohci1394 suspend/resume patches
      Update 2: version for application on top of Linux 2.6.19-rc4
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      f011bf08
    • C
      [PATCH] slab: remove SLAB_KERNEL · e94b1766
      Christoph Lameter 提交于
      SLAB_KERNEL is an alias of GFP_KERNEL.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e94b1766
  2. 30 10月, 2006 1 次提交
  3. 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
  4. 18 9月, 2006 7 次提交
  5. 28 8月, 2006 1 次提交
  6. 04 7月, 2006 1 次提交
  7. 03 7月, 2006 1 次提交
  8. 01 7月, 2006 1 次提交
  9. 28 6月, 2006 2 次提交
  10. 20 6月, 2006 1 次提交
    • D
      [SPARC]: Kill __irq_itoa(). · c6387a48
      David S. Miller 提交于
      This ugly hack was long overdue to die.
      
      It was a way to print out Sparc interrupts in a more freindly format,
      since IRQ numbers were arbitrary opaque 32-bit integers which vectored
      into PIL levels.  These 32-bit integers were not necessarily in the
      0-->NR_IRQS range, but the PILs they vectored to were.
      
      The idea now is that we will increase NR_IRQS a little bit and use a
      virtual<-->real IRQ number mapping scheme similar to PowerPC.
      
      That makes this IRQ printing hack irrelevant, and furthermore only a
      handful of drivers actually used __irq_itoa() making it even less
      useful.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c6387a48
  11. 13 6月, 2006 5 次提交
    • B
      Fix broken suspend/resume in ohci1394 · b21efb59
      Ben Collins 提交于
      I've been experimenting to track down the cause of suspend/resume problems
      on my Compaq Presario X1050 laptop:
      
      http://bugzilla.kernel.org/show_bug.cgi?id=6075
      
      Essentially the ACPI Embedded Controller and keyboard controller would
      get into a bizarre, confused state after resume.
      
      I found that unloading the ohci1394 module before suspend and reloading it
      after resume made the problem go away.  Diffing the dmesg output from
      resume, with and without the module loaded, I found that with the module
      loaded I was missing these:
      
      PM: Writing back config space on device 0000:02:00.0 at offset 1. (Was 2100080, writing 2100007)
      PM: Writing back config space on device 0000:02:00.0 at offset 3. (Was 0, writing 8008)
      PM: Writing back config space on device 0000:02:00.0 at offset 4. (Was 0, writing 90200000)
      PM: Writing back config space on device 0000:02:00.0 at offset 5. (Was 1, writing 2401)
      PM: Writing back config space on device 0000:02:00.0 at offset f. (Was 20000100, writing 2000010a)
      
      The default PCI driver performs the pci_restore_state when no driver is
      loaded for the device.  When the ohci1394 driver is loaded, it is supposed
      to do this, however it appears not to do so.
      
      I created the patch below and tested it, and it appears to resolve the
      suspend problems I was having with the module loaded.  I only added in the
      pci_save_state and pci_restore_state - however, though I know little of
      this hardware, surely the driver should really be doing more than this when
      suspending and resuming?  Currently it does almost nothing, what if there
      are commands in progress, etc?
      Signed-off-by: NRobert Hancock <hancockr@shaw.ca>
      Cc: Jody McIntyre <scjody@modernduck.com>
      Cc: Ben Collins <bcollins@debian.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      b21efb59
    • B
      ohci1394: make phys_dma parameter read-only · fa9b7399
      Ben Collins 提交于
      Being able to switch physical DMA on and off at run time would be a nice
      feature but a PITA to support by highlevel drivers and userspace apps.
      Therefore allow it only to be set when the driver is being loaded.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      fa9b7399
    • B
      ohci1394: set address range properties · 4611ed38
      Ben Collins 提交于
      This patch supplies the API extension introduced by patch
      "ieee1394: extend lowlevel API for address range properties"
      with proper addresses.
      
      Like in patch ''ohci1394, sbp2: fix "scsi_add_device failed"
      with PL-3507 based devices'', 1 TeraByte is chosen as physical
      upper bound.  This leaves a window for the middle address range.
      This choice is only relevant for adapters which actually have a
      programmable pysical upper bound register.  (Only ALi and
      Fujitsu adapters are known for this.  Most adapters have a fixed
      bound at 4 GB.)  The middle address range is suitable for posted
      writes.
      
      AFAIK, PCILynx does not support physical DMA nor posted writes,
      therefore no equivalent change in the pcilynx driver is necessary.
      There is also a driver for GP2Lynx, although not in mainline Linux.
      I assume this hardware does not support these OHCI features either.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      4611ed38
    • B
      ieee1394/ohci1394: CycleTooLong interrupt management · 57fdb58f
      Ben Collins 提交于
      This patch modifies the ohci1394.c file to enable and manage the "cycle too
      long" interrupt.
      If this interrupt occurs, the "LinkControl.CycleMaster" bit of the host
      controller is reseted. This implies, that the host controller does not send
      "cycle start" packet anymore freezing then the isochronous communication.
      The management of the interrupt added by the patch is that when the interrupt
      occurs, the OHCI irq handler prints a kernel log warning and then sets the
      "LinkControl.CycleMaster" bit again resuming the isochronous communication.
      Signed-off-by: NJean-Baptiste Mur <jeanbaptiste@maunakeatech.com>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      57fdb58f
    • B
      ohci1394: Remove superfluous call to free_dma_rcv_ctx, · ff34d3bd
      Ben Collins 提交于
      spotted by Adrian Bunk. Also remove some superfluous comments.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NBen Collins <bcollins@ubuntu.com>
      ff34d3bd
  12. 18 5月, 2006 1 次提交
  13. 29 3月, 2006 3 次提交
  14. 28 3月, 2006 1 次提交
  15. 14 12月, 2005 1 次提交
  16. 07 11月, 2005 3 次提交
  17. 20 10月, 2005 1 次提交
  18. 01 10月, 2005 1 次提交
  19. 27 8月, 2005 1 次提交
  20. 15 7月, 2005 1 次提交
    • O
      [PATCH] ratelimit the ieee1394 IR legacy activated messages · 98848fa8
      Olaf Hering 提交于
      running coriander1 with an Apple iSight produces lots of dmesg output.
      
      Jul 13 22:14:17 ibook kernel: ieee1394: raw1394: /dev/raw1394 device initialized
      Jul 13 22:15:28 ibook kernel: ohci1394: fw-host0: IR legacy activated
      Jul 13 22:15:59 ibook last message repeated 208 times
      Jul 13 22:17:00 ibook last message repeated 762 times
      Jul 13 22:18:01 ibook last message repeated 914 times
      Jul 13 22:18:17 ibook last message repeated 238 times
      Jul 13 22:18:17 ibook kernel: ieee1394: unsolicited response packet received - no tlabel match
      Jul 13 22:18:17 ibook kernel: ohci1394: fw-host0: IR legacy activated
      
      its less noisy with the patch:
      
      Jul 14 08:03:08 ibook kernel: ieee1394: raw1394: /dev/raw1394 device initialized
      Jul 14 08:03:26 ibook kernel: ohci1394: fw-host0: IR legacy activated
      Jul 14 08:03:42 ibook last message repeated 10 times
      Jul 14 08:03:47 ibook kernel: printk: 63 messages suppressed.
      Jul 14 08:03:47 ibook kernel: ohci1394: fw-host0: IR legacy activated
      Jul 14 08:03:52 ibook kernel: printk: 74 messages suppressed.
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Cc: Jody McIntyre <scjody@modernduck.com>
      Cc: Ben Collins <bcollins@debian.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      98848fa8
  21. 11 7月, 2005 1 次提交
    • B
      [PATCH] Sync up ieee-1394 · 1934b8b6
      Ben Collins 提交于
      Lots of this patch is trivial code cleanups (static vars were being
      intialized to 0, etc).
      
      There's also some fixes for ISO transmits (max buffer handling).
      Aswell, we have a few fixes to disable IRM capabilites correctly.  We've
      also disabled, by default some generally unused EXPORT symbols for the
      sake of cleanliness in the kernel.  However, instead of removing them
      completely, we felt it necessary to have a config option that allowed
      them to be enabled for the many projects outside of the main kernel tree
      that use our API for driver development.
      
      The primary reason for this patch is to revert a MODE6->MODE10 RBC
      conversion patch from the SCSI maintainers.  The new conversions handled
      directly in the scsi layer do not seem to work for SBP2.  This patch
      reverts to our old working code so that users can enjoy using Firewire
      disks and dvd drives again.
      
      We are working with the SCSI maintainers to resolve this issue outside
      of the main kernel tree.  We'll merge the patch once the SCSI layer's
      handling of the MODE10 conversion is working for us.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1934b8b6
  22. 28 6月, 2005 1 次提交
  23. 17 5月, 2005 1 次提交
  24. 22 4月, 2005 1 次提交