1. 15 3月, 2010 1 次提交
  2. 13 1月, 2010 1 次提交
    • N
      [CPUFREQ] Processor Clocking Control interface driver · 0f1d683f
      Naga Chumbalkar 提交于
      Processor Clocking Control (PCC) is an interface between the BIOS and OSPM.
      Based on the server workload, OSPM can request what frequency it expects
      from a logical CPU, and the BIOS will achieve that frequency transparently.
      
      This patch introduces driver support for PCC. OSPM uses the PCC driver to
      communicate with the BIOS via the PCC interface.
      
      There is a Documentation file that provides a link to the PCC
      Specification, and also provides a summary of the PCC interface.
      
      Currently, certain HP ProLiant platforms implement the PCC interface. However,
      any platform whose BIOS implements the PCC Specification, can utilize this
      driver.
      
      V2 --> V1 changes (based on Dominik's suggestions):
      - Removed the dependency on CPU_FREQ_TABLE
      - "cpufreq_stats" will no longer PANIC. Actually, it will not load anymore
      because it is not applicable.
      - Removed the sanity check for target frequency in the ->target routine.
      
      NOTE: A patch to sanitize the target frequency requested by "ondemand" is
      needed to ensure that the target freq < policy->min.
      
      Can this driver be queued up for the 2.6.33 tree?
      Signed-off-by: NNaga Chumbalkar <nagananda.chumbalkar@hp.com>
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      Signed-off-by: NDave Jones <davej@redhat.com>
      0f1d683f
  3. 22 12月, 2009 2 次提交
    • A
      ACPI: processor: change acpi_processor_set_pdc() interface · 43bab25c
      Alex Chiang 提交于
      When calling _PDC, we really only need the handle to the processor
      to call the method; we don't look at any other parts of the
      struct acpi_processor * given to us.
      
      In the early path, when we walk the namespace, we are given the
      handle directly, so just pass it through to acpi_processor_set_pdc()
      without stuffing it into a wasteful struct acpi_processor allocated
      on the stack each time
      
      This saves 2834 bytes of stack.
      
      Update the interface accordingly.
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      43bab25c
    • A
      ACPI: processor: call _PDC early · 78f16996
      Alex Chiang 提交于
      We discovered that at least one machine (HP Envy), methods in the DSDT
      attempt to call external methods defined in a dynamically loaded SSDT.
      
      Unfortunately, the DSDT methods we are trying to call are part of the
      EC initialization, which happens very early, and the the dynamic SSDT
      is only loaded when a processor _PDC method runs much later.
      
      This results in namespace lookup errors for the (as of yet) undefined
      methods.
      
      Since Windows doesn't have any issues with this machine, we take it
      as a hint that they must be evaluating _PDC much earlier than we are.
      
      Thus, the proper thing for Linux to do should be to match the Windows
      implementation more closely.
      
      Provide a mechanism to call _PDC before we enable the EC. Doing so loads
      the dynamic tables, and allows the EC to be enabled correctly.
      
      The ACPI processor driver will still evaluate _PDC in its .add() method
      to cover the hotplug case.
      
      Resolves: http://bugzilla.kernel.org/show_bug.cgi?id=14824
      
      Cc: ming.m.lin@intel.com
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      78f16996
  4. 17 12月, 2009 1 次提交
    • T
      ACPI processor: Fix section mismatch for processor_add() · bf8b4542
      Thomas Renninger 提交于
      Due to the merge of processor_start() (declared with __cpuinit) into
      processor_add(), a section mismatch warning appears:
      
      WARNING: drivers/built-in.o(.text+0x4d59d): Section mismatch in reference
      from the function acpi_processor_add() to the function
      .cpuinit.text:acpi_processor_power_init()
      ...
      
      This patch fixes the warning by declaring processor_add() as __cpuinit
      and also declares acpi_processor_add_fs() as __cpuinit as it is only
      used in acpi_processor_add().
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      bf8b4542
  5. 16 12月, 2009 1 次提交
  6. 25 11月, 2009 1 次提交
  7. 06 11月, 2009 2 次提交
    • Z
      ACPI: Notify the _PPC evaluation status to the platform · d81c45e1
      Zhao Yakui 提交于
      According to the ACPI spec(section 8.4.4.3) OSPM should convey the _PPC
      evaluations status to the platform if there exists the _OST object.
      The _OST contains two arguments:
      	The first is the PERFORMANCE notificatin event.
      	The second is the status of _PPC object.
      OSPM will convey the _PPC evaluation status to the platform.
      Of course when the module parameter of "ignore_ppc" is added, OSPM won't
      evaluate the _PPC object. But it will call the _OST object.
      
      At the same time the _OST object will be evaluated only when the PERFORMANCE
      notification event is received.
      Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d81c45e1
    • R
      ACPI: add __cpuinit to acpi_processor_add() · 941b10fa
      Rakib Mullick 提交于
      Annote acpi_processor_add with cpuinit since it calls a cpuinit function
      acpi_processor_power_init and fixes a section mismatch warning.
      
       We were warned by the following warning:
      
       LD      drivers/acpi/processor.o
      WARNING: drivers/acpi/processor.o(.text+0x1829): Section mismatch in
      reference from the function acpi_processor_add() to the function
      .cpuinit.text:acpi_processor_power_init()
      The function acpi_processor_add() references
      the function __cpuinit acpi_processor_power_init().
      This is often because acpi_processor_add lacks a __cpuinit
      annotation or the annotation of acpi_processor_power_init is wrong.
      Signed-off-by: NRakib Mullick <rakib.mullick@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      941b10fa
  8. 03 10月, 2009 1 次提交
  9. 29 8月, 2009 1 次提交
  10. 27 8月, 2009 1 次提交
    • Y
      acpi: don't call acpi_processor_init if acpi is disabled · ce8442b5
      Yinghai Lu 提交于
      Jens reported early_ioremap messages with old ASUS board...
      
      > [    1.507461] pci 0000:00:09.0: Firmware left e100 interrupts enabled; disabling
      > [    1.532778] early_ioremap(3fffd080, 0000005c) [0] => Pid: 1, comm: swapper Not tainted 2.6.31-rc4 #36
      > [    1.561007] Call Trace:
      > [    1.568638]  [<c136e48b>] ? printk+0x18/0x1d
      > [    1.581734]  [<c15513ff>] __early_ioremap+0x74/0x1e9
      > [    1.596898]  [<c15515aa>] early_ioremap+0x1a/0x1c
      > [    1.611270]  [<c154a187>] __acpi_map_table+0x18/0x1a
      > [    1.626451]  [<c135a7f8>] acpi_os_map_memory+0x1d/0x25
      > [    1.642129]  [<c119459c>] acpi_tb_verify_table+0x20/0x49
      > [    1.658321]  [<c1193e50>] acpi_get_table_with_size+0x53/0xa1
      > [    1.675553]  [<c1193eae>] acpi_get_table+0x10/0x15
      > [    1.690192]  [<c155cc19>] acpi_processor_init+0x23/0xab
      > [    1.706126]  [<c1001043>] do_one_initcall+0x33/0x180
      > [    1.721279]  [<c155cbf6>] ? acpi_processor_init+0x0/0xab
      > [    1.737479]  [<c106893a>] ? register_irq_proc+0xaa/0xc0
      > [    1.753411]  [<c10689b7>] ? init_irq_proc+0x67/0x80
      > [    1.768316]  [<c15405e7>] kernel_init+0x120/0x176
      > [    1.782678]  [<c15404c7>] ? kernel_init+0x0/0x176
      > [    1.797062]  [<c10038b7>] kernel_thread_helper+0x7/0x10
      > [    1.812984] 00000080 + ffe00000
      
      that is rather later.
      acpi_gbl_permanent_mmap should be set in acpi_early_init()
      if acpi is not disabled
      
      and we have
      > [    0.000000] ASUS P2B-DS detected: force use of acpi=ht
      
      just don't load acpi_processor_init...
      Reported-and-tested-by: NJens Rosenboom <jens@leia.mcbone.net>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ce8442b5
  11. 26 6月, 2009 4 次提交
  12. 24 6月, 2009 2 次提交
    • Z
      ACPI: Rename ACPI processor device bus ID · 7a04b849
      Zhao Yakui 提交于
      Some BIOS re-use the same processor bus id
      in different scope:
      
      	\_SB.SCK0.CPU0
      	\_SB.SCK1.CPU0
      
      But the (deprecated) /proc/acpi/ interface
      assumes the bus-id's are unique, resulting in an OOPS
      when the processor driver is loaded:
      
      WARNING: at fs/proc/generic.c:590 proc_register+0x148/0x180()
      Hardware name: Sunrise Ridge
      proc_dir_entry 'processor/CPU0' already registered
      Call Trace:
       [<ffffffff8023f7ef>] warn_slowpath+0xb1/0xe5
       [<ffffffff8036243b>] ? ida_get_new_above+0x190/0x1b1
       [<ffffffff803625a8>] ? idr_pre_get+0x5f/0x75
       [<ffffffff8030b2f6>] proc_register+0x148/0x180
       [<ffffffff8030b4ff>] proc_mkdir_mode+0x3d/0x52
       [<ffffffff8030b525>] proc_mkdir+0x11/0x13
       [<ffffffffa0014b89>] acpi_processor_start+0x755/0x9bc [processor]
      
      Rename the processor device bus id. And the new bus id will be
      generated as the following format:
      	CPU+ CPU ID
      
      For example: If the cpu ID is 5, then the bus ID will be "CPU5".
      	If the CPU ID is 10, then the bus ID will be "CPUA".
      
      Yes, this will change the directory names seen
      in /proc/acpi/processor/* on some systems.
      Before this patch, those directory names where
      totally arbitrary strings based on the interal AML device strings.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=13612Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      7a04b849
    • Z
      ACPI: Make ACPI processor proc I/F depend on the ACPI_PROCFS · 74cad4ee
      Zhao Yakui 提交于
      Now whether the ACPI processor proc I/F is registered depends on the
      CONFIG_PROC. It had better depend on the CONFIG_ACPI_PROCFS.
      When the CONFIG_ACPI_PROCFS is unset in kernel configuration, the
      ACPI processor proc I/F won't be registered.
      Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      74cad4ee
  13. 20 6月, 2009 1 次提交
  14. 09 6月, 2009 1 次提交
  15. 28 5月, 2009 2 次提交
  16. 05 4月, 2009 1 次提交
  17. 04 4月, 2009 1 次提交
    • S
      x86, ACPI: add support for x2apic ACPI extensions · 7237d3de
      Suresh Siddha 提交于
      All logical processors with APIC ID values of 255 and greater will have their
      APIC reported through Processor X2APIC structure (type-9 entry type) and all
      logical processors with APIC ID less than 255 will have their APIC reported
      through legacy Processor Local APIC (type-0 entry type) only. This is the
      same case even for NMI structure reporting.
          
      The Processor X2APIC Affinity structure provides the association between the
      X2APIC ID of a logical processor and the proximity domain to which the logical
      processor belongs.
          
      For OSPM, Procssor IDs outside the 0-254 range are to be declared as Device()
      objects in the ACPI namespace.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      7237d3de
  18. 31 3月, 2009 1 次提交
    • A
      proc 2/2: remove struct proc_dir_entry::owner · 99b76233
      Alexey Dobriyan 提交于
      Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
      as correctly noted at bug #12454. Someone can lookup entry with NULL
      ->owner, thus not pinning enything, and release it later resulting
      in module refcount underflow.
      
      We can keep ->owner and supply it at registration time like ->proc_fops
      and ->data.
      
      But this leaves ->owner as easy-manipulative field (just one C assignment)
      and somebody will forget to unpin previous/pin current module when
      switching ->owner. ->proc_fops is declared as "const" which should give
      some thoughts.
      
      ->read_proc/->write_proc were just fixed to not require ->owner for
      protection.
      
      rmmod'ed directories will be empty and return "." and ".." -- no harm.
      And directories with tricky enough readdir and lookup shouldn't be modular.
      We definitely don't want such modular code.
      
      Removing ->owner will also make PDE smaller.
      
      So, let's nuke it.
      
      Kudos to Jeff Layton for reminding about this, let's say, oversight.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=12454Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      99b76233
  19. 04 1月, 2009 1 次提交
  20. 08 11月, 2008 1 次提交
  21. 07 11月, 2008 4 次提交
    • K
      ACPI: struct device - replace bus_id with dev_name(), dev_set_name() · 0794469d
      Kay Sievers 提交于
      This patch is part of a larger patch series which will remove
      the "char bus_id[20]" name string from struct device. The device
      name is managed in the kobject anyway, and without any size
      limitation, and just needlessly copied into "struct device".
      
      To set and read the device name dev_name(dev) and dev_set_name(dev)
      must be used. If your code uses static kobjects, which it shouldn't
      do, "const char *init_name" can be used to statically provide the
      name the registered device should have. At registration time, the
      init_name field is cleared, to enforce the use of dev_name(dev) to
      access the device name at a later time.
      
      We need to get rid of all occurrences of bus_id in the entire tree
      to be able to enable the new interface. Please apply this patch,
      and possibly convert any remaining remaining occurrences of bus_id.
      
      We want to submit a patch to -next, which will remove bus_id from
      "struct device", to find the remaining pieces to convert, and finally
      switch over to the new api, which will remove the 20 bytes array
      and does no longer have a size limitation.
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-Off-By: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      0794469d
    • M
      5b53ed69
    • M
      ACPI: Behave uniquely based on processor declaration definition type · b26e9286
      Myron Stowe 提交于
      Associating a Local SAPIC with a processor object is dependent upon the
      processor object's definition type.  CPUs declared as "Processor" should
      use the Local SAPIC's 'processor_id', and CPUs declared as "Device"
      should use the 'uid'.  Note that for "Processor" declarations, even if a
      '_UID' child object exists, it has no bearing with respect to mapping
      Local SAPICs (see section 5.2.11.13 - Local SAPIC Structure; "Advanced
      Configuration and Power Interface Specification", Revision 3.0b).
      
      This patch changes the lsapic mapping logic to rely on the distinction of
      how the processor object was declared - the mapping can't just try both
      types of matches regardless of declaration type and rely on one failing
      as is currently being done.
      Signed-off-by: NMyron Stowe <myron.stowe@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b26e9286
    • M
      ACPI: Disambiguate processor declaration type · ad93a765
      Myron Stowe 提交于
      Declaring processors in ACPI namespace can be done using either a
      "Processor" definition or a "Device" definition (see section 8.4 -
      Declaring Processors; "Advanced Configuration and Power Interface
      Specification", Revision 3.0b).  Currently the two processor
      declaration types are conflated.
      
      This patch disambiguates the processor declaration's definition type
      enabling subsequent code to behave uniquely based explicitly on the
      declaration's type.
      Signed-off-by: NMyron Stowe <myron.stowe@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ad93a765
  22. 11 10月, 2008 2 次提交
  23. 03 9月, 2008 1 次提交
  24. 21 8月, 2008 1 次提交
  25. 15 8月, 2008 1 次提交
  26. 22 7月, 2008 1 次提交
  27. 17 7月, 2008 3 次提交