On Fri, Sep 28, 2012 at 09:31:34AM +0200, Christiano F. Haesbaert wrote: > 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, >
This is better IMHO. I was mildly concerned about the previous versions that seemed to recognize previously unknown chips. ok krw@ .... Ken