staging: dgnc: move functions unrelated with dgnc_found_board()
The functions related with tty device initialization are needed to be moved from dgnc_found_board() to dgnc_init_one(). Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
467132b029
commit
f20ae478ff
|
@ -38,7 +38,7 @@ MODULE_SUPPORTED_DEVICE("dgnc");
|
|||
*/
|
||||
static int dgnc_start(void);
|
||||
static int dgnc_finalize_board_init(struct dgnc_board *brd);
|
||||
static int dgnc_found_board(struct pci_dev *pdev, int id);
|
||||
static struct dgnc_board *dgnc_found_board(struct pci_dev *pdev, int id);
|
||||
static void dgnc_cleanup_board(struct dgnc_board *brd);
|
||||
static void dgnc_poll_handler(ulong dummy);
|
||||
static int dgnc_init_one(struct pci_dev *pdev,
|
||||
|
@ -274,6 +274,7 @@ failed_class:
|
|||
static int dgnc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
{
|
||||
int rc;
|
||||
struct dgnc_board *brd;
|
||||
|
||||
/* wake up and enable device */
|
||||
rc = pci_enable_device(pdev);
|
||||
|
@ -281,9 +282,43 @@ static int dgnc_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
if (rc)
|
||||
return -EIO;
|
||||
|
||||
rc = dgnc_found_board(pdev, ent->driver_data);
|
||||
if (rc == 0)
|
||||
dgnc_num_boards++;
|
||||
brd = dgnc_found_board(pdev, ent->driver_data);
|
||||
if (IS_ERR(brd))
|
||||
return PTR_ERR(brd);
|
||||
|
||||
/*
|
||||
* Do tty device initialization.
|
||||
*/
|
||||
|
||||
rc = dgnc_tty_register(brd);
|
||||
if (rc < 0) {
|
||||
pr_err(DRVSTR ": Can't register tty devices (%d)\n", rc);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
rc = dgnc_finalize_board_init(brd);
|
||||
if (rc < 0) {
|
||||
pr_err(DRVSTR ": Can't finalize board init (%d)\n", rc);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
rc = dgnc_tty_init(brd);
|
||||
if (rc < 0) {
|
||||
pr_err(DRVSTR ": Can't init tty devices (%d)\n", rc);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
brd->state = BOARD_READY;
|
||||
brd->dpastatus = BD_RUNNING;
|
||||
|
||||
dgnc_create_ports_sysfiles(brd);
|
||||
|
||||
dgnc_board[dgnc_num_boards++] = brd;
|
||||
|
||||
return 0;
|
||||
|
||||
failed:
|
||||
kfree(brd);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -345,7 +380,7 @@ static void dgnc_cleanup_board(struct dgnc_board *brd)
|
|||
*
|
||||
* A board has been found, init it.
|
||||
*/
|
||||
static int dgnc_found_board(struct pci_dev *pdev, int id)
|
||||
static struct dgnc_board *dgnc_found_board(struct pci_dev *pdev, int id)
|
||||
{
|
||||
struct dgnc_board *brd;
|
||||
unsigned int pci_irq;
|
||||
|
@ -355,7 +390,7 @@ static int dgnc_found_board(struct pci_dev *pdev, int id)
|
|||
/* get the board structure and prep it */
|
||||
brd = kzalloc(sizeof(*brd), GFP_KERNEL);
|
||||
if (!brd)
|
||||
return -ENOMEM;
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
/* store the info for the board we've found */
|
||||
brd->magic = DGNC_BOARD_MAGIC;
|
||||
|
@ -505,33 +540,6 @@ static int dgnc_found_board(struct pci_dev *pdev, int id)
|
|||
goto failed;
|
||||
}
|
||||
|
||||
/*
|
||||
* Do tty device initialization.
|
||||
*/
|
||||
|
||||
rc = dgnc_tty_register(brd);
|
||||
if (rc < 0) {
|
||||
pr_err(DRVSTR ": Can't register tty devices (%d)\n", rc);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
rc = dgnc_finalize_board_init(brd);
|
||||
if (rc < 0) {
|
||||
pr_err(DRVSTR ": Can't finalize board init (%d)\n", rc);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
rc = dgnc_tty_init(brd);
|
||||
if (rc < 0) {
|
||||
pr_err(DRVSTR ": Can't init tty devices (%d)\n", rc);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
brd->state = BOARD_READY;
|
||||
brd->dpastatus = BD_RUNNING;
|
||||
|
||||
dgnc_create_ports_sysfiles(brd);
|
||||
|
||||
/* init our poll helper tasklet */
|
||||
tasklet_init(&brd->helper_tasklet,
|
||||
brd->bd_ops->tasklet,
|
||||
|
@ -539,15 +547,12 @@ static int dgnc_found_board(struct pci_dev *pdev, int id)
|
|||
|
||||
wake_up_interruptible(&brd->state_wait);
|
||||
|
||||
dgnc_board[dgnc_num_boards] = brd;
|
||||
|
||||
return 0;
|
||||
return brd;
|
||||
|
||||
failed:
|
||||
dgnc_tty_uninit(brd);
|
||||
kfree(brd);
|
||||
|
||||
return rc;
|
||||
return ERR_PTR(rc);
|
||||
}
|
||||
|
||||
static int dgnc_finalize_board_init(struct dgnc_board *brd)
|
||||
|
|
Loading…
Reference in New Issue