--- /dev/null
+/*
+ * ipmi_si.h
+ *
+ * Interface from the device-specific interfaces (OF, DMI, ACPI, PCI,
+ * etc) to the base ipmi system interface code.
+ */
+
+#include "ipmi_si_sm.h"
+
+#define IPMI_IO_ADDR_SPACE 0
+#define IPMI_MEM_ADDR_SPACE 1
+
+#define DEFAULT_REGSPACING 1
+#define DEFAULT_REGSIZE 1
+
+struct smi_info;
+
+int ipmi_si_add_smi(struct smi_info *info);
#include <linux/ipmi.h>
#include <linux/ipmi_smi.h>
#include <asm/io.h>
-#include "ipmi_si_sm.h"
+#include "ipmi_si.h"
#include "ipmi_dmi.h"
#include <linux/dmi.h>
#include <linux/string.h>
static bool unload_when_empty = true;
-static int add_smi(struct smi_info *smi);
static int try_smi_init(struct smi_info *smi);
static void cleanup_one_si(struct smi_info *to_clean);
static void cleanup_ipmi_si(void);
static DEFINE_MUTEX(smi_infos_lock);
static int smi_num; /* Used to sequence the SMIs */
-#define DEFAULT_REGSPACING 1
-#define DEFAULT_REGSIZE 1
-
#ifdef CONFIG_ACPI
static bool si_tryacpi = true;
#endif
static int slave_addrs[SI_MAX_PARMS]; /* Leaving 0 chooses the default value */
static unsigned int num_slave_addrs;
-#define IPMI_IO_ADDR_SPACE 0
-#define IPMI_MEM_ADDR_SPACE 1
static const char * const addr_space_to_str[] = { "i/o", "mem" };
static int hotmod_handler(const char *val, struct kernel_param *kp);
info->irq_setup = std_irq_setup;
info->slave_addr = ipmb;
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv) {
kfree(info);
goto out;
info->irq_setup = std_irq_setup;
info->slave_addr = slave_addrs[i];
- if (!add_smi(info)) {
+ if (!ipmi_si_add_smi(info)) {
mutex_lock(&smi_infos_lock);
if (try_smi_init(info))
cleanup_one_si(info);
info->io.addr_data, info->io.regsize, info->io.regspacing,
info->irq);
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv)
kfree(info);
info->io.addr_data, info->io.regsize, info->io.regspacing,
info->irq);
- if (add_smi(info))
+ if (ipmi_si_add_smi(info))
kfree(info);
return 0;
&pdev->resource[0], info->io.regsize, info->io.regspacing,
info->irq);
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv) {
kfree(info);
pci_disable_device(pdev);
dev_set_drvdata(&dev->dev, info);
- ret = add_smi(info);
+ ret = ipmi_si_add_smi(info);
if (ret) {
kfree(info);
return ret;
res, info->io.regsize, info->io.regspacing,
info->irq);
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv)
kfree(info);
dev_set_drvdata(&dev->dev, info);
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv) {
kfree(info);
return rv;
return NULL;
}
-static int add_smi(struct smi_info *new_smi)
+int ipmi_si_add_smi(struct smi_info *new_smi)
{
int rv = 0;
struct smi_info *dup;