@@ -2188,15 +2188,15 @@ static struct notifier_block panel_notifier = {
0
};
-static void panel_attach(struct parport *port)
+static int panel_attach(struct parport *port)
{
if (port->number != parport)
- return;
+ return -ENODEV;
if (pprt) {
pr_err("%s: port->number=%d parport=%d, already registered!\n",
__func__, port->number, parport);
- return;
+ return -EALREADY;
}
pprt = parport_register_device(port, "panel", NULL, NULL, /* pf, kf */
@@ -2206,7 +2206,7 @@ static void panel_attach(struct parport *port)
if (pprt == NULL) {
pr_err("%s: port->number=%d parport=%d, parport_register_device() failed\n",
__func__, port->number, parport);
- return;
+ return -ENODEV;
}
if (parport_claim(pprt)) {
@@ -2230,7 +2230,7 @@ static void panel_attach(struct parport *port)
goto err_lcd_unreg;
}
register_reboot_notifier(&panel_notifier);
- return;
+ return 0;
err_lcd_unreg:
if (lcd.enabled)
@@ -2238,6 +2238,7 @@ err_lcd_unreg:
err_unreg_device:
parport_unregister_device(pprt);
pprt = NULL;
+ return -ENODEV;
}
static void panel_detach(struct parport *port)
now that we are monitoring the return value from attach, make the required changes to return proper value from its attach function. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> --- drivers/staging/panel/panel.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)