mempolicy: ERR_PTR dereference in mpol_shared_policy_init()
[safe/jmp/linux-2.6] / drivers / mfd / tps65010.c
index acf8b9d..e595530 100644 (file)
@@ -637,7 +637,7 @@ static int tps65010_probe(struct i2c_client *client,
                                tps, DEBUG_FOPS);
 
        /* optionally register GPIOs */
-       if (board && board->base > 0) {
+       if (board && board->base != 0) {
                tps->outmask = board->outmask;
 
                tps->chip.label = client->name;
@@ -964,6 +964,34 @@ int tps65010_config_vregs1(unsigned value)
 }
 EXPORT_SYMBOL(tps65010_config_vregs1);
 
+int tps65010_config_vdcdc2(unsigned value)
+{
+       struct i2c_client *c;
+       int      status;
+
+       if (!the_tps)
+               return -ENODEV;
+
+       c = the_tps->client;
+       mutex_lock(&the_tps->lock);
+
+       pr_debug("%s: vdcdc2 0x%02x\n", DRIVER_NAME,
+                i2c_smbus_read_byte_data(c, TPS_VDCDC2));
+
+       status = i2c_smbus_write_byte_data(c, TPS_VDCDC2, value);
+
+       if (status != 0)
+               printk(KERN_ERR "%s: Failed to write vdcdc2 register\n",
+                       DRIVER_NAME);
+       else
+               pr_debug("%s: vregs1 0x%02x\n", DRIVER_NAME,
+                        i2c_smbus_read_byte_data(c, TPS_VDCDC2));
+
+       mutex_unlock(&the_tps->lock);
+       return status;
+}
+EXPORT_SYMBOL(tps65010_config_vdcdc2);
+
 /*-------------------------------------------------------------------------*/
 /* tps65013_set_low_pwr parameter:
  * mode: ON or OFF