summaryrefslogtreecommitdiff
path: root/drivers/char/ipmi/ipmi_si.h
diff options
context:
space:
mode:
authorCorey Minyard <cminyard@mvista.com>2017-09-12 21:37:02 -0500
committerCorey Minyard <cminyard@mvista.com>2017-09-27 16:03:45 -0500
commitbb398a4cb09a0ed96cf0fc2e90012cf6bf13a824 (patch)
treed51217564b1fa5cd871dde7657a768d8e900c281 /drivers/char/ipmi/ipmi_si.h
parente1eeb7f8620733fe9f6640eef48d449b925b3c23 (diff)
ipmi_si: Change ipmi_si_add_smi() to take just I/O info
Instead of allocating the smi_info structure, filling in the I/O info, and passing it to ipmi_si_add_smi(), just pass the I/O info in the io structure and let ipmi_si_add_smi() allocate the smi_info structure. This required redoing the way the remove functions for some device interfaces worked, a new function named ipmi_si_remove_by_dev() allows the device to be passed in and detected instead of using driver data, which couldn't be filled out easily othersize. After this the platform handling should be decoupled from the smi_info structure and that handling can be pulled out to its own files. Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'drivers/char/ipmi/ipmi_si.h')
-rw-r--r--drivers/char/ipmi/ipmi_si.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/char/ipmi/ipmi_si.h b/drivers/char/ipmi/ipmi_si.h
index e84651acd772..9573b35d73af 100644
--- a/drivers/char/ipmi/ipmi_si.h
+++ b/drivers/char/ipmi/ipmi_si.h
@@ -14,10 +14,9 @@
#define DEFAULT_REGSPACING 1
#define DEFAULT_REGSIZE 1
-struct smi_info;
-
-int ipmi_si_add_smi(struct smi_info *info);
+int ipmi_si_add_smi(struct si_sm_io *io);
irqreturn_t ipmi_si_irq_handler(int irq, void *data);
void ipmi_irq_start_cleanup(struct si_sm_io *io);
int ipmi_std_irq_setup(struct si_sm_io *io);
void ipmi_irq_finish_setup(struct si_sm_io *io);
+int ipmi_si_remove_by_dev(struct device *dev);