From 3ae5eaec1d2d9c0cf53745352e7d4b152810ba24 Mon Sep 17 00:00:00 2001 From: Russell King Date: Wed, 9 Nov 2005 22:32:44 +0000 Subject: [DRIVER MODEL] Convert platform drivers to use struct platform_driver This allows us to eliminate the casts in the drivers, and eventually remove the use of the device_driver function pointer methods for platform device drivers. Signed-off-by: Russell King Acked-by: Greg Kroah-Hartman --- drivers/input/keyboard/corgikbd.c | 29 +++++++++++++++-------------- drivers/input/keyboard/spitzkbd.c | 29 +++++++++++++++-------------- drivers/input/serio/i8042.c | 19 ++++++++++--------- drivers/input/serio/rpckbd.c | 21 +++++++++++---------- drivers/input/touchscreen/corgi_ts.c | 32 ++++++++++++++++---------------- 5 files changed, 67 insertions(+), 63 deletions(-) (limited to 'drivers/input') diff --git a/drivers/input/keyboard/corgikbd.c b/drivers/input/keyboard/corgikbd.c index d00d14bb637..64672d49122 100644 --- a/drivers/input/keyboard/corgikbd.c +++ b/drivers/input/keyboard/corgikbd.c @@ -259,17 +259,17 @@ static void corgikbd_hinge_timer(unsigned long data) } #ifdef CONFIG_PM -static int corgikbd_suspend(struct device *dev, pm_message_t state) +static int corgikbd_suspend(struct platform_device *dev, pm_message_t state) { - struct corgikbd *corgikbd = dev_get_drvdata(dev); + struct corgikbd *corgikbd = platform_get_drvdata(dev); corgikbd->suspended = 1; return 0; } -static int corgikbd_resume(struct device *dev) +static int corgikbd_resume(struct platform_device *dev) { - struct corgikbd *corgikbd = dev_get_drvdata(dev); + struct corgikbd *corgikbd = platform_get_drvdata(dev); /* Upon resume, ignore the suspend key for a short while */ corgikbd->suspend_jiffies=jiffies; @@ -282,7 +282,7 @@ static int corgikbd_resume(struct device *dev) #define corgikbd_resume NULL #endif -static int __init corgikbd_probe(struct device *dev) +static int __init corgikbd_probe(struct platform_device *pdev) { struct corgikbd *corgikbd; struct input_dev *input_dev; @@ -296,7 +296,7 @@ static int __init corgikbd_probe(struct device *dev) return -ENOMEM; } - dev_set_drvdata(dev, corgikbd); + platform_set_drvdata(pdev, corgikbd); corgikbd->input = input_dev; spin_lock_init(&corgikbd->lock); @@ -321,7 +321,7 @@ static int __init corgikbd_probe(struct device *dev) input_dev->id.vendor = 0x0001; input_dev->id.product = 0x0001; input_dev->id.version = 0x0100; - input_dev->cdev.dev = dev; + input_dev->cdev.dev = &pdev->dev; input_dev->private = corgikbd; input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP) | BIT(EV_PWR) | BIT(EV_SW); @@ -356,10 +356,10 @@ static int __init corgikbd_probe(struct device *dev) return 0; } -static int corgikbd_remove(struct device *dev) +static int corgikbd_remove(struct platform_device *pdev) { int i; - struct corgikbd *corgikbd = dev_get_drvdata(dev); + struct corgikbd *corgikbd = platform_get_drvdata(pdev); for (i = 0; i < CORGI_KEY_SENSE_NUM; i++) free_irq(CORGI_IRQ_GPIO_KEY_SENSE(i), corgikbd); @@ -374,23 +374,24 @@ static int corgikbd_remove(struct device *dev) return 0; } -static struct device_driver corgikbd_driver = { - .name = "corgi-keyboard", - .bus = &platform_bus_type, +static struct platform_driver corgikbd_driver = { .probe = corgikbd_probe, .remove = corgikbd_remove, .suspend = corgikbd_suspend, .resume = corgikbd_resume, + .driver = { + .name = "corgi-keyboard", + }, }; static int __devinit corgikbd_init(void) { - return driver_register(&corgikbd_driver); + return platform_driver_register(&corgikbd_driver); } static void __exit corgikbd_exit(void) { - driver_unregister(&corgikbd_driver); + platform_driver_unregister(&corgikbd_driver); } module_init(corgikbd_init); diff --git a/drivers/input/keyboard/spitzkbd.c b/drivers/input/keyboard/spitzkbd.c index 0fa38a559cd..6a15fe3bc52 100644 --- a/drivers/input/keyboard/spitzkbd.c +++ b/drivers/input/keyboard/spitzkbd.c @@ -309,10 +309,10 @@ static void spitzkbd_hinge_timer(unsigned long data) } #ifdef CONFIG_PM -static int spitzkbd_suspend(struct device *dev, pm_message_t state) +static int spitzkbd_suspend(struct platform_device *dev, pm_message_t state) { int i; - struct spitzkbd *spitzkbd = dev_get_drvdata(dev); + struct spitzkbd *spitzkbd = platform_get_drvdata(dev); spitzkbd->suspended = 1; /* Set Strobe lines as inputs - *except* strobe line 0 leave this @@ -323,10 +323,10 @@ static int spitzkbd_suspend(struct device *dev, pm_message_t state) return 0; } -static int spitzkbd_resume(struct device *dev) +static int spitzkbd_resume(struct platform_device *dev) { int i; - struct spitzkbd *spitzkbd = dev_get_drvdata(dev); + struct spitzkbd *spitzkbd = platform_get_drvdata(dev); for (i = 0; i < SPITZ_KEY_STROBE_NUM; i++) pxa_gpio_mode(spitz_strobes[i] | GPIO_OUT | GPIO_DFLT_HIGH); @@ -342,7 +342,7 @@ static int spitzkbd_resume(struct device *dev) #define spitzkbd_resume NULL #endif -static int __init spitzkbd_probe(struct device *dev) +static int __init spitzkbd_probe(struct platform_device *dev) { struct spitzkbd *spitzkbd; struct input_dev *input_dev; @@ -358,7 +358,7 @@ static int __init spitzkbd_probe(struct device *dev) return -ENOMEM; } - dev_set_drvdata(dev, spitzkbd); + platform_set_drvdata(dev, spitzkbd); strcpy(spitzkbd->phys, "spitzkbd/input0"); spin_lock_init(&spitzkbd->lock); @@ -380,7 +380,7 @@ static int __init spitzkbd_probe(struct device *dev) input_dev->private = spitzkbd; input_dev->name = "Spitz Keyboard"; input_dev->phys = spitzkbd->phys; - input_dev->cdev.dev = dev; + input_dev->cdev.dev = &dev->dev; input_dev->id.bustype = BUS_HOST; input_dev->id.vendor = 0x0001; @@ -437,10 +437,10 @@ static int __init spitzkbd_probe(struct device *dev) return 0; } -static int spitzkbd_remove(struct device *dev) +static int spitzkbd_remove(struct platform_device *dev) { int i; - struct spitzkbd *spitzkbd = dev_get_drvdata(dev); + struct spitzkbd *spitzkbd = platform_get_drvdata(dev); for (i = 0; i < SPITZ_KEY_SENSE_NUM; i++) free_irq(IRQ_GPIO(spitz_senses[i]), spitzkbd); @@ -460,23 +460,24 @@ static int spitzkbd_remove(struct device *dev) return 0; } -static struct device_driver spitzkbd_driver = { - .name = "spitz-keyboard", - .bus = &platform_bus_type, +static struct platform_driver spitzkbd_driver = { .probe = spitzkbd_probe, .remove = spitzkbd_remove, .suspend = spitzkbd_suspend, .resume = spitzkbd_resume, + .driver = { + .name = "spitz-keyboard", + }, }; static int __devinit spitzkbd_init(void) { - return driver_register(&spitzkbd_driver); + return platform_driver_register(&spitzkbd_driver); } static void __exit spitzkbd_exit(void) { - driver_unregister(&spitzkbd_driver); + platform_driver_unregister(&spitzkbd_driver); } module_init(spitzkbd_init); diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 01e18642202..ac86c1d1d83 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c @@ -912,7 +912,7 @@ static long i8042_panic_blink(long count) * Here we try to restore the original BIOS settings */ -static int i8042_suspend(struct device *dev, pm_message_t state) +static int i8042_suspend(struct platform_device *dev, pm_message_t state) { del_timer_sync(&i8042_timer); i8042_controller_reset(); @@ -925,7 +925,7 @@ static int i8042_suspend(struct device *dev, pm_message_t state) * Here we try to reset everything back to a state in which suspended */ -static int i8042_resume(struct device *dev) +static int i8042_resume(struct platform_device *dev) { int i; @@ -964,17 +964,18 @@ static int i8042_resume(struct device *dev) * because otherwise BIOSes will be confused. */ -static void i8042_shutdown(struct device *dev) +static void i8042_shutdown(struct platform_device *dev) { i8042_controller_cleanup(); } -static struct device_driver i8042_driver = { - .name = "i8042", - .bus = &platform_bus_type, +static struct platform_driver i8042_driver = { .suspend = i8042_suspend, .resume = i8042_resume, .shutdown = i8042_shutdown, + .driver = { + .name = "i8042", + }, }; static int __init i8042_create_kbd_port(void) @@ -1078,7 +1079,7 @@ static int __init i8042_init(void) goto err_platform_exit; } - err = driver_register(&i8042_driver); + err = platform_driver_register(&i8042_driver); if (err) goto err_controller_cleanup; @@ -1126,7 +1127,7 @@ static int __init i8042_init(void) err_unregister_device: platform_device_unregister(i8042_platform_device); err_unregister_driver: - driver_unregister(&i8042_driver); + platform_driver_unregister(&i8042_driver); err_controller_cleanup: i8042_controller_cleanup(); err_platform_exit: @@ -1148,7 +1149,7 @@ static void __exit i8042_exit(void) del_timer_sync(&i8042_timer); platform_device_unregister(i8042_platform_device); - driver_unregister(&i8042_driver); + platform_driver_unregister(&i8042_driver); i8042_platform_exit(); diff --git a/drivers/input/serio/rpckbd.c b/drivers/input/serio/rpckbd.c index 52c49258f8a..a3bd11589bc 100644 --- a/drivers/input/serio/rpckbd.c +++ b/drivers/input/serio/rpckbd.c @@ -107,7 +107,7 @@ static void rpckbd_close(struct serio *port) * Allocate and initialize serio structure for subsequent registration * with serio core. */ -static int __devinit rpckbd_probe(struct device *dev) +static int __devinit rpckbd_probe(struct platform_device *dev) { struct serio *serio; @@ -120,37 +120,38 @@ static int __devinit rpckbd_probe(struct device *dev) serio->write = rpckbd_write; serio->open = rpckbd_open; serio->close = rpckbd_close; - serio->dev.parent = dev; + serio->dev.parent = &dev->dev; strlcpy(serio->name, "RiscPC PS/2 kbd port", sizeof(serio->name)); strlcpy(serio->phys, "rpckbd/serio0", sizeof(serio->phys)); - dev_set_drvdata(dev, serio); + platform_set_drvdata(dev, serio); serio_register_port(serio); return 0; } -static int __devexit rpckbd_remove(struct device *dev) +static int __devexit rpckbd_remove(struct platform_device *dev) { - struct serio *serio = dev_get_drvdata(dev); + struct serio *serio = platform_get_drvdata(dev); serio_unregister_port(serio); return 0; } -static struct device_driver rpckbd_driver = { - .name = "kart", - .bus = &platform_bus_type, +static struct platform_driver rpckbd_driver = { .probe = rpckbd_probe, .remove = __devexit_p(rpckbd_remove), + .driver = { + .name = "kart", + }, }; static int __init rpckbd_init(void) { - return driver_register(&rpckbd_driver); + return platform_driver_register(&rpckbd_driver); } static void __exit rpckbd_exit(void) { - driver_unregister(&rpckbd_driver); + platform_driver_unregister(&rpckbd_driver); } module_init(rpckbd_init); diff --git a/drivers/input/touchscreen/corgi_ts.c b/drivers/input/touchscreen/corgi_ts.c index 15e88eeae8d..1042987856f 100644 --- a/drivers/input/touchscreen/corgi_ts.c +++ b/drivers/input/touchscreen/corgi_ts.c @@ -231,9 +231,9 @@ static irqreturn_t ts_interrupt(int irq, void *dev_id, struct pt_regs *regs) } #ifdef CONFIG_PM -static int corgits_suspend(struct device *dev, pm_message_t state) +static int corgits_suspend(struct platform_device *dev, pm_message_t state) { - struct corgi_ts *corgi_ts = dev_get_drvdata(dev); + struct corgi_ts *corgi_ts = platform_get_drvdata(dev); if (corgi_ts->pendown) { del_timer_sync(&corgi_ts->timer); @@ -248,9 +248,9 @@ static int corgits_suspend(struct device *dev, pm_message_t state) return 0; } -static int corgits_resume(struct device *dev) +static int corgits_resume(struct platform_device *dev) { - struct corgi_ts *corgi_ts = dev_get_drvdata(dev); + struct corgi_ts *corgi_ts = platform_get_drvdata(dev); corgi_ssp_ads7846_putget((4u << ADSCTRL_ADR_SH) | ADSCTRL_STS); /* Enable Falling Edge */ @@ -264,10 +264,9 @@ static int corgits_resume(struct device *dev) #define corgits_resume NULL #endif -static int __init corgits_probe(struct device *dev) +static int __init corgits_probe(struct platform_device *pdev) { struct corgi_ts *corgi_ts; - struct platform_device *pdev = to_platform_device(dev); struct input_dev *input_dev; int err = -ENOMEM; @@ -276,9 +275,9 @@ static int __init corgits_probe(struct device *dev) if (!corgi_ts || !input_dev) goto fail; - dev_set_drvdata(dev, corgi_ts); + platform_set_drvdata(pdev, corgi_ts); - corgi_ts->machinfo = dev->platform_data; + corgi_ts->machinfo = pdev->dev.platform_data; corgi_ts->irq_gpio = platform_get_irq(pdev, 0); if (corgi_ts->irq_gpio < 0) { @@ -298,7 +297,7 @@ static int __init corgits_probe(struct device *dev) input_dev->id.vendor = 0x0001; input_dev->id.product = 0x0002; input_dev->id.version = 0x0100; - input_dev->cdev.dev = dev; + input_dev->cdev.dev = &pdev->dev; input_dev->private = corgi_ts; input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); @@ -339,9 +338,9 @@ static int __init corgits_probe(struct device *dev) } -static int corgits_remove(struct device *dev) +static int corgits_remove(struct platform_device *pdev) { - struct corgi_ts *corgi_ts = dev_get_drvdata(dev); + struct corgi_ts *corgi_ts = platform_get_drvdata(pdev); free_irq(corgi_ts->irq_gpio, NULL); del_timer_sync(&corgi_ts->timer); @@ -351,23 +350,24 @@ static int corgits_remove(struct device *dev) return 0; } -static struct device_driver corgits_driver = { - .name = "corgi-ts", - .bus = &platform_bus_type, +static struct platform_driver corgits_driver = { .probe = corgits_probe, .remove = corgits_remove, .suspend = corgits_suspend, .resume = corgits_resume, + .driver = { + .name = "corgi-ts", + }, }; static int __devinit corgits_init(void) { - return driver_register(&corgits_driver); + return platform_driver_register(&corgits_driver); } static void __exit corgits_exit(void) { - driver_unregister(&corgits_driver); + platform_driver_unregister(&corgits_driver); } module_init(corgits_init); -- cgit v1.2.3