Skip to contentSkip to conversation

ath5k: Enhance reporting on probe

PATCH In review Luis R. Rodriguez 2 participants 2 messages Oct 6, 2007 – Oct 7, 2007 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ath5k: Enhance reporting on probe

Enhance reporting of devices. I tried getting revisions for ah_radio_2ghz_revision but it seems to be empty.

Oh and AR5210 no longer locks now with the interrupt fixes. But now we get:

ath5k_hw_reset: failed to reset TX queue #1
unable to reset hardware: -22

We'll need to fix this.

---
 drivers/net/wireless/ath5k/base.c |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)
drivers/net/wireless/ath5k/base.c +28 -4
index 97a7613..6097763 100644
@@ -2330,11 +2330,26 @@ static const char *ath_chip_name(u8 mac_version)
 	return "Unknown";
 }
 
+static const char *ath_phy_name(enum ath5k_radio radio)
+{
+	switch (radio) {
+	case AR5K_RF5110:
+		return "RF5110";
+	case AR5K_RF5111:
+		return "RF5111";
+	case AR5K_RF5112:
+		return "RF5112";
+	default:
+		return "Unknown";
+	}
+}
+
 static int __devinit ath_pci_probe(struct pci_dev *pdev,
 		const struct pci_device_id *id)
 {
 	void __iomem *mem;
 	struct ath_softc *sc;
+	struct ath_hw *ah;
 	struct ieee80211_hw *hw;
 	int ret;
 	u8 csz;
@@ -2444,14 +2459,23 @@ static int __devinit ath_pci_probe(struct pci_dev *pdev,
 		goto err_irq;
 	}
 
+	ah = sc->ah;
+
 	ret = ath_attach(pdev, hw);
 	if (ret)
 		goto err_ah;
 
-	dev_info(&pdev->dev, "%s chip found: mac %d.%d phy %d.%d\n",
-			ath_chip_name(id->driver_data), sc->ah->ah_mac_version,
-			sc->ah->ah_mac_version, sc->ah->ah_phy_revision >> 4,
-			sc->ah->ah_phy_revision & 0xf);
+	dev_info(&pdev->dev, "MAC:\t\t%s %u.%u\n",
+		ath_chip_name(id->driver_data), 
+		ah->ah_mac_version,
+		ah->ah_mac_revision);
+	dev_info(&pdev->dev, "Phy:\t\t%s %u.%u\n",
+		ath_phy_name(ah->ah_radio),
+		ah->ah_phy_revision >> 4,
+		ah->ah_phy_revision & 0xf);
+	dev_info(&pdev->dev, "Radio:\t%u.%u\n",
+		ah->ah_radio_5ghz_revision >> 4,
+		ah->ah_radio_5ghz_revision & 0xf);
 
 	/* ready to process interrupts */
 	__clear_bit(ATH_STAT_INVALID, sc->status);
Signature · 1 line
1.5.2.5
#1 lore raw

Have you checked out this ?

http://madwifi.org/changeset/2703

check out the table with the names here...
http://madwifi.org/browser/branches/ath5k/ath5k.h?rev=2709#L161

and the code that uses this table here...
http://madwifi.org/browser/branches/ath5k/ath5k_hw.c?rev=2709#L400

Where is the problem with this approach ???

2007/10/5, Luis R. Rodriguez <[email protected]>:

Quoted 78 lines

Enhance reporting of devices. I tried getting revisions for ah_radio_2ghz_revision but it seems to be empty.

Oh and AR5210 no longer locks now with the interrupt fixes. But now we get:

ath5k_hw_reset: failed to reset TX queue #1
unable to reset hardware: -22

We'll need to fix this.

---
 drivers/net/wireless/ath5k/base.c |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)
drivers/net/wireless/ath5k/base.c +28 -5
index 97a7613..6097763 100644
@@ -2330,11 +2330,26 @@ static const char *ath_chip_name(u8 mac_version)
        return "Unknown";
 }
 
+static const char *ath_phy_name(enum ath5k_radio radio)
+{
+       switch (radio) {
+       case AR5K_RF5110:
+               return "RF5110";
+       case AR5K_RF5111:
+               return "RF5111";
+       case AR5K_RF5112:
+               return "RF5112";
+       default:
+               return "Unknown";
+       }
+}
+
 static int __devinit ath_pci_probe(struct pci_dev *pdev,
                const struct pci_device_id *id)
 {
        void __iomem *mem;
        struct ath_softc *sc;
+       struct ath_hw *ah;
        struct ieee80211_hw *hw;
        int ret;
        u8 csz;
@@ -2444,14 +2459,23 @@ static int __devinit ath_pci_probe(struct pci_dev *pdev,
                goto err_irq;
        }
 
+       ah = sc->ah;
+
        ret = ath_attach(pdev, hw);
        if (ret)
                goto err_ah;
 
-       dev_info(&pdev->dev, "%s chip found: mac %d.%d phy %d.%d\n",
-                       ath_chip_name(id->driver_data), sc->ah->ah_mac_version,
-                       sc->ah->ah_mac_version, sc->ah->ah_phy_revision >> 4,
-                       sc->ah->ah_phy_revision & 0xf);
+       dev_info(&pdev->dev, "MAC:\t\t%s %u.%u\n",
+               ath_chip_name(id->driver_data),
+               ah->ah_mac_version,
+               ah->ah_mac_revision);
+       dev_info(&pdev->dev, "Phy:\t\t%s %u.%u\n",
+               ath_phy_name(ah->ah_radio),
+               ah->ah_phy_revision >> 4,
+               ah->ah_phy_revision & 0xf);
+       dev_info(&pdev->dev, "Radio:\t%u.%u\n",
+               ah->ah_radio_5ghz_revision >> 4,
+               ah->ah_radio_5ghz_revision & 0xf);
 
        /* ready to process interrupts */
        __clear_bit(ATH_STAT_INVALID, sc->status);
--

1.5.2.5

Signature · 3 lines
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick