summaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/ipmi/ipmi_si.h18
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c26
2 files changed, 28 insertions, 16 deletions
diff --git a/drivers/char/ipmi/ipmi_si.h b/drivers/char/ipmi/ipmi_si.h
new file mode 100644
index 000000000000..a4d993b1fe66
--- /dev/null
+++ b/drivers/char/ipmi/ipmi_si.h
@@ -0,0 +1,18 @@
+/*
+ * 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);
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 4caa793a6765..6ba70c2fc25f 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -60,7 +60,7 @@
#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>
@@ -332,7 +332,6 @@ static int num_max_busy_us;
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);
@@ -1310,9 +1309,6 @@ static LIST_HEAD(smi_infos);
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
@@ -1341,8 +1337,6 @@ static unsigned int num_regshifts;
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);
@@ -1950,7 +1944,7 @@ 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;
@@ -2044,7 +2038,7 @@ static int hardcode_find_bmc(void)
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);
@@ -2244,7 +2238,7 @@ static int try_init_spmi(struct SPMITable *spmi)
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);
@@ -2380,7 +2374,7 @@ static int dmi_ipmi_probe(struct platform_device *pdev)
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;
@@ -2515,7 +2509,7 @@ static int ipmi_pci_probe(struct pci_dev *pdev,
&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);
@@ -2635,7 +2629,7 @@ static int of_ipmi_probe(struct platform_device *dev)
dev_set_drvdata(&dev->dev, info);
- ret = add_smi(info);
+ ret = ipmi_si_add_smi(info);
if (ret) {
kfree(info);
return ret;
@@ -2760,7 +2754,7 @@ static int acpi_ipmi_probe(struct platform_device *dev)
res, info->io.regsize, info->io.regspacing,
info->irq);
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv)
kfree(info);
@@ -2842,7 +2836,7 @@ static int __init ipmi_parisc_probe(struct parisc_device *dev)
dev_set_drvdata(&dev->dev, info);
- rv = add_smi(info);
+ rv = ipmi_si_add_smi(info);
if (rv) {
kfree(info);
return rv;
@@ -3448,7 +3442,7 @@ static struct smi_info *find_dup_si(struct smi_info *info)
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;