| From 4ced8e7cb990a2c3bbf0ac7f27b35c890e7ce895 Mon Sep 17 00:00:00 2001 |
| Message-ID: <20090418225420.GB31557@dtor-d630.eng.vmware.com> |
| From: Dmitry Torokhov <dmitry.torokhov@gmail.com> |
| Date: Mon, 13 Apr 2009 15:27:49 -0700 |
| Subject: Input: gameport - fix attach driver code |
| |
| upstream commit: 4ced8e7cb990a2c3bbf0ac7f27b35c890e7ce895 |
| |
| The commit 6902c0bead4ce266226fc0c5b3828b850bdc884a that moved |
| driver registration out of kgameportd thread was incomplete and |
| did not add the code necessary to actually attach driver to |
| already registered devices, rectify that. |
| |
| Signed-off-by: Dmitry Torokhov <dtor@mail.ru> |
| Signed-off-by: Chris Wright <chrisw@sous-sol.org> |
| --- |
| drivers/input/gameport/gameport.c | 14 ++++++-------- |
| 1 file changed, 6 insertions(+), 8 deletions(-) |
| |
| --- a/drivers/input/gameport/gameport.c |
| +++ b/drivers/input/gameport/gameport.c |
| @@ -50,9 +50,8 @@ static LIST_HEAD(gameport_list); |
| |
| static struct bus_type gameport_bus; |
| |
| -static void gameport_add_driver(struct gameport_driver *drv); |
| static void gameport_add_port(struct gameport *gameport); |
| -static void gameport_destroy_port(struct gameport *gameport); |
| +static void gameport_attach_driver(struct gameport_driver *drv); |
| static void gameport_reconnect_port(struct gameport *gameport); |
| static void gameport_disconnect_port(struct gameport *gameport); |
| |
| @@ -230,7 +229,6 @@ static void gameport_find_driver(struct |
| |
| enum gameport_event_type { |
| GAMEPORT_REGISTER_PORT, |
| - GAMEPORT_REGISTER_DRIVER, |
| GAMEPORT_ATTACH_DRIVER, |
| }; |
| |
| @@ -374,8 +372,8 @@ static void gameport_handle_event(void) |
| gameport_add_port(event->object); |
| break; |
| |
| - case GAMEPORT_REGISTER_DRIVER: |
| - gameport_add_driver(event->object); |
| + case GAMEPORT_ATTACH_DRIVER: |
| + gameport_attach_driver(event->object); |
| break; |
| |
| default: |
| @@ -706,14 +704,14 @@ static int gameport_driver_remove(struct |
| return 0; |
| } |
| |
| -static void gameport_add_driver(struct gameport_driver *drv) |
| +static void gameport_attach_driver(struct gameport_driver *drv) |
| { |
| int error; |
| |
| - error = driver_register(&drv->driver); |
| + error = driver_attach(&drv->driver); |
| if (error) |
| printk(KERN_ERR |
| - "gameport: driver_register() failed for %s, error: %d\n", |
| + "gameport: driver_attach() failed for %s, error: %d\n", |
| drv->driver.name, error); |
| } |
| |