Update of /cvsroot/alsa/alsa-driver/support/pnp
In directory sc8-pr-cvs1:/tmp/cvs-serv32166

Modified Files:
        pnp.c 
Log Message:
more clean ups and potential bugfix.





Index: pnp.c
===================================================================
RCS file: /cvsroot/alsa/alsa-driver/support/pnp/pnp.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- pnp.c       16 Oct 2003 11:54:04 -0000      1.14
+++ pnp.c       17 Oct 2003 15:45:02 -0000      1.15
@@ -186,36 +186,37 @@
                                ninst->devs[i] = NULL;
                        for (i = 0; i < PNP_MAX_DEVICES && cid->devs[i].id[0] != '\0'; 
i++) {
                                if (parse_id(cid->devs[i].id, &subvendor, &subdevice) 
< 0)
-                                       goto __next_card;
+                                       goto __next_id;
                                dev = ninst->devs[i] = (struct pnp_dev 
*)isapnp_find_dev((struct isapnp_card *)card, subvendor, subdevice, NULL);
                                if (dev == NULL)
-                                       break;
+                                       goto __next_card;
                        }
-                       if (i == PNP_MAX_DEVICES || !cid->devs[i].id[0]) {
-                               /* all parsed successfully */
-                               /* activate or deactivate devices before probing */
-                               for (i = 0; i < PNP_MAX_DEVICES; i++) {
-                                       dev = ninst->devs[i];
-                                       if (! dev)
-                                               break;
-                                       if ((drv->flags & PNP_DRIVER_RES_DISABLE) != 
PNP_DRIVER_RES_DISABLE)
-                                               dev->p.activate((struct isapnp_dev 
*)dev);
-                                       else {
-                                               dev->p.deactivate((struct isapnp_dev 
*)dev);
-                                               dev->p.prepare((struct isapnp_dev 
*)dev);
-                                       }
-                               }
-                               ninst->link.card = card;
-                               ninst->link.driver = drv;
-                               ninst->link.driver_data = NULL;
-                               if (drv->probe(&ninst->link, cid) >= 0) {
-                                       list_add_tail(&ninst->list, &pnp_card_drivers);
-                                       ninst = NULL;
-                                       res++;
+
+                       /* all parsed successfully */
+                       /* activate or deactivate devices before probing */
+                       for (i = 0; i < PNP_MAX_DEVICES; i++) {
+                               dev = ninst->devs[i];
+                               if (! dev)
+                                       break;
+                               if (! drv->flags)
+                                       dev->p.activate((struct isapnp_dev *)dev);
+                               else if (drv->flags != PNP_DRIVER_RES_DO_NOT_CHANGE) {
+                                       dev->p.deactivate((struct isapnp_dev *)dev);
+                                       dev->p.prepare((struct isapnp_dev *)dev);
                                }
                        }
+                       ninst->link.card = card;
+                       ninst->link.driver = drv;
+                       ninst->link.driver_data = NULL;
+                       if (drv->probe(&ninst->link, cid) >= 0) {
+                               list_add_tail(&ninst->list, &pnp_card_drivers);
+                               ninst = NULL;
+                               res++;
+                       }
+               __next_card:
+                       ;
                }
-       __next_card:
+       __next_id:
                ;
        }
 



-------------------------------------------------------
This SF.net email sponsored by: Enterprise Linux Forum Conference & Expo
The Event For Linux Datacenter Solutions & Strategies in The Enterprise 
Linux in the Boardroom; in the Front Office; & in the Server Room 
http://www.enterpriselinuxforum.com
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to