bb398a4cb0
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>
23 lines
601 B
C
23 lines
601 B
C
/*
|
|
* ipmi_si.h
|
|
*
|
|
* Interface from the device-specific interfaces (OF, DMI, ACPI, PCI,
|
|
* etc) to the base ipmi system interface code.
|
|
*/
|
|
|
|
#include <linux/interrupt.h>
|
|
#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
|
|
|
|
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);
|