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<moham...@qca.qualcomm.com> >> >> 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<linux/export.h> >> +#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 _______________________________________________ ath9k-devel mailing list ath9k-devel@lists.ath9k.org https://lists.ath9k.org/mailman/listinfo/ath9k-devel