[PATCH] Char: mxser_new, compress isa finding
authorJiri Slaby <jirislaby@gmail.com>
Fri, 8 Dec 2006 10:38:27 +0000 (02:38 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:28:54 +0000 (08:28 -0800)
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>
drivers/char/mxser_new.c

index 47af0bb..27871e5 100644 (file)
@@ -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;