25 Aug, 2007

2 commits


24 Aug, 2007

2 commits

  • Schedule /proc/acpi/event for removal in 6 months.

    Re-name acpi_bus_generate_event() to acpi_bus_generate_proc_event()
    to make sure there is no confusion that it is for /proc/acpi/event only.

    Add CONFIG_ACPI_PROC_EVENT to allow removal of /proc/acpi/event.
    There is no functional change if CONFIG_ACPI_PROC_EVENT=y

    Signed-off-by: Len Brown

    Len Brown
     
  • The previous events patch added a netlink event for every
    user of the legacy /proc/acpi/event interface.

    However, some users of /proc/acpi/event are really input events,
    and they already report their events via the input layer.

    Introduce a new interface, acpi_bus_generate_netlink_event(),
    which is explicitly called by devices that want to repoprt
    events via netlink. This allows the input-like events
    to opt-out of generating netlink events. In summary:

    events that are sent via netlink:
    ac/battery/sbs
    thermal
    processor
    thinkpad_acpi dock/bay

    events that are sent via input layer:
    button
    video hotkey
    thinkpad_acpi hotkey
    asus_acpi/asus-laptop hotkey
    sonypi/sonylaptop

    Signed-off-by: Zhang Rui
    Signed-off-by: Len Brown

    Zhang Rui
     

21 Aug, 2007

1 commit


15 Aug, 2007

2 commits

  • Some hardware will malfunction at a temperature below
    the BIOS provided critical shutdown threshold.

    This hook allows moving the critical trip points down
    to a temperature which provokes a graceful shutdown
    before the hardware malfunction.

    http://bugzilla.kernel.org/show_bug.cgi?id=8884

    WARNING: A trip-point override will not get noticed
    until the system delivers a temperature change event,
    or unless thermal zone polling is enabled.
    eg. "thermal.tzp=10"

    Signed-off-by: Len Brown

    Len Brown
     
  • Reported-by: Randy Dunlap
    Signed-off-by: Len Brown

    Len Brown
     

12 Aug, 2007

