/* Reconnect gameport port and all its children (re-initialize attached devices)  */
static void gameport_reconnect_port(struct gameport *gameport)
/* Reconnect gameport port and all its children (re-initialize attached devices)  */
static void gameport_reconnect_port(struct gameport *gameport)
{
	do {
		if (!gameport->drv || !gameport->drv->reconnect || gameport->drv->reconnect(gameport)) {
			gameport_disconnect_port(gameport);
			gameport_find_driver(gameport);
			break;
		}
		gameport = gameport->child;
	} while (gameport);
}