ipmi_si: Rework some include files
ipmi_si_sm.h was getting included in lots of places it didn't belong. Rework things a bit to remove all the dependencies, mostly just moving things between include files that were in the wrong place and removing bogus includes. Signed-off-by: Corey Minyard <cminyard@mvista.com>
This commit is contained in:
parent
cbb19cb1ee
commit
104fb25f60
@ -12,7 +12,6 @@
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/property.h>
|
||||
#include "ipmi_si_sm.h"
|
||||
#include "ipmi_dmi.h"
|
||||
#include "ipmi_plat_data.h"
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
/*
|
||||
* DMI defines for use by IPMI
|
||||
*/
|
||||
#include "ipmi_si.h"
|
||||
|
||||
#ifdef CONFIG_IPMI_DMI_DECODE
|
||||
int ipmi_dmi_get_slave_addr(enum si_type si_type, unsigned int space,
|
||||
|
@ -6,14 +6,65 @@
|
||||
* etc) to the base ipmi system interface code.
|
||||
*/
|
||||
|
||||
#ifndef __IPMI_SI_H__
|
||||
#define __IPMI_SI_H__
|
||||
|
||||
#include <linux/ipmi.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include "ipmi_si_sm.h"
|
||||
|
||||
#define SI_DEVICE_NAME "ipmi_si"
|
||||
|
||||
#define DEFAULT_REGSPACING 1
|
||||
#define DEFAULT_REGSIZE 1
|
||||
|
||||
#define DEVICE_NAME "ipmi_si"
|
||||
enum si_type {
|
||||
SI_TYPE_INVALID, SI_KCS, SI_SMIC, SI_BT
|
||||
};
|
||||
|
||||
enum ipmi_addr_space {
|
||||
IPMI_IO_ADDR_SPACE, IPMI_MEM_ADDR_SPACE
|
||||
};
|
||||
|
||||
/*
|
||||
* The structure for doing I/O in the state machine. The state
|
||||
* machine doesn't have the actual I/O routines, they are done through
|
||||
* this interface.
|
||||
*/
|
||||
struct si_sm_io {
|
||||
unsigned char (*inputb)(const struct si_sm_io *io, unsigned int offset);
|
||||
void (*outputb)(const struct si_sm_io *io,
|
||||
unsigned int offset,
|
||||
unsigned char b);
|
||||
|
||||
/*
|
||||
* Generic info used by the actual handling routines, the
|
||||
* state machine shouldn't touch these.
|
||||
*/
|
||||
void __iomem *addr;
|
||||
unsigned int regspacing;
|
||||
unsigned int regsize;
|
||||
unsigned int regshift;
|
||||
enum ipmi_addr_space addr_space;
|
||||
unsigned long addr_data;
|
||||
enum ipmi_addr_src addr_source; /* ACPI, PCI, SMBIOS, hardcode, etc. */
|
||||
void (*addr_source_cleanup)(struct si_sm_io *io);
|
||||
void *addr_source_data;
|
||||
union ipmi_smi_info_union addr_info;
|
||||
|
||||
int (*io_setup)(struct si_sm_io *info);
|
||||
void (*io_cleanup)(struct si_sm_io *info);
|
||||
unsigned int io_size;
|
||||
|
||||
int irq;
|
||||
int (*irq_setup)(struct si_sm_io *io);
|
||||
void *irq_handler_data;
|
||||
void (*irq_cleanup)(struct si_sm_io *io);
|
||||
|
||||
u8 slave_addr;
|
||||
enum si_type si_type;
|
||||
struct device *dev;
|
||||
};
|
||||
|
||||
int ipmi_si_add_smi(struct si_sm_io *io);
|
||||
irqreturn_t ipmi_si_irq_handler(int irq, void *data);
|
||||
@ -50,3 +101,5 @@ static inline void ipmi_si_parisc_shutdown(void) { }
|
||||
|
||||
int ipmi_si_port_setup(struct si_sm_io *io);
|
||||
int ipmi_si_mem_setup(struct si_sm_io *io);
|
||||
|
||||
#endif /* __IPMI_SI_H__ */
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include <linux/ipmi.h>
|
||||
#include <linux/ipmi_smi.h>
|
||||
#include "ipmi_si.h"
|
||||
#include "ipmi_si_sm.h"
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
@ -1266,12 +1267,12 @@ int ipmi_std_irq_setup(struct si_sm_io *io)
|
||||
rv = request_irq(io->irq,
|
||||
ipmi_si_irq_handler,
|
||||
IRQF_SHARED,
|
||||
DEVICE_NAME,
|
||||
SI_DEVICE_NAME,
|
||||
io->irq_handler_data);
|
||||
if (rv) {
|
||||
dev_warn(io->dev, "%s unable to claim interrupt %d,"
|
||||
" running polled\n",
|
||||
DEVICE_NAME, io->irq);
|
||||
SI_DEVICE_NAME, io->irq);
|
||||
io->irq = 0;
|
||||
} else {
|
||||
io->irq_cleanup = std_irq_cleanup;
|
||||
|
@ -118,7 +118,7 @@ int ipmi_si_mem_setup(struct si_sm_io *io)
|
||||
*/
|
||||
for (idx = 0; idx < io->io_size; idx++) {
|
||||
if (request_mem_region(addr + idx * io->regspacing,
|
||||
io->regsize, DEVICE_NAME) == NULL) {
|
||||
io->regsize, SI_DEVICE_NAME) == NULL) {
|
||||
/* Undo allocations */
|
||||
mem_region_cleanup(io, idx);
|
||||
return -EIO;
|
||||
|
@ -150,7 +150,7 @@ static const struct pci_device_id ipmi_pci_devices[] = {
|
||||
MODULE_DEVICE_TABLE(pci, ipmi_pci_devices);
|
||||
|
||||
static struct pci_driver ipmi_pci_driver = {
|
||||
.name = DEVICE_NAME,
|
||||
.name = SI_DEVICE_NAME,
|
||||
.id_table = ipmi_pci_devices,
|
||||
.probe = ipmi_pci_probe,
|
||||
.remove = ipmi_pci_remove,
|
||||
|
@ -457,7 +457,7 @@ static const struct platform_device_id si_plat_ids[] = {
|
||||
|
||||
struct platform_driver ipmi_platform_driver = {
|
||||
.driver = {
|
||||
.name = DEVICE_NAME,
|
||||
.name = SI_DEVICE_NAME,
|
||||
.of_match_table = of_ipmi_match,
|
||||
.acpi_match_table = ACPI_PTR(acpi_ipmi_match),
|
||||
},
|
||||
|
@ -99,7 +99,7 @@ int ipmi_si_port_setup(struct si_sm_io *io)
|
||||
*/
|
||||
for (idx = 0; idx < io->io_size; idx++) {
|
||||
if (request_region(addr + idx * io->regspacing,
|
||||
io->regsize, DEVICE_NAME) == NULL) {
|
||||
io->regsize, SI_DEVICE_NAME) == NULL) {
|
||||
/* Undo allocations */
|
||||
while (idx--)
|
||||
release_region(addr + idx * io->regspacing,
|
||||
|
@ -14,7 +14,10 @@
|
||||
* Copyright 2002 MontaVista Software Inc.
|
||||
*/
|
||||
|
||||
#include <linux/ipmi.h>
|
||||
#ifndef __IPMI_SI_SM_H__
|
||||
#define __IPMI_SI_SM_H__
|
||||
|
||||
#include "ipmi_si.h"
|
||||
|
||||
/*
|
||||
* This is defined by the state machines themselves, it is an opaque
|
||||
@ -22,54 +25,6 @@
|
||||
*/
|
||||
struct si_sm_data;
|
||||
|
||||
enum si_type {
|
||||
SI_TYPE_INVALID, SI_KCS, SI_SMIC, SI_BT
|
||||
};
|
||||
|
||||
enum ipmi_addr_space {
|
||||
IPMI_IO_ADDR_SPACE, IPMI_MEM_ADDR_SPACE
|
||||
};
|
||||
|
||||
/*
|
||||
* The structure for doing I/O in the state machine. The state
|
||||
* machine doesn't have the actual I/O routines, they are done through
|
||||
* this interface.
|
||||
*/
|
||||
struct si_sm_io {
|
||||
unsigned char (*inputb)(const struct si_sm_io *io, unsigned int offset);
|
||||
void (*outputb)(const struct si_sm_io *io,
|
||||
unsigned int offset,
|
||||
unsigned char b);
|
||||
|
||||
/*
|
||||
* Generic info used by the actual handling routines, the
|
||||
* state machine shouldn't touch these.
|
||||
*/
|
||||
void __iomem *addr;
|
||||
unsigned int regspacing;
|
||||
unsigned int regsize;
|
||||
unsigned int regshift;
|
||||
enum ipmi_addr_space addr_space;
|
||||
unsigned long addr_data;
|
||||
enum ipmi_addr_src addr_source; /* ACPI, PCI, SMBIOS, hardcode, etc. */
|
||||
void (*addr_source_cleanup)(struct si_sm_io *io);
|
||||
void *addr_source_data;
|
||||
union ipmi_smi_info_union addr_info;
|
||||
|
||||
int (*io_setup)(struct si_sm_io *info);
|
||||
void (*io_cleanup)(struct si_sm_io *info);
|
||||
unsigned int io_size;
|
||||
|
||||
int irq;
|
||||
int (*irq_setup)(struct si_sm_io *io);
|
||||
void *irq_handler_data;
|
||||
void (*irq_cleanup)(struct si_sm_io *io);
|
||||
|
||||
u8 slave_addr;
|
||||
enum si_type si_type;
|
||||
struct device *dev;
|
||||
};
|
||||
|
||||
/* Results of SMI events. */
|
||||
enum si_sm_result {
|
||||
SI_SM_CALL_WITHOUT_DELAY, /* Call the driver again immediately */
|
||||
@ -146,3 +101,4 @@ extern const struct si_sm_handlers kcs_smi_handlers;
|
||||
extern const struct si_sm_handlers smic_smi_handlers;
|
||||
extern const struct si_sm_handlers bt_smi_handlers;
|
||||
|
||||
#endif /* __IPMI_SI_SM_H__ */
|
||||
|
@ -52,7 +52,6 @@
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/time64.h>
|
||||
#include "ipmi_si_sm.h"
|
||||
#include "ipmi_dmi.h"
|
||||
|
||||
#define DEVICE_NAME "ipmi_ssif"
|
||||
|
Loading…
Reference in New Issue
Block a user