Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Thu, 7 Feb 2008 17:45:58 +0000 (09:45 -0800)]
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (112 commits)
  ACPI: fix build warning
  Revert "cpuidle: build fix for non-x86"
  ACPI: update intrd DSDT override console messages
  ACPI: update DSDT override documentation
  ACPI: Add "acpi_no_initrd_override" kernel parameter
  ACPI: its a directory not a folder....
  ACPI: misc cleanups
  ACPI: add missing prink prefix strings
  ACPI: cleanup acpi.h
  ACPICA: fix CONFIG_ACPI_DEBUG_FUNC_TRACE build
  ACPI: video: Ignore ACPI video devices that aren't present in hardware
  ACPI: video: reset brightness on resume
  ACPI: video: call ACPI notifier chain for ACPI video notifications
  ACPI: create notifier chain to get hotkey events to graphics driver
  ACPI: video: delete unused display switch on hotkey event code
  ACPI: video: create "brightness_switch_enabled" modparam
  cpuidle: Add a poll_idle method
  ACPI: cpuidle: Support C1 idle time accounting
  ACPI: enable MWAIT for C1 idle
  ACPI: idle: Fix acpi_safe_halt usages and interrupt enabling/disabling
  ...

1  2 
Documentation/00-INDEX
MAINTAINERS
arch/x86/Kconfig
drivers/misc/asus-laptop.c
drivers/power/power_supply_sysfs.c

diff --combined Documentation/00-INDEX
@@@ -14,6 -14,7 +14,7 @@@ Following translations are available o
        - this file.
  ABI/
        - info on kernel <-> userspace ABI and relative interface stability.
  BUG-HUNTING
        - brute force method of doing binary search of patches to find bug.
  Changes
@@@ -66,6 -67,8 +67,8 @@@ VGA-softcursor.tx
        - how to change your VGA cursor from a blinking underscore.
  accounting/
        - documentation on accounting and taskstats.
+ acpi/
+       - info on ACPI-specific hooks in the kernel.
  aoe/
        - description of AoE (ATA over Ethernet) along with config examples.
  applying-patches.txt
@@@ -126,16 -129,18 +129,16 @@@ devices.tx
        - plain ASCII listing of all the nodes in /dev/ with major minor #'s.
  digiepca.txt
        - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
 -dnotify.txt
 -      - info about directory notification in Linux.
  dontdiff
        - file containing a list of files that should never be diff'ed.
  driver-model/
        - directory with info about Linux driver model.
 -drivers/
 -      - directory with driver documentation (currently only EDAC).
  dvb/
        - info on Linux Digital Video Broadcast (DVB) subsystem.
  early-userspace/
        - info about initramfs, klibc, and userspace early during boot.
 +edac.txt
 +      - information on EDAC - Error Detection And Correction
  eisa.txt
        - info on EISA bus support.
  exception.txt
@@@ -332,8 -337,20 +335,8 @@@ rtc.tx
        - notes on how to use the Real Time Clock (aka CMOS clock) driver.
  s390/
        - directory with info on using Linux on the IBM S390.
 -sched-arch.txt
 -      - CPU Scheduler implementation hints for architecture specific code.
 -sched-coding.txt
 -      - reference for various scheduler-related methods in the O(1) scheduler.
 -sched-design.txt
 -      - goals, design and implementation of the Linux O(1) scheduler.
 -sched-design-CFS.txt
 -      - goals, design and implementation of the Complete Fair Scheduler.
 -sched-domains.txt
 -      - information on scheduling domains.
 -sched-nice-design.txt
 -      - How and why the scheduler's nice levels are implemented.
 -sched-stats.txt
 -      - information on schedstats (Linux Scheduler Statistics).
 +scheduler/
 +      - directory with info on the scheduler.
  scsi/
        - directory with info on Linux scsi support.
  serial/
@@@ -346,6 -363,8 +349,6 @@@ sgi-visws.tx
        - short blurb on the SGI Visual Workstations.
  sh/
        - directory with info on porting Linux to a new architecture.
 -sharedsubtree.txt
 -      - a description of shared subtrees for namespaces.
  smart-config.txt
        - description of the Smart Config makefile feature.
  sony-laptop.txt
