2008-02-15 20:37:11

by Jiri Slaby

[permalink] [raw]
Subject: [PATCH 1/1] WDEV: ath5k, test single chip before reset

Move ath5k_hw_nic_wakeup after ah_single_chip being set, because we
test the value in there and decides whether reset or not.

Signed-off-by: Jiri Slaby <[email protected]>
Cc: Nick Kossifidis <[email protected]>
Cc: Luis R. Rodriguez <[email protected]>
---
drivers/net/wireless/ath5k/hw.c | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
index 3a4bf40..9cdd27f 100644
--- a/drivers/net/wireless/ath5k/hw.c
+++ b/drivers/net/wireless/ath5k/hw.c
@@ -181,11 +181,6 @@ 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;

- /* 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;
@@ -210,12 +205,13 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
}

/* 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;
- }
+ ah->ah_single_chip = srev >= AR5K_SREV_VER_AR2424 &&
+ srev <= AR5K_SREV_VER_AR5414;
+
+ /* 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;

/* Single chip radio */
if (ah->ah_radio_2ghz_revision == ah->ah_radio_5ghz_revision)
--
1.5.3.8



2008-02-15 22:40:37

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH 1/1] WDEV: ath5k, test single chip before reset

On 02/15/2008 10:53 PM, Nick Kossifidis wrote:
> 2008/2/15, Jiri Slaby <[email protected]>:
>> Move ath5k_hw_nic_wakeup after ah_single_chip being set, because we
>> test the value in there and decides whether reset or not.
>>
>> Signed-off-by: Jiri Slaby <[email protected]>
>> Cc: Nick Kossifidis <[email protected]>
>> Cc: Luis R. Rodriguez <[email protected]>
>> ---
>> drivers/net/wireless/ath5k/hw.c | 21 ++++++++++-----------
>> 1 files changed, 10 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
>> index 3a4bf40..9cdd27f 100644
>> --- a/drivers/net/wireless/ath5k/hw.c
>> +++ b/drivers/net/wireless/ath5k/hw.c
[...]
>> @@ -210,12 +205,13 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
>> }
>>
>> /* 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;
>> - }
>> + ah->ah_single_chip = srev >= AR5K_SREV_VER_AR2424 &&
>> + srev <= AR5K_SREV_VER_AR5414;
>> +
>> + /* 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;
>>
>> /* Single chip radio */
>> if (ah->ah_radio_2ghz_revision == ah->ah_radio_5ghz_revision)
>>
>
> NACK, single chip flag is going out since only needed check is for
> 5424/2424 during nic_wakeup, 5413/2413 behave like the rest
> 5211/5212-combatible cards.

Ok, thanks.

> Sorry for delaying the relevant patches, i'm working with the 2413
> card i got from Mike to make it work and it'll take some time (not as
> easy as i thought, i probably miss something)...

No problem, if I could do anything for you in this area, don't hesitate to drop
a message.

2008-02-15 21:53:34

by Nick Kossifidis

[permalink] [raw]
Subject: Re: [PATCH 1/1] WDEV: ath5k, test single chip before reset

2008/2/15, Jiri Slaby <[email protected]>:
> Move ath5k_hw_nic_wakeup after ah_single_chip being set, because we
> test the value in there and decides whether reset or not.
>
> Signed-off-by: Jiri Slaby <[email protected]>
> Cc: Nick Kossifidis <[email protected]>
> Cc: Luis R. Rodriguez <[email protected]>
> ---
> drivers/net/wireless/ath5k/hw.c | 21 ++++++++++-----------
> 1 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/wireless/ath5k/hw.c b/drivers/net/wireless/ath5k/hw.c
> index 3a4bf40..9cdd27f 100644
> --- a/drivers/net/wireless/ath5k/hw.c
> +++ b/drivers/net/wireless/ath5k/hw.c
> @@ -181,11 +181,6 @@ 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;
>
> - /* 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;
> @@ -210,12 +205,13 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version)
> }
>
> /* 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;
> - }
> + ah->ah_single_chip = srev >= AR5K_SREV_VER_AR2424 &&
> + srev <= AR5K_SREV_VER_AR5414;
> +
> + /* 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;
>
> /* Single chip radio */
> if (ah->ah_radio_2ghz_revision == ah->ah_radio_5ghz_revision)
>

NACK, single chip flag is going out since only needed check is for
5424/2424 during nic_wakeup, 5413/2413 behave like the rest
5211/5212-combatible cards.

Sorry for delaying the relevant patches, i'm working with the 2413
card i got from Mike to make it work and it'll take some time (not as
easy as i thought, i probably miss something)...


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