Search Linux Wireless

Re: [ath5k-devel] [PATCH 6/8] ath5k: Fixes for PCI-E cards

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2008/2/24, Bob Copeland <me@xxxxxxxxxxxxxxx>:
> On Sun, Feb 24, 2008 at 06:45:33AM +0200, Nick Kossifidis wrote:
>  > >  +       /* Identify PCI-E cards */
>  > >  +       if((srev >= AR5K_SREV_VER_AR2424 && srev <= AR5K_SREV_VER_AR5424) ||
>  > >  +       srev >= AR5K_SREV_VER_AR5416) {
>  > >  +               ah->ah_pcie = true;
>  > >  +       } else {
>  > >  +               ah->ah_pcie = false;
>  > >  +       }
>
>
> This won't work, because reset is called before we ever set ah_pcie.
>  Moving the set before the first call to wakeup (patch below) does the
>  trick.  Then it works at least as well as I had it working (still with
>  random calibration failures, but I am again sending this mail using the
>  driver).
>
>  Thanks!
>
>  From f59b2bc93059e7f1bd504714ca22654f4242d78d Mon Sep 17 00:00:00 2001
>  From: Bob Copeland <me@xxxxxxxxxxxxxxx>
>  Date: Sun, 24 Feb 2008 10:30:50 -0500
>  Subject: [PATCH] Grab srev before resetting card.
>
>  Setting ah_pcie variable must be done before the first call to
>  ath5k_hw_nic_wakeup.
>  ---
>   drivers/net/wireless/ath5k/hw.c |   20 ++++++++++----------
>   1 files changed, 10 insertions(+), 10 deletions(-)
>
>
>  diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
>
> index adcce6f..71cdbd9 100644
>
> --- a/drivers/net/wireless/ath5k/hw.c
>  +++ b/drivers/net/wireless/ath5k/hw.c
>
> @@ -178,13 +178,21 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
>         else if (ah->ah_version <= AR5K_AR5211)
>                 ah->ah_proc_rx_desc = ath5k_hw_proc_old_rx_status;
>
>  +       /* Get MAC, PHY and RADIO revisions */
>  +       srev = ath5k_hw_reg_read(ah, AR5K_SREV);
>  +       /* Identify PCI-E cards */
>
> +       if((srev >= AR5K_SREV_VER_AR2424 && srev <= AR5K_SREV_VER_AR5424) ||
>  +       srev >= AR5K_SREV_VER_AR5416) {
>  +               ah->ah_pcie = true;
>  +       } else {
>  +               ah->ah_pcie = false;
>  +       }
>  +
>
>         /* Bring device out of sleep and reset it's units */
>         ret = ath5k_hw_nic_wakeup(ah, AR5K_INIT_MODE, true);
>         if (ret)
>                 goto err_free;
>
>  -       /* Get MAC, PHY and RADIO revisions */
>  -       srev = ath5k_hw_reg_read(ah, AR5K_SREV);
>         ah->ah_mac_srev = srev;
>         ah->ah_mac_version = AR5K_REG_MS(srev, AR5K_SREV_VER);
>         ah->ah_mac_revision = AR5K_REG_MS(srev, AR5K_SREV_REV);
>  @@ -214,14 +222,6 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
>
>                 ah->ah_single_chip = false;
>         }
>
>  -       /* Identify PCI-E cards */
>  -       if((srev >= AR5K_SREV_VER_AR2424 && srev <= AR5K_SREV_VER_AR5424) ||
>  -       srev >= AR5K_SREV_VER_AR5416) {
>  -               ah->ah_pcie = true;
>  -       } else {
>  -               ah->ah_pcie = false;
>  -       }
>  -
>         /* Single chip radio */
>         if (ah->ah_radio_2ghz_revision == ah->ah_radio_5ghz_revision)
>                 ah->ah_radio_2ghz_revision = 0;
>

Thanx, just plz put a new line here ->

+	/* Get MAC, PHY and RADIO revisions */
+	srev = ath5k_hw_reg_read(ah, AR5K_SREV);
+
+	/* Identify PCI-E cards */
+	if((srev >= AR5K_SREV_VER_AR2424 && srev <= AR5K_SREV_VER_AR5424) ||
+	srev >= AR5K_SREV_VER_AR5416) {
+		ah->ah_pcie = true;
+	} else {
+		ah->ah_pcie = false;
+	}
+

Acked-by: Nick Kossifidis <mickflemm@xxxxxxxxx>

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux