X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fi2c%2Fbusses%2Fi2c-prosavage.c;h=07c1f1e27df10dc6c70421405f44465adfa55090;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=0aabe49e5571aeb4de85982ada40c9ad37f21a54;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/drivers/i2c/busses/i2c-prosavage.c b/drivers/i2c/busses/i2c-prosavage.c index 0aabe49e5..07c1f1e27 100644 --- a/drivers/i2c/busses/i2c-prosavage.c +++ b/drivers/i2c/busses/i2c-prosavage.c @@ -54,7 +54,6 @@ * (Additional documentation needed :( */ -#include #include #include #include @@ -68,7 +67,7 @@ #define MAX_BUSSES 2 struct s_i2c_bus { - void *mmvga; + void __iomem *mmvga; int i2c_reg; int adap_ok; struct i2c_adapter adap; @@ -76,7 +75,7 @@ struct s_i2c_bus { }; struct s_i2c_chip { - void *mmio; + void __iomem *mmio; struct s_i2c_bus i2c_bus[MAX_BUSSES]; }; @@ -84,11 +83,6 @@ struct s_i2c_chip { /* * i2c configuration */ -#ifndef I2C_HW_B_S3VIA -#define I2C_HW_B_S3VIA 0x18 /* S3VIA ProSavage adapter */ -#endif - -/* delays */ #define CYCLE_DELAY 10 #define TIMEOUT (HZ / 2) @@ -96,13 +90,6 @@ struct s_i2c_chip { /* * S3/VIA 8365/8375 registers */ -#ifndef PCI_DEVICE_ID_S3_SAVAGE4 -#define PCI_DEVICE_ID_S3_SAVAGE4 0x8a25 -#endif -#ifndef PCI_DEVICE_ID_S3_PROSAVAGE8 -#define PCI_DEVICE_ID_S3_PROSAVAGE8 0x8d04 -#endif - #define VGA_CR_IX 0x3d4 #define VGA_CR_DATA 0x3d5 @@ -181,7 +168,7 @@ static int bit_s3via_getsda(void *bus) /* * adapter initialisation */ -static int i2c_register_bus(struct pci_dev *dev, struct s_i2c_bus *p, u8 *mmvga, u32 i2c_reg) +static int i2c_register_bus(struct pci_dev *dev, struct s_i2c_bus *p, void __iomem *mmvga, u32 i2c_reg) { int ret; p->adap.owner = THIS_MODULE; @@ -193,7 +180,6 @@ static int i2c_register_bus(struct pci_dev *dev, struct s_i2c_bus *p, u8 *mmvga, p->algo.getsda = bit_s3via_getsda; p->algo.getscl = bit_s3via_getscl; p->algo.udelay = CYCLE_DELAY; - p->algo.mdelay = CYCLE_DELAY; p->algo.timeout = TIMEOUT; p->algo.data = p; p->mmvga = mmvga; @@ -226,9 +212,9 @@ static void prosavage_remove(struct pci_dev *dev) if (chip->i2c_bus[i].adap_ok == 0) continue; - ret = i2c_bit_del_bus(&chip->i2c_bus[i].adap); + ret = i2c_del_adapter(&chip->i2c_bus[i].adap); if (ret) { - dev_err(&dev->dev, ": %s not removed\n", + dev_err(&dev->dev, "%s not removed\n", chip->i2c_bus[i].adap.name); } } @@ -249,14 +235,12 @@ static int __devinit prosavage_probe(struct pci_dev *dev, const struct pci_devic struct s_i2c_chip *chip; struct s_i2c_bus *bus; - pci_set_drvdata(dev, kmalloc(sizeof(struct s_i2c_chip), GFP_KERNEL)); + pci_set_drvdata(dev, kzalloc(sizeof(struct s_i2c_chip), GFP_KERNEL)); chip = (struct s_i2c_chip *)pci_get_drvdata(dev); if (chip == NULL) { return -ENOMEM; } - memset(chip, 0, sizeof(struct s_i2c_chip)); - base = dev->resource[0].start & PCI_BASE_ADDRESS_MEM_MASK; len = dev->resource[0].end - base + 1; chip->mmio = ioremap_nocache(base, len); @@ -298,7 +282,7 @@ static int __devinit prosavage_probe(struct pci_dev *dev, const struct pci_devic } return 0; err_adap: - dev_err(&dev->dev, ": %s failed\n", bus->adap.name); + dev_err(&dev->dev, "%s failed\n", bus->adap.name); prosavage_remove(dev); return ret; } @@ -313,8 +297,10 @@ static struct pci_device_id prosavage_pci_tbl[] = { { 0, }, }; +MODULE_DEVICE_TABLE (pci, prosavage_pci_tbl); + static struct pci_driver prosavage_driver = { - .name = "prosavage-smbus", + .name = "prosavage_smbus", .id_table = prosavage_pci_tbl, .probe = prosavage_probe, .remove = prosavage_remove, @@ -322,7 +308,7 @@ static struct pci_driver prosavage_driver = { static int __init i2c_prosavage_init(void) { - return pci_module_init(&prosavage_driver); + return pci_register_driver(&prosavage_driver); } static void __exit i2c_prosavage_exit(void)