6 commits

  • Use DMI to:
    1. enable polling (BIOS thermal events are broken)
    2. disable active trip points (BIOS fan control is broken)
    3. disable passive trip point (BIOS hard-codes it too low)

    The actual temperature reading does work,
    and with the aid of polling, the critical
    trip point should work too.

    http://bugzilla.kernel.org/show_bug.cgi?id=8842

    Signed-off-by: Len Brown

    Len Brown
     
  • thermal.act=-1 disables all active trip points
    in all ACPI thermal zones.

    thermal.act=C, where C > 0, overrides all lowest temperature
    active trip points in all thermal zones to C degrees Celsius.
    Raising this trip-point may allow you to keep your system silent
    up to a higher temperature. However, it will not allow you to
    raise the lowest temperature trip point above the next higher
    trip point (if there is one). Lowering this trip point may
    kick in the fan sooner.

    Note that overriding this trip-point will disable any BIOS attempts
    to implement hysteresis around the lowest temperature trip point.
    This may result in the fan starting and stopping frequently
    if temperature frequently crosses C.

    WARNING: raising trip points above the manufacturer's defaults
    may cause the system to run at higher temperature and shorten
    its life.

    Signed-off-by: Len Brown

    Len Brown
     
  • thermal.nocrt=1 disables actions on _CRT and _HOT
    ACPI thermal zone trip-points. They will be marked
    as in /proc/acpi/thermal_zone/*/trip_points.

    There are two cases where this option is used:

    1. Debugging a hot system crossing valid trip point.

    If your system fan is spinning at full speed,
    be sure that the vent is not clogged with dust.
    Many laptops have very fine thermal fins that are easily blocked.

    Check that the processor fan-sink is properly seated,
    has the proper thermal grease, and is really spinning.

    Check for fan related options in BIOS SETUP.
    Sometimes there is a performance vs quiet option.
    Defaults are generally the most conservative.

    If your fan is not spinning, yet /proc/acpi/fan/
    has files in it, please file a Linux/ACPI bug.

    WARNING: you risk shortening the lifetime of your
    hardware if you use this parameter on a hot system.
    Note that this refers to all system components,
    including the disk drive.

    2. Working around a cool system crossing critical
    trip point due to erroneous temperature reading.

    Try again with CONFIG_HWMON=n
    There is known potential for conflict between the
    the hwmon sub-system and the ACPI BIOS.
    If this fixes it, notify lm-sensors@lm-sensors.org
    and linux-acpi@vger.kernel.org

    Otherwise, file a Linux/ACPI bug, or notify
    just linux-acpi@vger.kernel.org.

    Signed-off-by: Len Brown

    Len Brown
     
  • "thermal.psv=-1" disables passive trip points
    for all ACPI thermal zones.

    "thermal.psv=C", where 'C' is degrees Celsius,
    overrides all existing passive trip points
    for all ACPI thermal zones.

    thermal.psv is checked at module load time,
    and in response to trip-point change events.

    Note that if the system does not deliver thermal zone
    temperature change events near the new trip-point,
    then it will not be noticed. To force your custom
    trip point to be noticed, you may need to enable polling:
    eg. thermal.tzp=3000 invokes polling every 5 minutes.

    Note that once passive thermal throttling is invoked,
    it has its own internal Thermal Sampling Period (_TSP),
    that is unrelated to _TZP.

    WARNING: disabling or raising a thermal trip point
    may result in increased running temperature and
    shorter hardware lifetime on some systems.

    Signed-off-by: Len Brown

    Len Brown
     
  • Thermal Zone Polling frequency (_TZP) is an optional ACPI object
    recommending the rate that the OS should poll the associated thermal zone.

    If _TZP is 0, no polling should be used.
    If _TZP is non-zero, then the platform recommends that
    the OS poll the thermal zone at the specified rate.
    The minimum period is 30 seconds.
    The maximum period is 5 minutes.

    (note _TZP and thermal.tzp units are in deci-seconds,
    so _TZP = 300 corresponds to 30 seconds)

    If _TZP is not present, ACPI 3.0b recommends that the
    thermal zone be polled at an "OS provided default frequency".

    However, common industry practice is:
    1. The BIOS never specifies any _TZP
    2. High volume OS's from this century never poll any thermal zones

    Ie. The OS depends on the platform's ability to
    provoke thermal events when necessary, and
    the "OS provided default frequency" is "never":-)

    There is a proposal that ACPI 4.0 be updated to reflect
    common industry practice -- ie. no _TZP, no polling.

    The Linux kernel already follows this practice --
    thermal zones are not polled unless _TZP is present and non-zero.

    But thermal zone polling is useful as a workaround for systems
    which have ACPI thermal control, but have an issue preventing
    thermal events. Indeed, some Linux distributions still
    set a non-zero thermal polling frequency for this reason.

    But rather than ask the user to write a polling frequency
    into all the /proc/acpi/thermal_zone/*/polling_frequency
    files, here we simply document and expose the already
    existing module parameter to do the same at system level,
    to simplify debugging those broken platforms.

    Note that thermal.tzp is a module-load time parameter only.

    Signed-off-by: Len Brown

    Len Brown
     
  • "thermal.off=1" disables all ACPI thermal support at boot time.

    CONFIG_ACPI_THERMAL=n can do this at build time.
    "# rmmod thermal" can do this at run time,
    as long as thermal is built as a module.

    WARNING: On some systems, disabling ACPI thermal support
    will cause the system to run hotter and reduce the
    lifetime of the hardware.

    Signed-off-by: Len Brown

    Len Brown
     

24 Jul, 2007

1 commit


18 Jul, 2007

1 commit

  • Various pieces of code around the kernel want to be able to trigger an
    orderly poweroff. This pulls them together into a single
    implementation.

    By default the poweroff command is /sbin/poweroff, but it can be set
    via sysctl: kernel/poweroff_cmd. This is split at whitespace, so it
    can include command-line arguments.

    This patch replaces four other instances of invoking either "poweroff"
    or "shutdown -h now": two sbus drivers, and acpi thermal
    management.

    sparc64 has its own "powerd"; still need to determine whether it should
    be replaced by orderly_poweroff().

    Signed-off-by: Jeremy Fitzhardinge
    Acked-by: Len Brown
    Signed-off-by: Chris Wright
    Cc: Andrew Morton
    Cc: Randy Dunlap
    Cc: Andi Kleen
    Cc: Al Viro
    Cc: Arnd Bergmann
    Cc: David S. Miller

    Jeremy Fitzhardinge
     

18 Jun, 2007

1 commit


30 May, 2007

1 commit


01 May, 2007

