[patch] Change ath(4) to report correct chip name for Qualcomm Atheros cards

Tobias Kortkamp t at tobik.me
Wed Feb 3 21:14:22 UTC 2016


Sure. Here you go.

On Wed, Feb 3, 2016, at 10:00 PM, Adrian Chadd wrote:
> Hi!
> 
> Thanks! I've been meaning to do this for a while but have been ..
> slack-ish.
> 
> Can you attach it as a patch? I'll commit it tonight.
> 
> 
> -a
> 
> 
> On 3 February 2016 at 03:27, Tobias Kortkamp <t at tobik.me> wrote:
> > Hi,
> >
> > when using ath(4) the driver reports the wrong name for Qualcomm Atheros
> > chips on attach e.g. a QCA9565 card reports as being an AR9565.
> > ath_hal(4) however mentions QCA9565 and not AR9565.  This is confusing
> > if you want to find out if your card is supposed to be supported or not.
> >  I also saw some comments in sys/dev/ath/ath_hal/ah.c that is not
> > supposed to be that way.  Fixing this seems simple enough (see inlined
> > patch).
> >
> > Thanks,
> > Tobias
> >
> > diff --git a/sys/dev/ath/ath_hal/ah.c b/sys/dev/ath/ath_hal/ah.c
> > index a0baa69..8333f10 100644
> > --- a/sys/dev/ath/ath_hal/ah.c
> > +++ b/sys/dev/ath/ath_hal/ah.c
> > @@ -91,63 +91,60 @@ ath_hal_mac_name(struct ath_hal *ah)
> >         switch (ah->ah_macVersion) {
> >         case AR_SREV_VERSION_CRETE:
> >         case AR_SREV_VERSION_MAUI_1:
> > -               return "5210";
> > +               return "AR5210";
> >         case AR_SREV_VERSION_MAUI_2:
> >         case AR_SREV_VERSION_OAHU:
> > -               return "5211";
> > +               return "AR5211";
> >         case AR_SREV_VERSION_VENICE:
> > -               return "5212";
> > +               return "AR5212";
> >         case AR_SREV_VERSION_GRIFFIN:
> > -               return "2413";
> > +               return "AR2413";
> >         case AR_SREV_VERSION_CONDOR:
> > -               return "5424";
> > +               return "AR5424";
> >         case AR_SREV_VERSION_EAGLE:
> > -               return "5413";
> > +               return "AR5413";
> >         case AR_SREV_VERSION_COBRA:
> > -               return "2415";
> > +               return "AR2415";
> >         case AR_SREV_2425:      /* Swan */
> > -               return "2425";
> > +               return "AR2425";
> >         case AR_SREV_2417:      /* Nala */
> > -               return "2417";
> > +               return "AR2417";
> >         case AR_XSREV_VERSION_OWL_PCI:
> > -               return "5416";
> > +               return "AR5416";
> >         case AR_XSREV_VERSION_OWL_PCIE:
> > -               return "5418";
> > +               return "AR5418";
> >         case AR_XSREV_VERSION_HOWL:
> > -               return "9130";
> > +               return "AR9130";
> >         case AR_XSREV_VERSION_SOWL:
> > -               return "9160";
> > +               return "AR9160";
> >         case AR_XSREV_VERSION_MERLIN:
> >                 if (AH_PRIVATE(ah)->ah_ispcie)
> > -                       return "9280";
> > -               return "9220";
> > +                       return "AR9280";
> > +               return "AR9220";
> >         case AR_XSREV_VERSION_KITE:
> > -               return "9285";
> > +               return "AR9285";
> >         case AR_XSREV_VERSION_KIWI:
> >                 if (AH_PRIVATE(ah)->ah_ispcie)
> > -                       return "9287";
> > -               return "9227";
> > +                       return "AR9287";
> > +               return "AR9227";
> >         case AR_SREV_VERSION_AR9380:
> >                 if (ah->ah_macRev >= AR_SREV_REVISION_AR9580_10)
> > -                       return "9580";
> > -               return "9380";
> > +                       return "AR9580";
> > +               return "AR9380";
> >         case AR_SREV_VERSION_AR9460:
> > -               return "9460";
> > +               return "AR9460";
> >         case AR_SREV_VERSION_AR9330:
> > -               return "9330";
> > +               return "AR9330";
> >         case AR_SREV_VERSION_AR9340:
> > -               return "9340";
> > +               return "AR9340";
> >         case AR_SREV_VERSION_QCA9550:
> > -               /* XXX should say QCA, not AR */
> > -               return "9550";
> > +               return "QCA9550";
> >         case AR_SREV_VERSION_AR9485:
> > -               return "9485";
> > +               return "AR9485";
> >         case AR_SREV_VERSION_QCA9565:
> > -               /* XXX should say QCA, not AR */
> > -               return "9565";
> > +               return "QCA9565";
> >         case AR_SREV_VERSION_QCA9530:
> > -               /* XXX should say QCA, not AR */
> > -               return "9530";
> > +               return "QCA9530";
> >         }
> >         return "????";
> >  }
> > diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
> > index 0dc7d3f..8b1580a 100644
> > --- a/sys/dev/ath/if_ath.c
> > +++ b/sys/dev/ath/if_ath.c
> > @@ -6160,7 +6160,7 @@ ath_announce(struct ath_softc *sc)
> >  {
> >         struct ath_hal *ah = sc->sc_ah;
> >
> > -       device_printf(sc->sc_dev, "AR%s mac %d.%d RF%s phy %d.%d\n",
> > +       device_printf(sc->sc_dev, "%s mac %d.%d RF%s phy %d.%d\n",
> >                 ath_hal_mac_name(ah), ah->ah_macVersion, ah->ah_macRev,
> >                 ath_hal_rf_name(ah), ah->ah_phyRev >> 4, ah->ah_phyRev &
> >                 0xf);
> >         device_printf(sc->sc_dev, "2GHz radio: 0x%.4x; 5GHz radio:
> >         0x%.4x\n",
> > _______________________________________________
> > freebsd-wireless at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-wireless
> > To unsubscribe, send any mail to "freebsd-wireless-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-wireless at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-wireless
> To unsubscribe, send any mail to
> "freebsd-wireless-unsubscribe at freebsd.org"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ath.diff
Type: text/x-diff
Size: 2899 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-wireless/attachments/20160203/9f214180/attachment.diff>


More information about the freebsd-wireless mailing list