1. 21 1月, 2012 2 次提交
    • M
      ACPI: Remove ./drivers/acpi/atomicio.[ch] · 1001a3a3
      Myron Stowe 提交于
      With the conversion of atomicio's routines in place (see commits
      6f68c91c and 700130b4), atomicio.[ch] can be removed, replacing
      the APEI specific pre-mapping capabilities with the more generalized
      versions that drivers/acpi/osl.c provides.
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      1001a3a3
    • M
      ACPI, APEI: Add 64-bit read/write support for APEI on i386 · e615bf5b
      Myron Stowe 提交于
      Base ACPI (CA) currently does not support atomic 64-bit reads and writes
      (acpi_read() and acpi_write() split 64-bit loads/stores into two
      32-bit transfers) yet APEI expects 64-bit transfer capability, even
      when running on 32-bit systems.
      
      This patch implements 64-bit read and write routines for APEI usage.
      
      This patch re-factors similar functionality introduced in commit
      04c25997, bringing it into the ACPI subsystem in preparation for
      removing ./drivers/acpi/atomicio.[ch].  In the implementation I have
      replicated acpi_os_read_memory() and acpi_os_write_memory(), creating
      64-bit versions for APEI to utilize, as opposed to something more
      elegant.  My thinking is that we should attempt to see if we can get
      ACPI's CA/OSL changed so that the existing acpi_read() and acpi_write()
      interfaces are natively 64-bit capable and then subsequently remove the
      replication.
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      e615bf5b
  2. 20 1月, 2012 1 次提交
  3. 18 1月, 2012 1 次提交
  4. 17 1月, 2012 14 次提交
  5. 13 1月, 2012 1 次提交
  6. 07 11月, 2011 3 次提交
    • D
      cpuidle: Single/Global registration of idle states · 46bcfad7
      Deepthi Dharwar 提交于
      This patch makes the cpuidle_states structure global (single copy)
      instead of per-cpu. The statistics needed on per-cpu basis
      by the governor are kept per-cpu. This simplifies the cpuidle
      subsystem as state registration is done by single cpu only.
      Having single copy of cpuidle_states saves memory. Rare case
      of asymmetric C-states can be handled within the cpuidle driver
      and architectures such as POWER do not have asymmetric C-states.
      
      Having single/global registration of all the idle states,
      dynamic C-state transitions on x86 are handled by
      the boot cpu. Here, the boot cpu  would disable all the devices,
      re-populate the states and later enable all the devices,
      irrespective of the cpu that would receive the notification first.
      
      Reference:
      https://lkml.org/lkml/2011/4/25/83Signed-off-by: NDeepthi Dharwar <deepthi@linux.vnet.ibm.com>
      Signed-off-by: NTrinabh Gupta <g.trinabh@gmail.com>
      Tested-by: NJean Pihet <j-pihet@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      Acked-by: NArjan van de Ven <arjan@linux.intel.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      46bcfad7
    • B
      ACPI: Fix CONFIG_ACPI_DOCK=n compiler warning · c1056b42
      Bart Van Assche 提交于
      Recently the ACPI ops structs were constified but the inline version
      of register_hotplug_dock_device() was overlooked (see also commit
      9c8b04be, June 25 2011). Update the inline function
      register_hotplug_dock_device() that is enabled with
      CONFIG_ACPI_DOCK=n too. This patch fixes at least the following
      compiler warnings:
      
      drivers/ata/libata-acpi.c: In function .ata_acpi_associate.:
      drivers/ata/libata-acpi.c:266:11: warning: passing argument 2 of .register_hotplug_dock_device. discards qualifiers from pointer target type
      include/acpi/acpi_drivers.h:146:19: note: expected .struct acpi_dock_ops *. but argument is of type .const struct acpi_dock_ops *.
      drivers/ata/libata-acpi.c:275:11: warning: passing argument 2 of .register_hotplug_dock_device. discards qualifiers from pointer target type
      include/acpi/acpi_drivers.h:146:19: note: expected .struct acpi_dock_ops *. but argument is of type .const struct acpi_dock_ops *.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NLen Brown <len.brown@intel.com>
      c1056b42
    • R
      ACPI: Drop ACPI_NO_HARDWARE_INIT · 4505a201
      Rafael J. Wysocki 提交于
      ACPI_NO_HARDWARE_INIT is only used by acpi_early_init() and
      acpi_bus_init() when calling acpi_enable_subsystem(), but
      acpi_enable_subsystem() doesn't check that flag, so it can be
      dropped.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      4505a201
  7. 01 11月, 2011 1 次提交
  8. 15 10月, 2011 1 次提交
    • P
      PCI hotplug: acpiphp: Prevent deadlock on PCI-to-PCI bridge remove · 6af8bef1
      Prarit Bhargava 提交于
      I originally submitted a patch to workaround this by pushing all Ejection
      Requests and Device Checks onto the kacpi_hotplug queue.
      
      http://marc.info/?l=linux-acpi&m=131678270930105&w=2
      
      The patch is still insufficient in that Bus Checks also need to be added.
      
      Rather than add all events, including non-PCI-hotplug events, to the
      hotplug queue, mjg suggested that a better approach would be to modify
      the acpiphp driver so only acpiphp events would be added to the
      kacpi_hotplug queue.
      
      It's a longer patch, but at least we maintain the benefit of having separate
      queues in ACPI.  This, of course, is still only a workaround the problem.
      As Bjorn and mjg pointed out, we have to refactor a lot of this code to do
      the right thing but at this point it is a better to have this code working.
      
      The acpi core places all events on the kacpi_notify queue.  When the acpiphp
      driver is loaded and a PCI card with a PCI-to-PCI bridge is removed the
      following call sequence occurs:
      
      cleanup_p2p_bridge()
      	    -> cleanup_bridge()
      		    -> acpi_remove_notify_handler()
      			    -> acpi_os_wait_events_complete()
      				    -> flush_workqueue(kacpi_notify_wq)
      
      which is the queue we are currently executing on and the process will hang.
      
      Move all hotplug acpiphp events onto the kacpi_hotplug workqueue.  In
      handle_hotplug_event_bridge() and handle_hotplug_event_func() we can simply
      push the rest of the work onto the kacpi_hotplug queue and then avoid the
      deadlock.
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      Cc: mjg@redhat.com
      Cc: bhelgaas@google.com
      Cc: linux-acpi@vger.kernel.org
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      6af8bef1
  9. 03 8月, 2011 1 次提交
  10. 27 7月, 2011 1 次提交
  11. 17 7月, 2011 1 次提交
  12. 14 7月, 2011 7 次提交
  13. 29 5月, 2011 2 次提交
  14. 10 5月, 2011 4 次提交