Skip to content

Commit

Permalink
Input: gameport - fix attach driver code
Browse files Browse the repository at this point in the history
The commit 6902c0b 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>
  • Loading branch information
dtor committed Apr 15, 2009
1 parent d061ebd commit 4ced8e7
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions drivers/input/gameport/gameport.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down Expand Up @@ -230,7 +229,6 @@ static void gameport_find_driver(struct gameport *gameport)

enum gameport_event_type {
GAMEPORT_REGISTER_PORT,
GAMEPORT_REGISTER_DRIVER,
GAMEPORT_ATTACH_DRIVER,
};

Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -706,14 +704,14 @@ static int gameport_driver_remove(struct device *dev)
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);
}

Expand Down

0 comments on commit 4ced8e7

Please sign in to comment.