Use SREV instead of pci id to identify single chip solutions.

Srev is more accurate info to identify the chip + this makes 
it possible to identify some 5424 chips found on thinkpads with
faulty 5212 pci id.

Changes-licensed-under: ISC
Signed-Off-by: Nick Kossifidis <[EMAIL PROTECTED]>

---
diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
index c8d1fbd..1c10203 100644
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -229,23 +229,6 @@ struct ath5k_hw *ath5k_hw_attach(u16 device, u8 
mac_version, void *sc,
        ah->ah_software_retry = false;
        ah->ah_ant_diversity = AR5K_TUNE_ANT_DIVERSITY;
 
-       switch (device) {
-       case PCI_DEVICE_ID_ATHEROS_AR2413:
-       case PCI_DEVICE_ID_ATHEROS_AR5413:
-       case PCI_DEVICE_ID_ATHEROS_AR5424:
-               /*
-                * Known single chip solutions
-                */
-               ah->ah_single_chip = true;
-               break;
-       default:
-               /*
-                * Multi chip solutions
-                */
-               ah->ah_single_chip = false;
-               break;
-       }
-
        /*
         * Set the mac revision based on the pci id
         */
@@ -295,6 +278,14 @@ struct ath5k_hw *ath5k_hw_attach(u16 device, u8 
mac_version, void *sc,
                ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah,
                                CHANNEL_2GHZ);
 
+       /* Identify single chip solutions */
+       if((srev <= AR5K_SREV_VER_AR5414) &&
+       (srev >= AR5K_SREV_VER_AR2424)) {
+               ah->ah_single_chip = true;
+       } else {
+               ah->ah_single_chip = false;
+       }
+
        /* Single chip radio */
        if (ah->ah_radio_2ghz_revision == ah->ah_radio_5ghz_revision)
                ah->ah_radio_2ghz_revision = 0;



_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to