Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[pandora-kernel.git] / drivers / i2c / busses / i2c-parport.c
index fa50618..48a8294 100644 (file)
@@ -138,7 +138,6 @@ static struct i2c_algo_bit_data parport_algo_data = {
        .getsda         = parport_getsda,
        .getscl         = parport_getscl,
        .udelay         = 60,
-       .mdelay         = 60,
        .timeout        = HZ,
 }; 
 
@@ -155,12 +154,11 @@ static void i2c_parport_attach (struct parport *port)
 {
        struct i2c_par *adapter;
        
-       adapter = kmalloc(sizeof(struct i2c_par), GFP_KERNEL);
+       adapter = kzalloc(sizeof(struct i2c_par), GFP_KERNEL);
        if (adapter == NULL) {
-               printk(KERN_ERR "i2c-parport: Failed to kmalloc\n");
+               printk(KERN_ERR "i2c-parport: Failed to kzalloc\n");
                return;
        }
-       memset(adapter, 0x00, sizeof(struct i2c_par));
 
        pr_debug("i2c-parport: attaching to %s\n", port->name);
        adapter->pdev = parport_register_device(port, "i2c-parport",
@@ -242,14 +240,16 @@ static struct parport_driver i2c_parport_driver = {
 
 static int __init i2c_parport_init(void)
 {
-       int type_count;
+       if (type < 0) {
+               printk(KERN_WARNING "i2c-parport: adapter type unspecified\n");
+               return -ENODEV;
+       }
 
-       type_count = sizeof(adapter_parm)/sizeof(struct adapter_parm);
-       if (type < 0 || type >= type_count) {
+       if (type >= ARRAY_SIZE(adapter_parm)) {
                printk(KERN_WARNING "i2c-parport: invalid type (%d)\n", type);
-               type = 0;
+               return -ENODEV;
        }
-       
+
        return parport_register_driver(&i2c_parport_driver);
 }