158c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger/******************************************************************************
258c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger *
358c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
458c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger *
558c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * This program is free software; you can redistribute it and/or modify it
658c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * under the terms of version 2 of the GNU General Public License as
758c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * published by the Free Software Foundation.
858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger *
958c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * This program is distributed in the hope that it will be useful, but WITHOUT
1058c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1158c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
1258c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * more details.
1358c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger *
1458c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * You should have received a copy of the GNU General Public License along with
1558c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * this program; if not, write to the Free Software Foundation, Inc.,
1658c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
1758c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger *
1858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger *
1958c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger ******************************************************************************/
2058c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#ifndef __RTL8188E_RECV_H__
2158c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define __RTL8188E_RECV_H__
2258c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
2358c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define TX_RPT1_PKT_LEN 8
2458c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
2558c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define RECV_BLK_SZ 512
2658c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define RECV_BLK_CNT 16
2758c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define RECV_BLK_TH RECV_BLK_CNT
2858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define RECV_BULK_IN_ADDR		0x80
2958c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define RECV_INT_IN_ADDR		0x81
3058c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
3158c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define NR_PREALLOC_RECV_SKB (8)
3258c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
3358c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define NR_RECVBUFF (4)
3458c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
3558c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define MAX_RECVBUF_SZ (15360) /*  15k < 16k */
3658c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
3758c434013a22fccfdb14abc2bb8408ca29073b76Larry Fingerstruct phy_stat {
3858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw0;
3958c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw1;
4058c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw2;
4158c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw3;
4258c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw4;
4358c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw5;
4458c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw6;
4558c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	unsigned int phydw7;
4658c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger};
4758c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
4858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger/*  Rx smooth factor */
4958c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define	Rx_Smooth_Factor (20)
5058c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
5158c434013a22fccfdb14abc2bb8408ca29073b76Larry Fingerenum rx_packet_type {
5258c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	NORMAL_RX,/* Normal rx packet */
5358c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	TX_REPORT1,/* CCX */
5458c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	TX_REPORT2,/* TX RPT */
5558c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger	HIS_REPORT,/*  USB HISR RPT */
5658c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger};
5758c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
5858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#define INTERRUPT_MSG_FORMAT_LEN 60
5958c434013a22fccfdb14abc2bb8408ca29073b76Larry Fingers32 rtl8188eu_init_recv_priv(struct adapter *padapter);
60c7333c114262dda2db28bf93b03a0ce8644b588aTim Jester-Pfadtvoid rtl8188eu_free_recv_priv(struct adapter *padapter);
61c7333c114262dda2db28bf93b03a0ce8644b588aTim Jester-Pfadtvoid rtl8188eu_recv_hdl(struct adapter *padapter, struct recv_buf *precvbuf);
6258c434013a22fccfdb14abc2bb8408ca29073b76Larry Fingervoid rtl8188eu_recv_tasklet(void *priv);
63f31cca8e920728ab8d3472791dd551c5e993f051Larry Fingervoid rtl8188e_query_rx_phy_status(struct recv_frame *fr, struct phy_stat *phy);
64c7333c114262dda2db28bf93b03a0ce8644b588aTim Jester-Pfadtvoid rtl8188e_process_phy_info(struct adapter *padapter, void *prframe);
65f31cca8e920728ab8d3472791dd551c5e993f051Larry Fingervoid update_recvframe_phyinfo_88e(struct recv_frame *fra, struct phy_stat *phy);
66f31cca8e920728ab8d3472791dd551c5e993f051Larry Fingervoid update_recvframe_attrib_88e(struct recv_frame *fra,
67f31cca8e920728ab8d3472791dd551c5e993f051Larry Finger				 struct recv_stat *stat);
6858c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger
6958c434013a22fccfdb14abc2bb8408ca29073b76Larry Finger#endif
70