diff --combined MAINTAINERS
@@@ -202,6 -202,13 +202,13 @@@ L:       linux-scsi@vger.kernel.or
  W:    http://www.adaptec.com/
  S:    Supported
  
+ ACER WMI LAPTOP EXTRAS
+ P:    Carlos Corbacho
+ M:    carlos@strangeworlds.co.uk
+ L:    aceracpi@googlegroups.com (subscribers-only)
+ W:    http://code.google.com/p/aceracpi
+ S:    Maintained
  ACPI
  P:    Len Brown
  M:    len.brown@intel.com
@@@ -252,6 -259,13 +259,13 @@@ L:       linux-acpi@vger.kernel.or
  W:    http://acpi.sourceforge.net/
  S:    Supported
  
+ ACPI WMI DRIVER
+ P:      Carlos Corbacho
+ M:      carlos@strangeworlds.co.uk
+ L:      linux-acpi@vger.kernel.org
+ W:      http://www.lesswatts.org/projects/acpi/
+ S:      Maintained
  ADM1025 HARDWARE MONITOR DRIVER
  P:    Jean Delvare
  M:    khali@linux-fr.org
@@@ -1371,11 -1385,6 +1385,11 @@@ W:    http://linuxtv.org
  T:    git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
  S:    Maintained
  
 +DZ DECSTATION DZ11 SERIAL DRIVER
 +P:    Maciej W. Rozycki
 +M:    macro@linux-mips.org
 +S:    Maintained
 +
  EATA-DMA SCSI DRIVER
  P:    Michael Neuffer
  L:    linux-eata@i-connect.net, linux-scsi@vger.kernel.org
@@@ -1790,6 -1799,11 +1804,11 @@@ P:    Jaroslav Kysel
  M:    perex@perex.cz
  S:    Maintained
  
+ HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
+ P:    Carlos Corbacho
+ M:    carlos@strangeworlds.co.uk
+ S:    Odd Fixes
  HPET: High Precision Event Timers driver (hpet.c)
  P:    Clemens Ladisch
  M:    clemens@ladisch.de
diff --combined arch/x86/Kconfig
@@@ -105,6 -105,9 +105,9 @@@ config GENERIC_TIME_VSYSCAL
        bool
        default X86_64
  
+ config ARCH_HAS_CPU_RELAX
+       def_bool y
  config HAVE_SETUP_PER_CPU_AREA
        def_bool X86_64
  
@@@ -631,6 -634,7 +634,6 @@@ config TOSHIB
  
  config I8K
        tristate "Dell laptop support"
 -      depends on X86_32
        ---help---
          This adds a driver to safely access the System Management Mode
          of the CPU on the Dell Inspiron 8000. The System Management Mode
@@@ -239,7 -239,7 +239,7 @@@ static struct workqueue_struct *led_wor
        static int object##_led_wk;                                     \
        static DECLARE_WORK(object##_led_work, object##_led_update);    \
        static struct led_classdev object##_led = {                     \
 -              .name           = "asus:" ledname,                      \
 +              .name           = "asus::" ledname,                     \
                .brightness_set = object##_led_set,                     \
        }
  
@@@ -254,7 -254,7 +254,7 @@@ ASUS_LED(gled, "gaming")
   * method is searched within the scope of the handle, can be NULL. The output
   * of the method is written is output, which can also be NULL
   *
-  * returns 1 if write is successful, 0 else.
+  * returns 0 if write is successful, -1 else.
   */
  static int write_acpi_int(acpi_handle handle, const char *method, int val,
                          struct acpi_buffer *output)
        union acpi_object in_obj;       //the only param we use
        acpi_status status;
  
+       if (!handle)
+               return 0;
        params.count = 1;
        params.pointer = &in_obj;
        in_obj.type = ACPI_TYPE_INTEGER;
        in_obj.integer.value = val;
  
        status = acpi_evaluate_object(handle, (char *)method, &params, output);
-       return (status == AE_OK);
+       if (status == AE_OK)
+               return 0;
+       else
+               return -1;
  }
  
  static int read_wireless_status(int mask)