2 commits

  • The scheme where the thermal driver displayed the
    cooling mode /proc/acpi/thermal_zone/*/cooling_mode
    was flawed in two ways.

    First, the success of _SCP doesn't actually mean
    that the BIOS moved any trip points.
    On many BIOS, _SCP is present, but does nothing.
    So displaying what _SCP executed actually
    was wrong more times than it was right.

    Second, examining the relative position of the
    trip points when the thermal_zone is added
    is insufficient -- as the BIOS reserves the right
    to change the trip points at run-time.

    The only reliable way for the user to determine if
    the thermal zone is in active, passive, or critical
    mode is to examine the relative position of the trip points.
    The user can do this without the kernel doing it
    for them by looking in /proc/acpi/thermal_zone/*/trip_points

    New contents for /proc/acpi/thermal_zone/*/cooling_mode:

    If _SCP available:
    "0 - Active; 1 - Passive\n"

    If _SCP unavailable:
    "\n"

    Signed-off-by: Len Brown

    Len Brown
     
  • /proc/acpi/thermal_zone/*/trip_points displays
    what the kernel reads from the BIOS via ACPI.

    If you echo a string of ':' deliminted numbers to this file
    then it will change what it displays.

    But it shouldn't, since the kernel has no way to communicate
    these changes to ACPI thermal zones. ACPI thermal zone
    trip points are read-only.

    The kernel does have the opportunity to ask the BIOS to change
    the trip points with _SCP - Set Cooling Policy.

    Request Active Cooling Mode:
    # echo 0 > /proc/acpi/thermal_zone/*/cooling_policy

    Request Passive Cooling Mode:
    # echo 1 > /proc/acpi/thermal_zone/*/cooling_policy

    However, in practice it is quite rare for the BIOS
    to support the optional _SCP, and it is even more rare
    for the BIOS to export an _SCP that actually changes
    the trip points.

    Signed-off-by: Len Brown

    Len Brown
     

24 Apr, 2007

1 commit


17 Feb, 2007

3 commits


16 Feb, 2007

2 commits


15 Feb, 2007

1 commit

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

13 Feb, 2007

3 commits

  • Cosmetic only.

    Except in a single case, #define ACPI_*_DRIVER_NAME
    were invoked 0 or 1 times.

    Signed-off-by: Len Brown

    Len Brown
     
  • It was erroneously used as a description rather than a name.

    ie. turn this:

    lenb@se7525gp2:/sys> ls bus/acpi/drivers
    ACPI AC Adapter Driver ACPI Embedded Controller Driver ACPI Power Resource Driver
    ACPI Battery Driver ACPI Fan Driver ACPI Processor Driver
    ACPI Button Driver ACPI PCI Interrupt Link Driver ACPI Thermal Zone Driver
    ACPI container driver ACPI PCI Root Bridge Driver hpet

    into this:

    lenb@se7525gp2:~> ls /sys/bus/acpi/drivers
    ac battery button container ec fan hpet pci_link pci_root power processor thermal

    Signed-off-by: Len Brown

    Len Brown
     
  • cosmetic only

    Make "module name" actually match the file name.
    Invoke with ';' as leaving it off confuses Lindent and gcc doesn't care.
    Fix indentation where Lindent did get confused.

    Signed-off-by: Len Brown

    Len Brown
     

03 Feb, 2007

1 commit


21 Dec, 2006

1 commit


16 Dec, 2006

1 commit

  • Add ACPI bus_type for Linux driver model.

    1. .shutdown method is added into acpi_driver.ops
    needed by bus_type operations.
    2. remove useless parameter 'int state' in .resume method.
    3. change parameter 'int state'
    to 'pm_message_t state' in .suspend method.

    Note: The new .uevent method mark ACPI drivers by PNPID instead of by name.
    Udev script needs to look for "HWID=" or "COMPTID=" to load
    ACPI drivers as a result.

    Signed-off-by: Li Shaohua
    Signed-off-by: Zhang Rui
    Signed-off-by: Len Brown

    Patrick Mochel
     

14 Oct, 2006

1 commit


11 Jul, 2006

2 commits

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    ACPI: ACPI_DOCK: Initialize the atomic notifier list
    ACPI: acpi_os_allocate() fixes
    ACPI: SBS: fix initialization, sem2mutex
    ACPI: add 'const' to several ACPI file_operations
    ACPI: delete some defaults from ACPI Kconfig
    ACPI: "Device `[%s]' is not power manageable" make message debug only
    ACPI: ACPI_DOCK Kconfig
    Revert "Revert "ACPI: dock driver""
    ACPI: acpi_os_get_thread_id() returns current
    ACPI: ACPICA 20060707

    Linus Torvalds
     
  • Daniel Ritz says:

    The acpi driver suspend/resume patches that went in recently caused a regression
    on my box (toshiba tecra 8000 laptop): after resume from swsusp the fan turns on
    keeping blowing cold air out of my notebook. before the patches, the fan was off
    and would only make noise when required. it's the same thing described in
    bugzilla.kernel.org #5000. the acpi suspend/resume patches or at least parts of
    them originate in this bug. now the last patch in the report (attach id 8438)
    actually fixes the problem - for me and the reporter. this is a trimmed down
    version of that patch.

    Signed-off-by: Daniel Ritz
    Cc: Len Brown
    Cc: Sanjoy Mahajan
    Cc: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Karasyov
     

10 Jul, 2006

1 commit


30 Jun, 2006

3 commits


27 Jun, 2006

1 commit