diff options
author | Dmitry Torokhov <dtor_core@ameritech.net> | 2006-01-13 22:06:43 (GMT) |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-01-13 22:06:43 (GMT) |
commit | 7493a314cb83797ce612a577475aacaedc553fed (patch) | |
tree | 69a0bf18e22927d86637a8afb655b76dfbecb06e /drivers/serial | |
parent | d600b97cf6ef8c24c9b87a4b7ce390c0d13684e8 (diff) | |
download | linux-7493a314cb83797ce612a577475aacaedc553fed.tar.xz |
[SERIAL] serial8250: convert to the new platform device interface
Do not use platform_device_register_simple() as it is going away.
Also set up driver's owner to create link driver->module in sysfs.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/8250.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index fb610c3..d9ce8c5 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -2454,6 +2454,7 @@ static struct platform_driver serial8250_isa_driver = { .resume = serial8250_resume, .driver = { .name = "serial8250", + .owner = THIS_MODULE, }, }; @@ -2594,21 +2595,30 @@ static int __init serial8250_init(void) if (ret) goto out; - serial8250_isa_devs = platform_device_register_simple("serial8250", - PLAT8250_DEV_LEGACY, NULL, 0); - if (IS_ERR(serial8250_isa_devs)) { - ret = PTR_ERR(serial8250_isa_devs); - goto unreg; + ret = platform_driver_register(&serial8250_isa_driver); + if (ret) + goto unreg_uart_drv; + + serial8250_isa_devs = platform_device_alloc("serial8250", + PLAT8250_DEV_LEGACY); + if (!serial8250_isa_devs) { + ret = -ENOMEM; + goto unreg_plat_drv; } + ret = platform_device_add(serial8250_isa_devs); + if (ret) + goto put_dev; + serial8250_register_ports(&serial8250_reg, &serial8250_isa_devs->dev); - ret = platform_driver_register(&serial8250_isa_driver); - if (ret == 0) - goto out; + goto out; - platform_device_unregister(serial8250_isa_devs); - unreg: + put_dev: + platform_device_put(serial8250_isa_devs); + unreg_plat_drv: + platform_driver_unregister(&serial8250_isa_driver); + unreg_uart_drv: uart_unregister_driver(&serial8250_reg); out: return ret; |