1. 20 6月, 2009 1 次提交
  2. 09 6月, 2009 1 次提交
  3. 05 4月, 2009 1 次提交
  4. 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
  5. 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
  6. 04 1月, 2009 1 次提交
  7. 08 11月, 2008 1 次提交
  8. 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
  9. 11 10月, 2008 2 次提交
  10. 03 9月, 2008 1 次提交
  11. 21 8月, 2008 1 次提交
  12. 15 8月, 2008 1 次提交
  13. 22 7月, 2008 1 次提交
  14. 17 7月, 2008 5 次提交
  15. 12 6月, 2008 1 次提交
  16. 30 4月, 2008 1 次提交
    • A
      [IA64] Provide ACPI fixup for /proc/cpuinfo/physical_id · fe086a7b
      Alex Chiang 提交于
      Legacy HP ia64 platforms currently cannot provide
      /proc/cpuinfo/physical_id due to legacy SAL/PAL implementations.
      However, that physical topology information can be obtained
      via ACPI.
      
      Provide an interface that gives ACPI one last chance to provide
      physical_id for these legacy platforms. This logic only comes
      into play iff:
      
      - ACPI actually provides slot information for the CPU
      - we lack a valid socket_id
      
      Otherwise, we don't do anything.
      
      Since x86 uses the ACPI processor driver as well, we provide a nop
      stub function for arch_fix_phys_package_id() in asm-x86/topology.h
      Signed-off-by: NAlex Chiang <achiang@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      fe086a7b
  17. 29 4月, 2008 2 次提交
  18. 09 4月, 2008 1 次提交
  19. 29 3月, 2008 1 次提交
    • I
      revert "ACPI: drivers/acpi: elide a non-zero test on a result that is never 0" · 48d3d826
      Ingo Molnar 提交于
      Revert commit 1192aeb9 ("ACPI:
      drivers/acpi: elide a non-zero test on a result that is never 0")
      because it turns out that thermal_cooling_device_register() does
      actually return NULL if CONFIG_THERMAL is turned off (then the routine
      turns into a dummy inline routine in the header files that returns NULL
      unconditionally).
      
      This was found with randconfig testing, causing a crash during bootup:
      
        initcall 0x78878534 ran for 13 msecs: acpi_button_init+0x0/0x51()
        Calling initcall 0x78878585: acpi_fan_init+0x0/0x2c()
        BUG: unable to handle kernel NULL pointer dereference at 00000000
        IP: [<782b8ad0>] acpi_fan_add+0x7d/0xfd
        *pde = 00000000
        Oops: 0000 [#1]
        Modules linked in:
      
        Pid: 1, comm: swapper Not tainted (2.6.25-rc7-sched-devel.git-x86-latest.git #14)
        EIP: 0060:[<782b8ad0>] EFLAGS: 00010246 CPU: 0
        EIP is at acpi_fan_add+0x7d/0xfd
        EAX: b787c718 EBX: b787c400 ECX: b782ceb4 EDX: 00000007
        ESI: 00000000 EDI: b787c6f4 EBP: b782cee0 ESP: b782cecc
         DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
        Process swapper (pid: 1, ti=b782c000 task=b7846000 task.ti=b782c000)
        Stack: b787c459 00000000 b787c400 78790888 b787c60c b782cef8 782b6fb8 ffffffda
               b787c60c 00000000 78790958 b782cf0c 783005d7 b787c60c 78790958 78790584
               b782cf1c 783007f6 b782cf28 00000000 b782cf40 782ffc4a 78790958 b794d558
        Call Trace:
         [<782b6fb8>] ? acpi_device_probe+0x3e/0xdb
         [<783005d7>] ? driver_probe_device+0x82/0xfc
         [<783007f6>] ? __driver_attach+0x3a/0x70
         [<782ffc4a>] ? bus_for_each_dev+0x3e/0x60
         [<7830048c>] ? driver_attach+0x14/0x16
         [<783007bc>] ? __driver_attach+0x0/0x70
         [<7830006a>] ? bus_add_driver+0x9d/0x1b0
         [<783008c3>] ? driver_register+0x47/0xa3
         [<7813db00>] ? timespec_to_ktime+0x9/0xc
         [<782b7331>] ? acpi_bus_register_driver+0x3a/0x3c
         [<78878592>] ? acpi_fan_init+0xd/0x2c
         [<78863656>] ? kernel_init+0xac/0x1f9
         [<788635aa>] ? kernel_init+0x0/0x1f9
         [<78114563>] ? kernel_thread_helper+0x7/0x10
         =======================
        Code: 6e 78 e8 57 44 e7 ff 58 e9 93 00 00 00 8b 55 f0 8d bb f4 02 00 00 80 4b 2d 10 8b 03 e8 87 cb ff ff 8d 83 18 03 00 00 80 63 2d ef <ff> 35 00 00 00 00 50 68 e8 9c 6e 78 e8 22 44 e7 ff b9 b6 9c 6e
        EIP: [<782b8ad0>] acpi_fan_add+0x7d/0xfd SS:ESP 0068:b782cecc
        ---[ end trace 778e504de7e3b1e3 ]---
        Kernel panic - not syncing: Attempted to kill init!
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      48d3d826
  20. 27 3月, 2008 1 次提交
  21. 12 3月, 2008 1 次提交
  22. 23 2月, 2008 1 次提交
  23. 21 2月, 2008 1 次提交
  24. 16 2月, 2008 3 次提交
  25. 02 2月, 2008 2 次提交
    • Z
      ACPI : Update T-state coordination after getting _TSD info · 1180509f
      Zhao Yakui 提交于
      Accordint to ACPI spec, the _TSD object provides T-state control cross
      logical processor dependency information to OSPM.
      After the _TSD data for all cpus are obtained, OSPM will set up
      the T-state coordination between CPUs.
      
      Of course if the _TSD doesn't exist or _TSD data is incorrect , it is
      assumed that there is no T-state coordination and T-state is changed
      independently.
      
      Now there is no proper solution to update T-state coordination after
      one cpu is hotplugged. So this patch won't support hotplugged cpu very well.
      Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      1180509f
    • Z
      ACPI: register ACPI Processor as generic thermal cooling device · d9460fd2
      Zhang Rui 提交于
      Register ACPI processor as thermal cooling devices.
      A combination of processor T-state and P-state are used for thermal throttling.
      the processor will reduce the frequency first and then set the T-state.
      
      we use cpufreq_thermal_reduction_pctg to calculate the cpufreq limit,
      and call cpufreq_verify_with_limit to set the cpufreq limit.
      if cpufreq driver is loaded, then we have four cooling state for cpufreq control.
      cooling state 0: cpufreq limit == max_freq
      cooling state 1: cpufreq limit == max_freq * 80%
      cooling state 2: cpufreq limit == max_freq * 60%
      cooling state 3: cpufreq limit == max_freq * 40%
      
      after the cpufreq limit is set to 40 percentage of the max_freq,
      we use T-state for cooling.
      
      eg. a processor has P-state support, and it has 8 T-state (T0-T7),
      the max_state of the proceesor is 10:
      
      state	cpufreq-limit  T-state
      0:	max_freq	T0
      1:	max_freq * 80%	T0
      2:	max_freq * 60%	T0
      3:	max_freq * 40%	T0
      4:	max_freq * 40%	T1
      5:	max_freq * 40%	T2
      6:	max_freq * 40%	T3
      7:	max_freq * 40%	T4
      8:	max_freq * 40%	T5
      9:	max_freq * 40%	T6
      10:	max_freq * 40%	T7
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      Signed-off-by: NZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NThomas Sujith <sujith.thomas@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d9460fd2
  26. 09 1月, 2008 1 次提交
  27. 30 11月, 2007 1 次提交
  28. 21 11月, 2007 1 次提交