1. 13 10月, 2007 1 次提交
  2. 01 9月, 2007 1 次提交
  3. 12 7月, 2007 1 次提交
  4. 27 6月, 2007 1 次提交
  5. 12 5月, 2007 1 次提交
  6. 07 4月, 2007 1 次提交
  7. 03 2月, 2007 1 次提交
    • J
      Altix: ACPI SSDT PCI device support · 6f09a925
      John Keller 提交于
      Add SN platform support for running with an ACPI
      capable PROM that defines PCI devices in SSDT
      tables. There is a SSDT table for every occupied
      slot on a root bus, containing info for every
      PPB and/or device on the bus. The SSDTs will be
      dynamically loaded/unloaded at hotplug enable/disable.
      
      Platform specific information that is currently
      passed via a SAL call, will now be passed via the
      Vendor resource in the ACPI Device object(s) defined
      in each SSDT.
      Signed-off-by: NJohn Keller <jpk@sgi.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      6f09a925
  8. 02 12月, 2006 1 次提交
    • J
      Altix: Add initial ACPI IO support · 8ea6091f
      John Keller 提交于
      First phase in introducing ACPI support to SN.
      In this phase, when running with an ACPI capable PROM,
      the DSDT will define the root busses and all SN nodes
      (SGIHUB, SGITIO). An ACPI bus driver will be registered
      for the node devices, with the acpi_pci_root_driver being
      used for the root busses. An ACPI vendor descriptor is
      now used to pass platform specific information for both
      nodes and busses, eliminating the need for the current
      SAL calls. Also, with ACPI support, SN fixup code is no longer
      needed to initiate the PCI bus scans, as the acpi_pci_root_driver
      does that.
      
      However, to maintain backward compatibility with non-ACPI capable
      PROMs, none of the current 'fixup' code can been deleted, though
      much restructuring has been done. For example, the bulk of the code
      in io_common.c is relocated code that is now common regardless
      of what PROM is running, while io_acpi_init.c and io_init.c contain
      routines specific to an ACPI or non ACPI capable PROM respectively.
      
      A new pci bus fixup platform vector has been created to provide
      a hook for invoking platform specific bus fixup from pcibios_fixup_bus().
      
      The size of io_space[] has been increased to support systems with
      large IO configurations.
      Signed-off-by: NJohn Keller <jpk@sgi.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      8ea6091f
  9. 11 10月, 2006 1 次提交
  10. 10 10月, 2006 1 次提交
  11. 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
  12. 01 10月, 2006 1 次提交
  13. 03 8月, 2006 1 次提交
  14. 03 7月, 2006 1 次提交
  15. 29 6月, 2006 1 次提交
  16. 22 6月, 2006 2 次提交
  17. 28 4月, 2006 1 次提交
  18. 25 3月, 2006 1 次提交
  19. 24 3月, 2006 1 次提交
  20. 16 2月, 2006 1 次提交
  21. 27 1月, 2006 2 次提交
  22. 25 1月, 2006 1 次提交
  23. 18 1月, 2006 1 次提交
  24. 17 1月, 2006 1 次提交
  25. 14 1月, 2006 1 次提交
    • P
      [IA64-SGI] Fix sn_flush_device_kernel & spinlock initialization · 6d6e4200
      Prarit Bhargava 提交于
      This patch separates the sn_flush_device_list struct into kernel and
      common (both kernel and PROM accessible) structures.  As it was, if the
      size of a spinlock_t changed (due to additional CONFIG options, etc.) the
      sal call which populated the sn_flush_device_list structs would erroneously
      write data (and cause memory corruption and/or a panic).
      
      This patch does the following:
      
      1.  Removes sn_flush_device_list and adds sn_flush_device_common and
      sn_flush_device_kernel.
      
      2.  Adds a new SAL call to populate a sn_flush_device_common struct per
      device, not per widget as previously done.
      
      3.  Correctly initializes each device's sn_flush_device_kernel spinlock_t
      struct (before it was only doing each widget's first device).
      Signed-off-by: NPrarit Bhargava <prarit@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      6d6e4200
  26. 16 12月, 2005 1 次提交
  27. 11 11月, 2005 1 次提交
  28. 09 11月, 2005 1 次提交
  29. 28 10月, 2005 1 次提交
  30. 24 9月, 2005 1 次提交
  31. 10 9月, 2005 1 次提交
  32. 08 9月, 2005 2 次提交
  33. 27 8月, 2005 1 次提交
  34. 25 8月, 2005 1 次提交
  35. 18 8月, 2005 2 次提交
  36. 12 8月, 2005 1 次提交