drm/radeon: Read buffer overflow
[safe/jmp/linux-2.6] / drivers / mfd / pcf50633-core.c
index 24508e2..8d3c38b 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/kernel.h>
 #include <linux/device.h>
 #include <linux/sysfs.h>
-#include <linux/device.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/interrupt.h>
@@ -444,7 +443,7 @@ static irqreturn_t pcf50633_irq(int irq, void *data)
        dev_dbg(pcf->dev, "pcf50633_irq\n");
 
        get_device(pcf->dev);
-       disable_irq(pcf->irq);
+       disable_irq_nosync(pcf->irq);
        schedule_work(&pcf->irq_work);
 
        return IRQ_HANDLED;
@@ -619,14 +618,13 @@ static int __devinit pcf50633_probe(struct i2c_client *client,
 
                pdev->dev.parent = pcf->dev;
                pdev->dev.platform_data = &pdata->reg_init_data[i];
-               pdev->dev.driver_data = pcf;
+               dev_set_drvdata(&pdev->dev, pcf);
                pcf->regulator_pdev[i] = pdev;
 
                platform_device_add(pdev);
        }
 
        if (client->irq) {
-               set_irq_handler(client->irq, handle_level_irq);
                ret = request_irq(client->irq, pcf50633_irq,
                                IRQF_TRIGGER_LOW, "pcf50633", pcf);
 
@@ -679,6 +677,7 @@ static int __devexit pcf50633_remove(struct i2c_client *client)
 
 static struct i2c_device_id pcf50633_id_table[] = {
        {"pcf50633", 0x73},
+       {/* end of list */}
 };
 
 static struct i2c_driver pcf50633_driver = {
@@ -706,5 +705,5 @@ MODULE_DESCRIPTION("I2C chip driver for NXP PCF50633 PMU");
 MODULE_AUTHOR("Harald Welte <laforge@openmoko.org>");
 MODULE_LICENSE("GPL");
 
-module_init(pcf50633_init);
+subsys_initcall(pcf50633_init);
 module_exit(pcf50633_exit);