]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'ipmi' into release
authorLen Brown <len.brown@intel.com>
Wed, 12 Jan 2011 10:03:13 +0000 (05:03 -0500)
committerLen Brown <len.brown@intel.com>
Wed, 12 Jan 2011 10:03:13 +0000 (05:03 -0500)
1  2 
drivers/acpi/Kconfig
drivers/acpi/Makefile
drivers/char/ipmi/ipmi_si_intf.c

diff --combined drivers/acpi/Kconfig
index 788e88eb18ecc939cfef7629c4c3e60a3d56df93,a0c03658b2ea7f902b755364245435f8060728ba..865fcb3c4807e06d443b745e2cff4fbbbc176fee
@@@ -53,6 -53,10 +53,6 @@@ config ACPI_PROCF
          they have been replaced by functions in /sys.
          The deprecated files (and their replacements) include:
  
 -        /proc/acpi/processor/*/throttling (/sys/class/thermal/
 -              cooling_device*/*)
 -        /proc/acpi/video/*/brightness (/sys/class/backlight/)
 -        /proc/acpi/thermal_zone/*/* (/sys/class/thermal/)
          This option has no effect on /proc/acpi/ files
          and functions which do not yet exist in /sys.
  
@@@ -70,8 -74,6 +70,8 @@@ config ACPI_PROCFS_POWE
          /proc/acpi/ac_adapter/* (sys/class/power_supply/*)
          This option has no effect on /proc/acpi/ directories
          and functions, which do not yet exist in /sys
 +        This option, together with the proc directories, will be
 +        deleted in 2.6.39.
  
          Say N to delete power /proc/acpi/ directories that have moved to /sys/
  
@@@ -207,6 -209,17 +207,17 @@@ config ACPI_PROCESSO
  
          To compile this driver as a module, choose M here:
          the module will be called processor.
+ config ACPI_IPMI
+       tristate "IPMI"
+       depends on EXPERIMENTAL && IPMI_SI && IPMI_HANDLER
+       default n
+       help
+         This driver enables the ACPI to access the BMC controller. And it
+         uses the IPMI request/response message to communicate with BMC
+         controller, which can be found on on the server.
+         To compile this driver as a module, choose M here:
+         the module will be called as acpi_ipmi.
  
  config ACPI_HOTPLUG_CPU
        bool
diff --combined drivers/acpi/Makefile
index 9cc9f2c4da79e7fd5322d7c001c117e66295735b,df4c4f0303880e5c0719b840afbcdb411fe134d3..d113fa5100b20331d8b52d548cb07fcf5f281885
@@@ -24,7 -24,7 +24,7 @@@ acpi-y                                += atomicio.
  # sleep related files
  acpi-y                                += wakeup.o
  acpi-y                                += sleep.o
 -acpi-$(CONFIG_ACPI_SLEEP)     += proc.o
 +acpi-$(CONFIG_ACPI_SLEEP)     += proc.o nvs.o
  
  
  #
@@@ -69,5 -69,6 +69,6 @@@ processor-y                   += processor_idle.o proce
  processor-$(CONFIG_CPU_FREQ)  += processor_perflib.o
  
  obj-$(CONFIG_ACPI_PROCESSOR_AGGREGATOR) += acpi_pad.o
+ obj-$(CONFIG_ACPI_IPMI)               += acpi_ipmi.o
  
  obj-$(CONFIG_ACPI_APEI)               += apei/
index c4bacc6ec450fc0cf76d8c8e4cf37ad9d98333f6,945ae4d5d21f0a300f5d4bce366a3a367755fd71..3a3643c6a579688f22c9afe3b8996873abfa5939
@@@ -57,6 -57,7 +57,7 @@@
  #include <asm/irq.h>
  #include <linux/interrupt.h>
  #include <linux/rcupdate.h>
+ #include <linux/ipmi.h>
  #include <linux/ipmi_smi.h>
  #include <asm/io.h>
  #include "ipmi_si_sm.h"
@@@ -107,10 -108,6 +108,6 @@@ enum si_type 
  };
  static char *si_to_str[] = { "kcs", "smic", "bt" };
  
- enum ipmi_addr_src {
-       SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS,
-       SI_PCI, SI_DEVICETREE, SI_DEFAULT
- };
  static char *ipmi_addr_src_to_str[] = { NULL, "hotmod", "hardcoded", "SPMI",
                                        "ACPI", "SMBIOS", "PCI",
                                        "device-tree", "default" };
@@@ -291,6 -288,7 +288,7 @@@ struct smi_info 
        struct task_struct *thread;
  
        struct list_head link;
+       union ipmi_smi_info_union addr_info;
  };
  
  #define smi_inc_stat(smi, stat) \
@@@ -1186,6 -1184,18 +1184,18 @@@ static int smi_start_processing(voi
        return 0;
  }
  
+ static int get_smi_info(void *send_info, struct ipmi_smi_info *data)
+ {
+       struct smi_info *smi = send_info;
+       data->addr_src = smi->addr_source;
+       data->dev = smi->dev;
+       data->addr_info = smi->addr_info;
+       get_device(smi->dev);
+       return 0;
+ }
  static void set_maintenance_mode(void *send_info, int enable)
  {
        struct smi_info   *smi_info = send_info;
  static struct ipmi_smi_handlers handlers = {
        .owner                  = THIS_MODULE,
        .start_processing       = smi_start_processing,
+       .get_smi_info           = get_smi_info,
        .sender                 = sender,
        .request_events         = request_events,
        .set_maintenance_mode   = set_maintenance_mode,
@@@ -1928,8 -1939,7 +1939,8 @@@ static void __devinit hardcode_find_bmc
  static int acpi_failure;
  
  /* For GPE-type interrupts. */
 -static u32 ipmi_acpi_gpe(void *context)
 +static u32 ipmi_acpi_gpe(acpi_handle gpe_device,
 +      u32 gpe_number, void *context)
  {
        struct smi_info *smi_info = context;
        unsigned long   flags;
@@@ -2157,6 -2167,7 +2168,7 @@@ static int __devinit ipmi_pnp_probe(str
        printk(KERN_INFO PFX "probing via ACPI\n");
  
        handle = acpi_dev->handle;
+       info->addr_info.acpi_info.acpi_handle = handle;
  
        /* _IFT tells us the interface type: KCS, BT, etc */
        status = acpi_evaluate_integer(handle, "_IFT", NULL, &tmp);