| 
									
										
										
										
											2010-12-08 11:12:31 -06:00
										 |  |  | /******************************************************************************
 | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2012-01-07 20:46:42 -06:00
										 |  |  |  * Copyright(c) 2009-2012  Realtek Corporation. | 
					
						
							| 
									
										
										
										
											2010-12-08 11:12:31 -06:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify it | 
					
						
							|  |  |  |  * under the terms of version 2 of the GNU General Public License as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, but WITHOUT | 
					
						
							|  |  |  |  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
					
						
							|  |  |  |  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for | 
					
						
							|  |  |  |  * more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License along with | 
					
						
							|  |  |  |  * this program; if not, write to the Free Software Foundation, Inc., | 
					
						
							|  |  |  |  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * The full GNU General Public License is included in this distribution in the | 
					
						
							|  |  |  |  * file called LICENSE. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Contact Information: | 
					
						
							|  |  |  |  * wlanfae <wlanfae@realtek.com> | 
					
						
							|  |  |  |  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, | 
					
						
							|  |  |  |  * Hsinchu 300, Taiwan. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Larry Finger <Larry.Finger@lwfinger.net> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __REALTEK_RTL_PCI_PS_H__
 | 
					
						
							|  |  |  | #define __REALTEK_RTL_PCI_PS_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-25 12:53:14 -05:00
										 |  |  | #define MAX_SW_LPS_SLEEP_INTV	5
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-04 16:53:48 -06:00
										 |  |  | /*---------------------------------------------
 | 
					
						
							|  |  |  |  * 3 The value of cmd: 4 bits | 
					
						
							|  |  |  |  *--------------------------------------------- | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define    PWR_CMD_READ		0x00
 | 
					
						
							|  |  |  | #define    PWR_CMD_WRITE	0x01
 | 
					
						
							|  |  |  | #define    PWR_CMD_POLLING	0x02
 | 
					
						
							|  |  |  | #define    PWR_CMD_DELAY	0x03
 | 
					
						
							|  |  |  | #define    PWR_CMD_END		0x04
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* define the base address of each block */ | 
					
						
							|  |  |  | #define	PWR_BASEADDR_MAC	0x00
 | 
					
						
							|  |  |  | #define	PWR_BASEADDR_USB	0x01
 | 
					
						
							|  |  |  | #define	PWR_BASEADDR_PCIE	0x02
 | 
					
						
							|  |  |  | #define	PWR_BASEADDR_SDIO	0x03
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define	PWR_FAB_ALL_MSK		(BIT(0)|BIT(1)|BIT(2)|BIT(3))
 | 
					
						
							|  |  |  | #define	PWR_CUT_TESTCHIP_MSK	BIT(0)
 | 
					
						
							|  |  |  | #define	PWR_CUT_A_MSK		BIT(1)
 | 
					
						
							|  |  |  | #define	PWR_CUT_B_MSK		BIT(2)
 | 
					
						
							|  |  |  | #define	PWR_CUT_C_MSK		BIT(3)
 | 
					
						
							|  |  |  | #define	PWR_CUT_D_MSK		BIT(4)
 | 
					
						
							|  |  |  | #define	PWR_CUT_E_MSK		BIT(5)
 | 
					
						
							|  |  |  | #define	PWR_CUT_F_MSK		BIT(6)
 | 
					
						
							|  |  |  | #define	PWR_CUT_G_MSK		BIT(7)
 | 
					
						
							|  |  |  | #define	PWR_CUT_ALL_MSK		0xFF
 | 
					
						
							|  |  |  | #define PWR_INTF_SDIO_MSK	BIT(0)
 | 
					
						
							|  |  |  | #define PWR_INTF_USB_MSK	BIT(1)
 | 
					
						
							|  |  |  | #define PWR_INTF_PCI_MSK	BIT(2)
 | 
					
						
							|  |  |  | #define PWR_INTF_ALL_MSK	(BIT(0)|BIT(1)|BIT(2)|BIT(3))
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum pwrseq_delay_unit { | 
					
						
							|  |  |  | 	PWRSEQ_DELAY_US, | 
					
						
							|  |  |  | 	PWRSEQ_DELAY_MS, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct wlan_pwr_cfg { | 
					
						
							|  |  |  | 	u16 offset; | 
					
						
							|  |  |  | 	u8 cut_msk; | 
					
						
							|  |  |  | 	u8 fab_msk:4; | 
					
						
							|  |  |  | 	u8 interface_msk:4; | 
					
						
							|  |  |  | 	u8 base:4; | 
					
						
							|  |  |  | 	u8 cmd:4; | 
					
						
							|  |  |  | 	u8 msk; | 
					
						
							|  |  |  | 	u8 value; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_OFFSET(__PWR_CMD)	(__PWR_CMD.offset)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_CUT_MASK(__PWR_CMD)	(__PWR_CMD.cut_msk)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_FAB_MASK(__PWR_CMD)	(__PWR_CMD.fab_msk)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_INTF_MASK(__PWR_CMD)	(__PWR_CMD.interface_msk)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_BASE(__PWR_CMD)	(__PWR_CMD.base)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_CMD(__PWR_CMD)	(__PWR_CMD.cmd)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_MASK(__PWR_CMD)	(__PWR_CMD.msk)
 | 
					
						
							|  |  |  | #define	GET_PWR_CFG_VALUE(__PWR_CMD)	(__PWR_CMD.value)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bool rtl_hal_pwrseqcmdparsing(struct rtl_priv *rtlpriv, u8 cut_version, | 
					
						
							|  |  |  | 			      u8 fab_version, u8 interface_type, | 
					
						
							|  |  |  | 			      struct wlan_pwr_cfg pwrcfgcmd[]); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-08 11:12:31 -06:00
										 |  |  | bool rtl_ps_set_rf_state(struct ieee80211_hw *hw, | 
					
						
							| 
									
										
										
										
											2011-06-20 10:46:05 +09:00
										 |  |  | 			 enum rf_pwrstate state_toset, u32 changesource); | 
					
						
							| 
									
										
										
										
											2010-12-08 11:12:31 -06:00
										 |  |  | bool rtl_ps_enable_nic(struct ieee80211_hw *hw); | 
					
						
							|  |  |  | bool rtl_ps_disable_nic(struct ieee80211_hw *hw); | 
					
						
							|  |  |  | void rtl_ips_nic_off(struct ieee80211_hw *hw); | 
					
						
							|  |  |  | void rtl_ips_nic_on(struct ieee80211_hw *hw); | 
					
						
							|  |  |  | void rtl_ips_nic_off_wq_callback(void *data); | 
					
						
							|  |  |  | void rtl_lps_enter(struct ieee80211_hw *hw); | 
					
						
							|  |  |  | void rtl_lps_leave(struct ieee80211_hw *hw); | 
					
						
							| 
									
										
										
										
											2011-04-25 12:52:54 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len); | 
					
						
							|  |  |  | void rtl_swlps_wq_callback(void *data); | 
					
						
							|  |  |  | void rtl_swlps_rfon_wq_callback(void *data); | 
					
						
							|  |  |  | void rtl_swlps_rf_awake(struct ieee80211_hw *hw); | 
					
						
							|  |  |  | void rtl_swlps_rf_sleep(struct ieee80211_hw *hw); | 
					
						
							| 
									
										
										
											
												rtlwifi Modify existing bits to match vendor version 2013.02.07
These changes add the new variables for P2P and modify the various struct
definitions for other new features.
This patch updates files base.{c,h} for the changes in the newest vendor
driver.
This patch updates files ps.{c,h} for the changes in the newest vendor
driver.
This patch updates files debug.{c,h}, efuse.c, pci.{c,h}, and wifi.h for
the changes in the newest vendor driver.
This patch updates files core.c, ps.c, rc.c, and wifi.h for
the changes in the newest vendor driver.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: jcheung@suse.com
Cc: machen@suse.com
Cc: mmarek@suse.cz
Cc: zhiyuan_yang@realsil.com.cn
Cc: page_he@realsil.com.cn
Signed-off-by: John W. Linville <linville@tuxdriver.com>
											
										 
											2013-03-24 22:06:33 -05:00
										 |  |  | void rtl_p2p_ps_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state); | 
					
						
							|  |  |  | void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len); | 
					
						
							| 
									
										
										
										
											2013-06-28 09:12:53 -05:00
										 |  |  | void rtl_lps_change_work_callback(struct work_struct *work); | 
					
						
							| 
									
										
										
										
											2011-04-25 12:52:54 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-08 11:12:31 -06:00
										 |  |  | #endif
 |