2011-05-24 09:26:35

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: [PATCH v2] ath9k: wake up chip before initializing PAPRD table

From: Mohammed Shafi Shajakhan <[email protected]>

In PAPRD table initialization path we do some register read, so
make sure the chip is awake during that. Currently PAPRD is disabled.

Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
---
drivers/net/wireless/ath/ath9k/main.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index a198ee3..4a71f4e 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -394,8 +394,10 @@ void ath_paprd_calibrate(struct work_struct *work)
if (!caldata)
return;

+ ath9k_ps_wakeup(sc);
+
if (ar9003_paprd_init_table(ah) < 0)
- return;
+ goto fail_paprd;

skb = alloc_skb(len, GFP_KERNEL);
if (!skb)
@@ -411,7 +413,6 @@ void ath_paprd_calibrate(struct work_struct *work)
memcpy(hdr->addr2, hw->wiphy->perm_addr, ETH_ALEN);
memcpy(hdr->addr3, hw->wiphy->perm_addr, ETH_ALEN);

- ath9k_ps_wakeup(sc);
for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) {
if (!(common->tx_chainmask & BIT(chain)))
continue;
--
1.7.0.4



2011-05-24 09:41:21

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: Re: [PATCH v2] ath9k: wake up chip before initializing PAPRD table

On Tuesday 24 May 2011 02:56 PM, Mohammed Shajakhan wrote:
> From: Mohammed Shafi Shajakhan<[email protected]>
>
> In PAPRD table initialization path we do some register read, so
> make sure the chip is awake during that. Currently PAPRD is disabled.
>
> Signed-off-by: Mohammed Shafi Shajakhan<[email protected]>
> ---
> drivers/net/wireless/ath/ath9k/main.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
> index a198ee3..4a71f4e 100644
> --- a/drivers/net/wireless/ath/ath9k/main.c
> +++ b/drivers/net/wireless/ath/ath9k/main.c
> @@ -394,8 +394,10 @@ void ath_paprd_calibrate(struct work_struct *work)
> if (!caldata)
> return;
>
> + ath9k_ps_wakeup(sc);
> +
> if (ar9003_paprd_init_table(ah)< 0)
> - return;
> + goto fail_paprd;
>
> skb = alloc_skb(len, GFP_KERNEL);
> if (!skb)

need to handle this case of skb_allocation failure :(, will send a v3.
thanks to Vivek.

> @@ -411,7 +413,6 @@ void ath_paprd_calibrate(struct work_struct *work)
> memcpy(hdr->addr2, hw->wiphy->perm_addr, ETH_ALEN);
> memcpy(hdr->addr3, hw->wiphy->perm_addr, ETH_ALEN);
>
> - ath9k_ps_wakeup(sc);
> for (chain = 0; chain< AR9300_MAX_CHAINS; chain++) {
> if (!(common->tx_chainmask& BIT(chain)))
> continue;

--
thanks,
shafi