On Fri, Sep 28, 2012 at 02:42:18AM -0400, Brad Smith wrote: > On Wed, Sep 26, 2012 at 03:32:37PM -0400, Brad Smith wrote: > > Simplify the gem(4) variant detection code a bit. > > > > OK? > > How about this.. > > > Index: if_gem_pci.c > =================================================================== > RCS file: /home/cvs/src/sys/dev/pci/if_gem_pci.c,v > retrieving revision 1.32 > diff -u -p -r1.32 if_gem_pci.c > --- if_gem_pci.c 3 Apr 2011 15:36:02 -0000 1.32 > +++ if_gem_pci.c 28 Sep 2012 05:16:00 -0000 > @@ -227,22 +227,19 @@ gem_attach_pci(struct device *parent, st > > sc->sc_pci = 1; /* XXXXX should all be done in bus_dma. */ > > - if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_SUN_GEMNETWORK) > + switch (PCI_PRODUCT(pa->pa_id)) { > + case PCI_PRODUCT_SUN_GEMNETWORK: > sc->sc_variant = GEM_SUN_GEM; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_SUN_ERINETWORK) > + break; > + case PCI_PRODUCT_SUN_ERINETWORK: > sc->sc_variant = GEM_SUN_ERI; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_INTREPID2_GMAC) > - sc->sc_variant = GEM_APPLE_GMAC; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_PANGEA_GMAC) > - sc->sc_variant = GEM_APPLE_GMAC; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_SHASTA_GMAC) > - sc->sc_variant = GEM_APPLE_GMAC; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_UNINORTHGMAC) > - sc->sc_variant = GEM_APPLE_GMAC; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_UNINORTH2GMAC) > - sc->sc_variant = GEM_APPLE_GMAC; > - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_K2_GMAC) > + break; > + case PCI_PRODUCT_APPLE_K2_GMAC: > sc->sc_variant = GEM_APPLE_K2_GMAC; > + break; > + default: > + sc->sc_variant = GEM_APPLE_GMAC; > + } > > #define PCI_GEM_BASEADDR 0x10 > if (pci_mapreg_map(pa, PCI_GEM_BASEADDR, type, 0, >
Ok by me, but when I said acknowledge I meant this, I'm ok with either, if kettenis doesn't mind :=). Index: if_gem_pci.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_gem_pci.c,v retrieving revision 1.32 diff -d -u -p -r1.32 if_gem_pci.c --- if_gem_pci.c 3 Apr 2011 15:36:02 -0000 1.32 +++ if_gem_pci.c 28 Sep 2012 07:26:23 -0000 @@ -227,22 +227,27 @@ gem_attach_pci(struct device *parent, st sc->sc_pci = 1; /* XXXXX should all be done in bus_dma. */ - if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_SUN_GEMNETWORK) + switch (PCI_PRODUCT(pa->pa_id)) { + case PCI_PRODUCT_SUN_GEMNETWORK: sc->sc_variant = GEM_SUN_GEM; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_SUN_ERINETWORK) + break; + case PCI_PRODUCT_SUN_ERINETWORK: sc->sc_variant = GEM_SUN_ERI; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_INTREPID2_GMAC) - sc->sc_variant = GEM_APPLE_GMAC; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_PANGEA_GMAC) - sc->sc_variant = GEM_APPLE_GMAC; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_SHASTA_GMAC) - sc->sc_variant = GEM_APPLE_GMAC; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_UNINORTHGMAC) - sc->sc_variant = GEM_APPLE_GMAC; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_UNINORTH2GMAC) - sc->sc_variant = GEM_APPLE_GMAC; - else if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_APPLE_K2_GMAC) + break; + case PCI_PRODUCT_APPLE_K2_GMAC: sc->sc_variant = GEM_APPLE_K2_GMAC; + break; + case PCI_PRODUCT_APPLE_INTREPID2_GMAC: + case PCI_PRODUCT_APPLE_PANGEA_GMAC: + case PCI_PRODUCT_APPLE_SHASTA_GMAC: + case PCI_PRODUCT_APPLE_UNINORTHGMAC: + case PCI_PRODUCT_APPLE_UNINORTH2GMAC: + sc->sc_variant = GEM_APPLE_GMAC; + break; + default: + printf(": unknown variant 0x%x\n", sc->sc_variant); + return; + } #define PCI_GEM_BASEADDR 0x10 if (pci_mapreg_map(pa, PCI_GEM_BASEADDR, type, 0,