staging: android: ion: Pull out ion ioctls to a separate file
[linux-2.6/btrfs-unstable.git] / drivers / staging / rtl8723au / hal / rtl8723a_rxdesc.c
blob81b5efe649faab02b462479b6fc3d0a29ea6dbde
1 /******************************************************************************
3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
14 ******************************************************************************/
15 #define _RTL8723A_REDESC_C_
17 #include <osdep_service.h>
18 #include <drv_types.h>
19 #include <rtl8723a_hal.h>
21 static void process_rssi(struct rtw_adapter *padapter,
22 struct recv_frame *prframe)
24 struct rx_pkt_attrib *pattrib = &prframe->attrib;
25 struct signal_stat *signal_stat = &padapter->recvpriv.signal_strength_data;
27 if (signal_stat->update_req) {
28 signal_stat->total_num = 0;
29 signal_stat->total_val = 0;
30 signal_stat->update_req = 0;
33 signal_stat->total_num++;
34 signal_stat->total_val += pattrib->phy_info.SignalStrength;
35 signal_stat->avg_val = signal_stat->total_val / signal_stat->total_num;
38 static void process_link_qual(struct rtw_adapter *padapter,
39 struct recv_frame *prframe)
41 struct rx_pkt_attrib *pattrib;
42 struct signal_stat *signal_stat;
44 if (prframe == NULL || padapter == NULL)
45 return;
47 pattrib = &prframe->attrib;
48 signal_stat = &padapter->recvpriv.signal_qual_data;
50 if (signal_stat->update_req) {
51 signal_stat->total_num = 0;
52 signal_stat->total_val = 0;
53 signal_stat->update_req = 0;
56 signal_stat->total_num++;
57 signal_stat->total_val += pattrib->phy_info.SignalQuality;
58 signal_stat->avg_val = signal_stat->total_val / signal_stat->total_num;
61 /* void rtl8723a_process_phy_info(struct rtw_adapter *padapter, union recv_frame *prframe) */
62 void rtl8723a_process_phy_info(struct rtw_adapter *padapter, void *prframe)
64 struct recv_frame *precvframe = prframe;
65 /* Check RSSI */
66 process_rssi(padapter, precvframe);
67 /* Check EVM */
68 process_link_qual(padapter, precvframe);