/******************************************************************************
 *
 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
 *
 * 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.
 *
 ******************************************************************************/
#ifndef __RTL8723A_RECV_H__
#define __RTL8723A_RECV_H__

#include <osdep_service.h>
#include <drv_types.h>

#define NR_RECVBUFF			4

#define NR_PREALLOC_RECV_SKB		8

#define RECV_BLK_SZ			512
#define RECV_BLK_CNT			16
#define RECV_BLK_TH			RECV_BLK_CNT

#define MAX_RECVBUF_SZ			15360 /*  15k < 16k */

#define PHY_RSSI_SLID_WIN_MAX		100
#define PHY_LINKQUALITY_SLID_WIN_MAX	20


struct phy_stat {
	unsigned int phydw0;
	unsigned int phydw1;
	unsigned int phydw2;
	unsigned int phydw3;
	unsigned int phydw4;
	unsigned int phydw5;
	unsigned int phydw6;
	unsigned int phydw7;
};

/*  Rx smooth factor */
#define	Rx_Smooth_Factor		20

struct interrupt_msg_format {
	unsigned int C2H_MSG0;
	unsigned int C2H_MSG1;
	unsigned int C2H_MSG2;
	unsigned int C2H_MSG3;
	unsigned int HISR; /*  from HISR Reg0x124, read to clear */
	unsigned int HISRE;/*  from HISRE Reg0x12c, read to clear */
	unsigned int  MSG_EX;
};

int rtl8723au_init_recv_priv(struct rtw_adapter *padapter);
void rtl8723au_free_recv_priv(struct rtw_adapter *padapter);
void rtl8723a_process_phy_info(struct rtw_adapter *padapter, void *prframe);
void update_recvframe_attrib(struct recv_frame *precvframe, struct recv_stat *prxstat);
void update_recvframe_phyinfo(struct recv_frame *precvframe, struct phy_stat *pphy_info);

#endif