@@@ -321,7 -327,7 +327,7 @@@ static void write_status(acpi_handle ha
  
        switch (mask) {
        case MLED_ON:
-               out = !out & 0x1;
+               out = !(out & 0x1);
                break;
        case GLED_ON:
                out = (out & 0x1) + 1;
                break;
        }
  
-       if (handle && !write_acpi_int(handle, NULL, out, NULL))
+       if (write_acpi_int(handle, NULL, out, NULL))
                printk(ASUS_WARNING " write failed %x\n", mask);
  }
  
@@@ -415,7 -421,7 +421,7 @@@ static int set_brightness(struct backli
        value = (0 < value) ? ((15 < value) ? 15 : value) : 0;
        /* 0 <= value <= 15 */
  
-       if (!write_acpi_int(brightness_set_handle, NULL, value, NULL)) {
+       if (write_acpi_int(brightness_set_handle, NULL, value, NULL)) {
                printk(ASUS_WARNING "Error changing brightness\n");
                ret = -EIO;
        }
@@@ -545,7 -551,7 +551,7 @@@ static ssize_t store_ledd(struct devic
  
        rv = parse_arg(buf, count, &value);
        if (rv > 0) {
-               if (!write_acpi_int(ledd_set_handle, NULL, value, NULL))
+               if (write_acpi_int(ledd_set_handle, NULL, value, NULL))
                        printk(ASUS_WARNING "LED display write failed\n");
                else
                        hotk->ledd_status = (u32) value;
@@@ -590,7 -596,7 +596,7 @@@ static ssize_t store_bluetooth(struct d
  static void set_display(int value)
  {
        /* no sanity check needed for now */
-       if (!write_acpi_int(display_set_handle, NULL, value, NULL))
+       if (write_acpi_int(display_set_handle, NULL, value, NULL))
                printk(ASUS_WARNING "Error setting display\n");
        return;
  }
@@@ -647,7 -653,7 +653,7 @@@ static ssize_t store_disp(struct devic
   */
  static void set_light_sens_switch(int value)
  {
-       if (!write_acpi_int(ls_switch_handle, NULL, value, NULL))
+       if (write_acpi_int(ls_switch_handle, NULL, value, NULL))
                printk(ASUS_WARNING "Error setting light sensor switch\n");
        hotk->light_switch = value;
  }
@@@ -672,7 -678,7 +678,7 @@@ static ssize_t store_lssw(struct devic
  
  static void set_light_sens_level(int value)
  {
-       if (!write_acpi_int(ls_level_handle, NULL, value, NULL))
+       if (write_acpi_int(ls_level_handle, NULL, value, NULL))
                printk(ASUS_WARNING "Error setting light sensor level\n");
        hotk->light_level = value;
  }
@@@ -860,7 -866,7 +866,7 @@@ static int asus_hotk_get_info(void
                printk(ASUS_WARNING "Couldn't get the DSDT table header\n");
  
        /* We have to write 0 on init this far for all ASUS models */
-       if (!write_acpi_int(hotk->handle, "INIT", 0, &buffer)) {
+       if (write_acpi_int(hotk->handle, "INIT", 0, &buffer)) {
                printk(ASUS_ERR "Hotkey initialization failed\n");
                return -ENODEV;
        }
@@@ -106,6 -106,7 +106,6 @@@ static struct device_attribute power_su
        POWER_SUPPLY_ATTR(energy_now),
        POWER_SUPPLY_ATTR(energy_avg),
        POWER_SUPPLY_ATTR(capacity),
 -      POWER_SUPPLY_ATTR(capacity_level),
        POWER_SUPPLY_ATTR(temp),
        POWER_SUPPLY_ATTR(temp_ambient),
        POWER_SUPPLY_ATTR(time_to_empty_now),
        /* Properties of type `const char *' */
        POWER_SUPPLY_ATTR(model_name),
        POWER_SUPPLY_ATTR(manufacturer),
+       POWER_SUPPLY_ATTR(serial_number),
  };
  
  static ssize_t power_supply_show_static_attrs(struct device *dev,