#include <linux/module.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/stddef.h>
#include <linux/ioport.h>
#include <linux/i2c.h>
#include <linux/acpi.h>
#include <linux/io.h>
#define SMB_ADDR_OFFSET …
#define SMB_IOSIZE …
#define SMB_GLOBAL_STATUS …
#define SMB_GLOBAL_ENABLE …
#define SMB_HOST_ADDRESS …
#define SMB_HOST_DATA …
#define SMB_HOST_COMMAND …
#define SMB_HOST_BLOCK_DATA …
#define SMB_HAS_DATA …
#define SMB_HAS_DEVICE_ADDRESS …
#define SMB_HAS_HOST_ADDRESS …
#define SMB_SNOOP_ADDRESS …
#define SMBBA …
#define SMBBANFORCE …
#define SMBGCFG …
#define SMBREV …
#define MAX_TIMEOUT …
#define AMD756_QUICK …
#define AMD756_BYTE …
#define AMD756_BYTE_DATA …
#define AMD756_WORD_DATA …
#define AMD756_PROCESS_CALL …
#define AMD756_BLOCK_DATA …
static struct pci_driver amd756_driver;
static unsigned short amd756_ioport;
#define GS_ABRT_STS …
#define GS_COL_STS …
#define GS_PRERR_STS …
#define GS_HST_STS …
#define GS_HCYC_STS …
#define GS_TO_STS …
#define GS_SMB_STS …
#define GS_CLEAR_STS …
#define GE_CYC_TYPE_MASK …
#define GE_HOST_STC …
#define GE_ABORT …
static int amd756_transaction(struct i2c_adapter *adap)
{ … }
static s32 amd756_access(struct i2c_adapter * adap, u16 addr,
unsigned short flags, char read_write,
u8 command, int size, union i2c_smbus_data * data)
{ … }
static u32 amd756_func(struct i2c_adapter *adapter)
{ … }
static const struct i2c_algorithm smbus_algorithm = …;
struct i2c_adapter amd756_smbus = …;
enum chiptype { … };
static const char* chipname[] = …;
static const struct pci_device_id amd756_ids[] = …;
MODULE_DEVICE_TABLE (pci, amd756_ids);
static int amd756_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{ … }
static void amd756_remove(struct pci_dev *dev)
{ … }
static struct pci_driver amd756_driver = …;
module_pci_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
EXPORT_SYMBOL(…);