Return-path: Received: from wolverine01.qualcomm.com ([199.106.114.254]:20586 "EHLO wolverine01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751408Ab2FTFQn (ORCPT ); Wed, 20 Jun 2012 01:16:43 -0400 Cc: "John W. Linville" , , Rodriguez Luis , , Sujith Manoharan , , , , Senthil Balasubramanian , "Luis R. Rodriguez" Message-ID: <4FE15CAE.501@qca.qualcomm.com> (sfid-20120620_071647_622013_70D1AC0C) Date: Wed, 20 Jun 2012 10:46:30 +0530 From: Mohammed Shafi Shajakhan MIME-Version: 1.0 To: Rajkumar Manoharan Subject: Re: [PATCH 07/10] ath9k_hw: Add hardware code for WoW References: <1340120850-9155-1-git-send-email-mohammed@qca.qualcomm.com> <1340120850-9155-8-git-send-email-mohammed@qca.qualcomm.com> <20120619175018.GB7191@vmraj-lnx.qca.qualcomm.com> In-Reply-To: <20120619175018.GB7191@vmraj-lnx.qca.qualcomm.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Sender: linux-wireless-owner@vger.kernel.org List-ID: Hi Raj, On Tuesday 19 June 2012 11:20 PM, Rajkumar Manoharan wrote: > On Tue, Jun 19, 2012 at 09:17:27PM +0530, Mohammed Shafi Shajakhan wrote: >> From: Mohammed Shafi Shajakhan >> >> add a new file wow.c which takes care of the hardware code >> for WoW. > [...] >> --- >> 3 files changed, 591 insertions(+), 0 deletions(-) >> create mode 100644 drivers/net/wireless/ath/ath9k/wow.c >> >> diff --git a/drivers/net/wireless/ath/ath9k/Makefile b/drivers/net/wireless/ath/ath9k/Makefile >> index 9c41232..2ad8f94 100644 >> --- a/drivers/net/wireless/ath/ath9k/Makefile >> +++ b/drivers/net/wireless/ath/ath9k/Makefile >> @@ -17,6 +17,7 @@ ath9k-$(CONFIG_ATH9K_DFS_CERTIFIED) += \ >> dfs.o \ >> dfs_pattern_detector.o \ >> dfs_pri_detector.o >> +ath9k-$(CONFIG_PM_SLEEP) += wow.o >> >> obj-$(CONFIG_ATH9K) += ath9k.o >> >> diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h >> index 2a20216..8e417c1 100644 >> --- a/drivers/net/wireless/ath/ath9k/hw.h >> +++ b/drivers/net/wireless/ath/ath9k/hw.h >> @@ -1110,6 +1110,37 @@ ath9k_hw_get_btcoex_scheme(struct ath_hw *ah) >> } >> #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */ >> >> + >> +#ifdef CONFIG_PM_SLEEP >> +const char *ath9k_hw_wow_event_to_string(u32 wow_event); >> +void ath9k_hw_wow_apply_pattern(struct ath_hw *ah, u8 *user_pattern, >> + u8 *user_mask, int pattern_count, >> + int pattern_len); >> +u32 ath9k_hw_wow_wakeup(struct ath_hw *ah); >> +void ath9k_hw_wow_enable(struct ath_hw *ah, u32 pattern_enable); >> +#else >> +static inline const char *ath9k_hw_wow_event_to_string(u32 wow_event) >> +{ >> + return NULL; >> +} >> +static inline void ath9k_hw_wow_apply_pattern(struct ath_hw *ah, >> + u8 *user_pattern, u8 *user_mask, >> + int pattern_count, >> + int pattern_len) >> +{ >> + return; >> +} > No need to return void function and also fix indent for arguments sorry, will address this. >> +static inline u32 ath9k_hw_wow_wakeup(struct ath_hw *ah) >> +{ >> + return 0; >> +} >> +static inline void ath9k_hw_wow_enable(struct ath_hw *ah, u32 pattern_enable) >> +{ >> +} >> +#endif >> + >> + >> + >> #define ATH9K_CLOCK_RATE_CCK 22 >> #define ATH9K_CLOCK_RATE_5GHZ_OFDM 40 >> #define ATH9K_CLOCK_RATE_2GHZ_OFDM 44 >> diff --git a/drivers/net/wireless/ath/ath9k/wow.c b/drivers/net/wireless/ath/ath9k/wow.c >> new file mode 100644 >> index 0000000..66a7a74 >> --- /dev/null >> +++ b/drivers/net/wireless/ath/ath9k/wow.c >> @@ -0,0 +1,559 @@ >> + >> +/* >> + * Copyright (c) 2008-2011 Atheros Communications Inc. >> + * > Please update the Copyright. sure, thanks! > >> + >> +#include >> +#include "ath9k.h" >> +#include "reg.h" >> +#include "hw-ops.h" >> + > [...] >> + if (AR_SREV_9285(ah) || AR_SREV_9287(ah)) >> + set = AR9285_WA_DEFAULT; >> + else >> + set = AR9280_WA_DEFAULT; >> + >> + /* >> + * In AR9280 and AR9285, bit 14 in WA register >> + * (disable L1) should only be set when device >> + * enters D3 state and be cleared when device >> + * comes back to D0 >> + */ >> + >> + if (ah->config.pcie_waen& AR_WA_D3_L1_DISABLE) >> + set = set | AR_WA_D3_L1_DISABLE; >> + >> + clr = AR_WA_UNTIE_RESET_EN; >> + set = set | AR_WA_RESET_EN | AR_WA_POR_SHORT; > simplify it as |= > oh ok ,sorry i missed it. thanks. -- thanks, shafi