diff options
author | Len Brown <len.brown@intel.com> | 2011-01-12 05:03:13 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-01-12 05:03:13 -0500 |
commit | 4b63bd35eb4e7959b0f7be17634689d34311524b (patch) | |
tree | 2dad174e4ef8cbe5ef86541a8496b5f97dcf35d1 /include/linux | |
parent | 03b6e6e58d9dd5f3068288653810db3c15fde929 (diff) | |
parent | e92b297cc72ade7a58eaec7e01c906d856f8ab6e (diff) | |
download | op-kernel-dev-4b63bd35eb4e7959b0f7be17634689d34311524b.zip op-kernel-dev-4b63bd35eb4e7959b0f7be17634689d34311524b.tar.gz |
Merge branch 'ipmi' into release
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/ipmi.h | 38 | ||||
-rw-r--r-- | include/linux/ipmi_smi.h | 8 |
2 files changed, 46 insertions, 0 deletions
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index 65aae34..045f2f2 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h @@ -454,6 +454,44 @@ unsigned int ipmi_addr_length(int addr_type); /* Validate that the given IPMI address is valid. */ int ipmi_validate_addr(struct ipmi_addr *addr, int len); +/* + * How did the IPMI driver find out about the device? + */ +enum ipmi_addr_src { + SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS, + SI_PCI, SI_DEVICETREE, SI_DEFAULT +}; + +union ipmi_smi_info_union { + /* + * the acpi_info element is defined for the SI_ACPI + * address type + */ + struct { + void *acpi_handle; + } acpi_info; +}; + +struct ipmi_smi_info { + enum ipmi_addr_src addr_src; + + /* + * Base device for the interface. Don't forget to put this when + * you are done. + */ + struct device *dev; + + /* + * The addr_info provides more detailed info for some IPMI + * devices, depending on the addr_src. Currently only SI_ACPI + * info is provided. + */ + union ipmi_smi_info_union addr_info; +}; + +/* This is to get the private info of ipmi_smi_t */ +extern int ipmi_get_smi_info(int if_num, struct ipmi_smi_info *data); + #endif /* __KERNEL__ */ diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index 4b48318..906590a 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h @@ -39,6 +39,7 @@ #include <linux/module.h> #include <linux/device.h> #include <linux/platform_device.h> +#include <linux/ipmi.h> /* This files describes the interface for IPMI system management interface drivers to bind into the IPMI message handler. */ @@ -86,6 +87,13 @@ struct ipmi_smi_handlers { int (*start_processing)(void *send_info, ipmi_smi_t new_intf); + /* + * Get the detailed private info of the low level interface and store + * it into the structure of ipmi_smi_data. For example: the + * ACPI device handle will be returned for the pnp_acpi IPMI device. + */ + int (*get_smi_info)(void *send_info, struct ipmi_smi_info *data); + /* Called to enqueue an SMI message to be sent. This operation is not allowed to fail. If an error occurs, it should report back the error in a received message. It may |