aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJiri Slaby2006-12-08 02:38:27 -0800
committerLinus Torvalds2006-12-08 08:28:54 -0800
commiteae4436a4e513f5f912dcc5dac79038f22fb6403 (patch)
tree32f06f9f85f82446cd2e62df6542b2c2e54c115b /drivers
parentead568c9cdab2592abdbd1f023931665cc24b5db (diff)
[PATCH] Char: mxser_new, compress isa finding
ISA cards finding was too complex -- 2 (module params + predefined) absolutely same routines, join them together with one for loop, one if and one indent level. Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/mxser_new.c109
1 files changed, 40 insertions, 69 deletions
diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
index 47af0bba5240..27871e503d80 100644
--- a/drivers/char/mxser_new.c
+++ b/drivers/char/mxser_new.c
@@ -2803,7 +2803,8 @@ static int __init mxser_module_init(void)
{
struct pci_dev *pdev = NULL;
struct mxser_board *brd;
- unsigned int i, m;
+ unsigned long cap;
+ unsigned int i, m, isaloop;
int retval, b, n;
pr_debug("Loading module mxser ...\n");
@@ -2839,84 +2840,54 @@ static int __init mxser_module_init(void)
m = 0;
/* Start finding ISA boards here */
- for (b = 0; b < MXSER_BOARDS && m < MXSER_BOARDS; b++) {
- int cap;
-
- if (!(cap = mxserBoardCAP[b]))
- continue;
-
- brd = &mxser_boards[m];
- retval = mxser_get_ISA_conf(cap, brd);
-
- if (retval != 0)
- printk(KERN_INFO "Found MOXA %s board (CAP=0x%x)\n",
- mxser_brdname[brd->board_type - 1], ioaddr[b]);
-
- if (retval <= 0) {
- if (retval == MXSER_ERR_IRQ)
- printk(KERN_ERR "Invalid interrupt number, "
- "board not configured\n");
- else if (retval == MXSER_ERR_IRQ_CONFLIT)
- printk(KERN_ERR "Invalid interrupt number, "
- "board not configured\n");
- else if (retval == MXSER_ERR_VECTOR)
- printk(KERN_ERR "Invalid interrupt vector, "
- "board not configured\n");
- else if (retval == MXSER_ERR_IOADDR)
- printk(KERN_ERR "Invalid I/O address, "
- "board not configured\n");
+ for (isaloop = 0; isaloop < 2; isaloop++)
+ for (b = 0; b < MXSER_BOARDS && m < MXSER_BOARDS; b++) {
+ if (!isaloop)
+ cap = mxserBoardCAP[b]; /* predefined */
+ else
+ cap = ioaddr[b]; /* module param */
- continue;
- }
+ if (!cap)
+ continue;
- brd->pdev = NULL;
+ brd = &mxser_boards[m];
+ retval = mxser_get_ISA_conf(cap, brd);
- /* mxser_initbrd will hook ISR. */
- if (mxser_initbrd(brd) < 0)
- continue;
+ if (retval != 0)
+ printk(KERN_INFO "Found MOXA %s board "
+ "(CAP=0x%x)\n",
+ mxser_brdname[brd->board_type - 1],
+ ioaddr[b]);
- m++;
- }
+ if (retval <= 0) {
+ if (retval == MXSER_ERR_IRQ)
+ printk(KERN_ERR "Invalid interrupt "
+ "number, board not "
+ "configured\n");
+ else if (retval == MXSER_ERR_IRQ_CONFLIT)
+ printk(KERN_ERR "Invalid interrupt "
+ "number, board not "
+ "configured\n");
+ else if (retval == MXSER_ERR_VECTOR)
+ printk(KERN_ERR "Invalid interrupt "
+ "vector, board not "
+ "configured\n");
+ else if (retval == MXSER_ERR_IOADDR)
+ printk(KERN_ERR "Invalid I/O address, "
+ "board not configured\n");
- /* Start finding ISA boards from module arg */
- for (b = 0; b < MXSER_BOARDS && m < MXSER_BOARDS; b++) {
- unsigned long cap;
+ continue;
+ }
- if (!(cap = ioaddr[b]))
- continue;
+ brd->pdev = NULL;
- brd = &mxser_boards[m];
- retval = mxser_get_ISA_conf(cap, &mxser_boards[m]);
-
- if (retval != 0)
- printk(KERN_INFO "Found MOXA %s board (CAP=0x%x)\n",
- mxser_brdname[brd->board_type - 1], ioaddr[b]);
-
- if (retval <= 0) {
- if (retval == MXSER_ERR_IRQ)
- printk(KERN_ERR "Invalid interrupt number, "
- "board not configured\n");
- else if (retval == MXSER_ERR_IRQ_CONFLIT)
- printk(KERN_ERR "Invalid interrupt number, "
- "board not configured\n");
- else if (retval == MXSER_ERR_VECTOR)
- printk(KERN_ERR "Invalid interrupt vector, "
- "board not configured\n");
- else if (retval == MXSER_ERR_IOADDR)
- printk(KERN_ERR "Invalid I/O address, "
- "board not configured\n");
+ /* mxser_initbrd will hook ISR. */
+ if (mxser_initbrd(brd) < 0)
+ continue;
- continue;
+ m++;
}
- brd->pdev = NULL;
- /* mxser_initbrd will hook ISR. */
- if (mxser_initbrd(brd) < 0)
- continue;
-
- m++;
- }
-
/* start finding PCI board here */
n = ARRAY_SIZE(mxser_pcibrds) - 1;
b = 0;