2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-21 11:44:01 +08:00

Input: i8042 - use platfrom_create_bundle() helper

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
Dmitry Torokhov 2010-03-08 22:37:09 -08:00
parent ce67eef6a1
commit ec62e1c8dd

View File

@ -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)
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)
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 = {
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)
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;
} }