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