1. 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
  2. 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
  3. 30 4月, 2007 4 次提交
  4. 18 2月, 2007 1 次提交
  5. 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
  6. 09 2月, 2007 3 次提交
  7. 08 12月, 2006 9 次提交
  8. 30 10月, 2006 1 次提交
  9. 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
  10. 18 9月, 2006 7 次提交
  11. 28 8月, 2006 1 次提交
  12. 04 7月, 2006 1 次提交
  13. 03 7月, 2006 1 次提交
  14. 01 7月, 2006 1 次提交
  15. 28 6月, 2006 2 次提交
  16. 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
  17. 13 6月, 2006 3 次提交
    • 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