Commit ec62e1c8 authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: i8042 - use platfrom_create_bundle() helper

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent ce67eef6
...@@ -1386,6 +1386,8 @@ static int __init i8042_probe(struct platform_device *dev) ...@@ -1386,6 +1386,8 @@ static int __init i8042_probe(struct platform_device *dev)
{ {
int error; int error;
i8042_platform_device = dev;
error = i8042_controller_selftest(); error = i8042_controller_selftest();
if (error) if (error)
return error; return error;
...@@ -1421,6 +1423,7 @@ static int __init i8042_probe(struct platform_device *dev) ...@@ -1421,6 +1423,7 @@ static int __init i8042_probe(struct platform_device *dev)
i8042_free_aux_ports(); /* in case KBD failed but AUX not */ i8042_free_aux_ports(); /* in case KBD failed but AUX not */
i8042_free_irqs(); i8042_free_irqs();
i8042_controller_reset(); i8042_controller_reset();
i8042_platform_device = NULL;
return error; return error;
} }
...@@ -1430,6 +1433,7 @@ static int __devexit i8042_remove(struct platform_device *dev) ...@@ -1430,6 +1433,7 @@ static int __devexit i8042_remove(struct platform_device *dev)
i8042_unregister_ports(); i8042_unregister_ports();
i8042_free_irqs(); i8042_free_irqs();
i8042_controller_reset(); i8042_controller_reset();
i8042_platform_device = NULL;
return 0; return 0;
} }
...@@ -1448,6 +1452,7 @@ static struct platform_driver i8042_driver = { ...@@ -1448,6 +1452,7 @@ static struct platform_driver i8042_driver = {
static int __init i8042_init(void) static int __init i8042_init(void)
{ {
struct platform_device *pdev;
int err; int err;
dbg_init(); dbg_init();
...@@ -1460,31 +1465,18 @@ static int __init i8042_init(void) ...@@ -1460,31 +1465,18 @@ static int __init i8042_init(void)
if (err) if (err)
goto err_platform_exit; goto err_platform_exit;
i8042_platform_device = platform_device_alloc("i8042", -1); pdev = platform_create_bundle(&i8042_driver, i8042_probe, NULL, 0, NULL, 0);
if (!i8042_platform_device) { if (IS_ERR(pdev)) {
err = -ENOMEM; err = PTR_ERR(pdev);
goto err_platform_exit; goto err_platform_exit;
} }
err = platform_device_add(i8042_platform_device);
if (err)
goto err_free_device;
err = platform_driver_probe(&i8042_driver, i8042_probe);
if (err)
goto err_del_device;
panic_blink = i8042_panic_blink; panic_blink = i8042_panic_blink;
return 0; return 0;
err_del_device:
platform_device_del(i8042_platform_device);
err_free_device:
platform_device_put(i8042_platform_device);
err_platform_exit: err_platform_exit:
i8042_platform_exit(); i8042_platform_exit();
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment