Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / i2c / busses / i2c-prosavage.c
index 0aabe49..9479525 100644 (file)
@@ -54,7 +54,6 @@
  *    (Additional documentation needed :(
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/pci.h>
@@ -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;
@@ -228,7 +215,7 @@ static void prosavage_remove(struct pci_dev *dev)
 
                ret = i2c_bit_del_bus(&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 +236,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 +283,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 +298,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 +309,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)