1. 28 8月, 2015 1 次提交
    • R
      nd_blk: change aperture mapping from WC to WB · 67a3e8fe
      Ross Zwisler 提交于
      This should result in a pretty sizeable performance gain for reads.  For
      rough comparison I did some simple read testing using PMEM to compare
      reads of write combining (WC) mappings vs write-back (WB).  This was
      done on a random lab machine.
      
      PMEM reads from a write combining mapping:
      	# dd of=/dev/null if=/dev/pmem0 bs=4096 count=100000
      	100000+0 records in
      	100000+0 records out
      	409600000 bytes (410 MB) copied, 9.2855 s, 44.1 MB/s
      
      PMEM reads from a write-back mapping:
      	# dd of=/dev/null if=/dev/pmem0 bs=4096 count=1000000
      	1000000+0 records in
      	1000000+0 records out
      	4096000000 bytes (4.1 GB) copied, 3.44034 s, 1.2 GB/s
      
      To be able to safely support a write-back aperture I needed to add
      support for the "read flush" _DSM flag, as outlined in the DSM spec:
      
      http://pmem.io/documents/NVDIMM_DSM_Interface_Example.pdf
      
      This flag tells the ND BLK driver that it needs to flush the cache lines
      associated with the aperture after the aperture is moved but before any
      new data is read.  This ensures that any stale cache lines from the
      previous contents of the aperture will be discarded from the processor
      cache, and the new data will be read properly from the DIMM.  We know
      that the cache lines are clean and will be discarded without any
      writeback because either a) the previous aperture operation was a read,
      and we never modified the contents of the aperture, or b) the previous
      aperture operation was a write and we must have written back the dirtied
      contents of the aperture to the DIMM before the I/O was completed.
      
      In order to add support for the "read flush" flag I needed to add a
      generic routine to invalidate cache lines, mmio_flush_range().  This is
      protected by the ARCH_HAS_MMIO_FLUSH Kconfig variable, and is currently
      only supported on x86.
      Signed-off-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      67a3e8fe
  2. 25 8月, 2015 2 次提交
    • A
      ACPI: Decouple ACPI idle and ACPI processor drivers · 5f05586c
      Ashwin Chaugule 提交于
      This patch introduces a new Kconfig symbol, ACPI_PROCESSOR_IDLE,
      which is auto selected by architectures which support the ACPI
      based C states for CPU Idle management.
      
      The processor_idle driver in its present form contains declarations
      specific to X86 and IA64. Since there are no reasonable defaults
      for other architectures e.g. ARM64, the driver is selected only for
      X86 or IA64.
      
      This helps in decoupling the ACPI processor_driver from the ACPI
      processor_idle driver which is useful for the upcoming alternative
      patchwork for controlling CPU Performance (CPPC) and CPU Idle (LPI).
      Signed-off-by: NAshwin Chaugule <ashwin.chaugule@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5f05586c
    • A
      ACPI: Split out ACPI PSS from ACPI Processor driver · 239708a3
      Ashwin Chaugule 提交于
      The ACPI processor driver is currently tied too closely
      to the ACPI P-states (PSS) and other related constructs
      for controlling CPU performance.
      
      The newer ACPI specification (v5.1 onwards) introduces
      alternative methods to PSS. These new mechanisms are
      described within each ACPI Processor object and so they
      need to be scanned whenever a new Processor object is detected.
      This patch introduces a new Kconfig symbol to allow for
      finer configurability among the two options for controlling
      performance states. There is no change in functionality and
      the option is auto-selected by the architectures which support it.
      
      A future commit will introduce support for CPPC: A newer method of
      controlling CPU performance. The OS is not expected to support
      CPPC and PSS at the same time, so the Kconfig option lets us make
      the two mutually exclusive at compile time.
      Signed-off-by: NAshwin Chaugule <ashwin.chaugule@linaro.org>
      [ rjw: Changelog ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      239708a3
  3. 03 7月, 2015 1 次提交
    • R
      ACPI / init: Make it possible to override _REV · 18d78b64
      Rafael J. Wysocki 提交于
      The platform firmware on some systems expects Linux to return "5" as
      the supported ACPI revision which makes it expose system configuration
      information in a special way.
      
      For example, based on what ACPI exports as the supported revision,
      Dell XPS 13 (2015) configures its audio device to either work in HDA
      mode or in I2S mode, where the former is supposed to be used on Linux
      until the latter is fully supported (in the kernel as well as in user
      space).
      
      Since ACPI 6 mandates that _REV should return "2" if ACPI 2 or later
      is supported by the OS, a subsequent change will make that happen, so
      make it possible to override that on systems where "5" is expected to
      be returned for Linux to work correctly one them (such as the Dell
      machine mentioned above).
      Original-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      18d78b64
  4. 25 6月, 2015 2 次提交
    • D
      libnvdimm: control (ioctl) messages for nvdimm_bus and nvdimm devices · 62232e45
      Dan Williams 提交于
      Most discovery/configuration of the nvdimm-subsystem is done via sysfs
      attributes.  However, some nvdimm_bus instances, particularly the
      ACPI.NFIT bus, define a small set of messages that can be passed to the
      platform.  For convenience we derive the initial libnvdimm-ioctl command
      formats directly from the NFIT DSM Interface Example formats.
      
          ND_CMD_SMART: media health and diagnostics
          ND_CMD_GET_CONFIG_SIZE: size of the label space
          ND_CMD_GET_CONFIG_DATA: read label space
          ND_CMD_SET_CONFIG_DATA: write label space
          ND_CMD_VENDOR: vendor-specific command passthrough
          ND_CMD_ARS_CAP: report address-range-scrubbing capabilities
          ND_CMD_ARS_START: initiate scrubbing
          ND_CMD_ARS_STATUS: report on scrubbing state
          ND_CMD_SMART_THRESHOLD: configure alarm thresholds for smart events
      
      If a platform later defines different commands than this set it is
      straightforward to extend support to those formats.
      
      Most of the commands target a specific dimm.  However, the
      address-range-scrubbing commands target the bus.  The 'commands'
      attribute in sysfs of an nvdimm_bus, or nvdimm, enumerate the supported
      commands for that object.
      
      Cc: <linux-acpi@vger.kernel.org>
      Cc: Robert Moore <robert.moore@intel.com>
      Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reported-by: NNicholas Moulin <nicholas.w.moulin@linux.intel.com>
      Acked-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      62232e45
    • D
      libnvdimm, nfit: initial libnvdimm infrastructure and NFIT support · b94d5230
      Dan Williams 提交于
      A struct nvdimm_bus is the anchor device for registering nvdimm
      resources and interfaces, for example, a character control device,
      nvdimm devices, and I/O region devices.  The ACPI NFIT (NVDIMM Firmware
      Interface Table) is one possible platform description for such
      non-volatile memory resources in a system.  The nfit.ko driver attaches
      to the "ACPI0012" device that indicates the presence of the NFIT and
      parses the table to register a struct nvdimm_bus instance.
      
      Cc: <linux-acpi@vger.kernel.org>
      Cc: Lv Zheng <lv.zheng@intel.com>
      Cc: Robert Moore <robert.moore@intel.com>
      Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NJeff Moyer <jmoyer@redhat.com>
      Acked-by: NChristoph Hellwig <hch@lst.de>
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Tested-by: NToshi Kani <toshi.kani@hp.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      b94d5230
  5. 15 6月, 2015 1 次提交
  6. 06 5月, 2015 1 次提交
  7. 26 3月, 2015 2 次提交
  8. 25 3月, 2015 1 次提交
  9. 05 2月, 2015 1 次提交
  10. 27 11月, 2014 2 次提交
    • A
      ACPI / PMIC: support PMIC operation region for XPower AXP288 · d8139f63
      Aaron Lu 提交于
      The Baytrail-T-CR platform firmware has defined two customized operation
      regions for PMIC chip Dollar Cove XPower - one is for power resource
      handling and one is for thermal just like the CrystalCove one. This patch
      adds support for them on top of the common PMIC opregion region code.
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Acked-by: Lee Jones <lee.jones@linaro.org> for the MFD part
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d8139f63
    • A
      ACPI / PMIC: support PMIC operation region for CrystalCove · b1eea857
      Aaron Lu 提交于
      The Baytrail-T platform firmware has defined two customized operation
      regions for PMIC chip Crystal Cove - one is for power resource handling
      and one is for thermal: sensor temperature reporting, trip point setting,
      etc. This patch adds support for them on top of the existing Crystal Cove
      PMIC driver.
      
      The reason to split code into a separate file intel_pmic.c is that there
      are more PMIC drivers with ACPI operation region support coming and we can
      re-use those code. The intel_pmic_opregion_data structure is created also
      for this purpose: when we need to support a new PMIC's operation region,
      we just need to fill those callbacks and the two register mapping tables.
      Signed-off-by: NAaron Lu <aaron.lu@intel.com>
      Acked-by: Lee Jones <lee.jones@linaro.org> for the MFD part
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b1eea857
  11. 18 11月, 2014 1 次提交
  12. 17 10月, 2014 1 次提交
  13. 21 7月, 2014 2 次提交
  14. 26 6月, 2014 1 次提交
  15. 10 5月, 2014 1 次提交
  16. 06 5月, 2014 1 次提交
  17. 09 4月, 2014 1 次提交
    • H
      ACPI: Update the ACPI spec information in Kconfig · c7f5220d
      Hanjun Guo 提交于
      The UEFI Forum included the ACPI spec in its portfolio in October 2013
      and will host future spec iterations, following the ACPI v5.0a release.
      
      A UEFI Forum working group named ACPI Specification Working Group (ASWG)
      has been established to handle future ACPI developments, any UEFI member
      can join the group and contribute to ACPI specification.
      
      So update the ownership and developers for ACPI in Kconfig accordingly,
      and add another website link to ACPI specification too.
      Signed-off-by: NHanjun Guo <hanjun.guo@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c7f5220d
  18. 20 3月, 2014 1 次提交
  19. 19 2月, 2014 1 次提交
  20. 05 2月, 2014 1 次提交
    • A
      ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE_ONLY · af1ae78a
      Al Stone 提交于
      ACPI hardware reduced mode exists to allow newer platforms to use a
      simpler form of ACPI that does not require supporting legacy versions
      of the specification and their associated hardware.  This mode was
      introduced in the ACPI 5.0 specification.
      
      The ACPI hardware reduced mode is supposed to be used on systems
      having the HW_REDUCED_ACPI flag set in the FADT.  ACPICA checks
      that flag to determine whether or not it should work in the HW
      reduced mode and there are pieces of code in it that will never
      be used in that case.
      
      Since some architecutres will always use the ACPI HW reduced mode,
      it doesn't make sense for them to ever compile support for anything
      else.  Thus, they should set the flag ACPI_REDUCED_HARDWARE to TRUE
      in the ACPICA source.  To enable them to do that, introduce a new
      kernel configuration option, CONFIG_ACPI_REDUCED_HARDWARE_ONLY, that
      will cause the ACPICA's ACPI_REDUCED_HARDWARE flag to be TRUE when
      set.
      
      Introducing this configuration item is based on suggestions from Lv
      Zheng saying that this does not belong in ACPICA, but rather to the
      Linux kernel itself.
      
      References: http://www.spinics.net/lists/linux-acpi/msg46369.htmlSigned-off-by: NHanjun Guo <hanjun.guo@linaro.org>
      Signed-off-by: NAl Stone <al.stone@linaro.org>
      [rjw: Subject and changelog]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      af1ae78a
  21. 20 12月, 2013 1 次提交
  22. 13 11月, 2013 1 次提交
    • L
      ACPI: delete CONFIG_ACPI_BLACKLIST_YEAR · 4c47cb19
      Len Brown 提交于
      About 10 years ago, this option was created to help
      distros enable ACPI and not get distracted by ACPI
      BIOS issues in machines which were deemed old
      at that time, eg 1999 and earlier.
      
      After a couple of years, the high volume distros
      stopped bothering to set this option, and instead
      simply ran in ACPI mode on all systems with an
      ACPI BIOS -- regardless of BIOS DMI year.
      
      Recently there have been some ACPI-enabled systems
      with no DMI, mandating that CONFIG_ACPI_BLACKLIST_YEAR=0.
      
      So it seems vanishingly unlikely that this option
      is helping anybody run a 2013 kernel on a 1998 system,
      and now more systems mandate this option be disabled,
      so we simplify by deleting it entirely.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4c47cb19
  23. 11 11月, 2013 1 次提交
  24. 01 11月, 2013 1 次提交
  25. 24 10月, 2013 1 次提交
  26. 16 10月, 2013 1 次提交
  27. 12 10月, 2013 1 次提交
  28. 11 10月, 2013 1 次提交
  29. 01 10月, 2013 1 次提交
  30. 23 8月, 2013 1 次提交
  31. 15 7月, 2013 1 次提交
  32. 08 4月, 2013 1 次提交
  33. 03 4月, 2013 1 次提交
    • T
      ACPI / BGRT: Don't let users configure BGRT on non X86 systems · e66cd537
      Tony Luck 提交于
      Fengguang Wu's 0-Day kernel build testing backend found the
      following build error for an allmodconfig build on ia64:
      
         drivers/built-in.o: In function `show_yoffset':
      >> bgrt.c:(.text+0xe5a71): undefined reference to `bgrt_tab'
      >> bgrt.c:(.text+0xe5a91): undefined reference to `bgrt_tab'
         drivers/built-in.o: In function `show_xoffset':
      >> bgrt.c:(.text+0xe5b51): undefined reference to `bgrt_tab'
      >> bgrt.c:(.text+0xe5b71): undefined reference to `bgrt_tab'
         drivers/built-in.o: In function `show_type':
      >> bgrt.c:(.text+0xe5c31): undefined reference to `bgrt_tab'
         drivers/built-in.o:bgrt.c:(.text+0xe5c51): more undefined references to `bgrt_tab' follow
         drivers/built-in.o: In function `bgrt_init':
         bgrt.c:(.init.text+0x8931): undefined reference to `bgrt_image'
         bgrt.c:(.init.text+0x8932): undefined reference to `bgrt_image_size'
         bgrt.c:(.init.text+0x8950): undefined reference to `bgrt_image'
         bgrt.c:(.init.text+0x8960): undefined reference to `bgrt_image_size'
      
      The problem is that all these undefined names are provided by
      arch/x86/platform/efi/efi-bgrt.c - which is obviously not available
      to the ia64 build.
      
      It doesn't seem useful to provide the BGRT support for Itanium
      (many systems are headless and have no graphics at all). So
      just don't let users configure this driver on non-X86 machines.
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Acked-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e66cd537
  34. 25 3月, 2013 1 次提交
  35. 04 3月, 2013 1 次提交