aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/rx.h
diff options
context:
space:
mode:
authorShahar Levi <shahar_levi@ti.com>2010-11-08 06:20:10 -0500
committerLuciano Coelho <luciano.coelho@nokia.com>2010-11-22 09:45:09 -0500
commit00d201001bd4e8a46e3d03c970abcb72256c368b (patch)
tree2d3d6b971c9e0ac68ffd5edca1c596eeab247451 /drivers/net/wireless/wl12xx/rx.h
parenta76a574ca9ce7c05791cee42f000f2a42c687837 (diff)
wl1271: Change wl12xx Files Names
All files name prefix removed due to the fact that wl12xx driver supports wl1271 and wl1273. Also the definition in Kconfig and header files changed respectively. Signed-off-by: Shahar Levi <shahar_levi@ti.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/rx.h')
-rw-r--r--drivers/net/wireless/wl12xx/rx.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/rx.h b/drivers/net/wireless/wl12xx/rx.h
new file mode 100644
index 00000000000..3abb26fe036
--- /dev/null
+++ b/drivers/net/wireless/wl12xx/rx.h
@@ -0,0 +1,121 @@
1/*
2 * This file is part of wl1271
3 *
4 * Copyright (C) 1998-2009 Texas Instruments. All rights reserved.
5 * Copyright (C) 2008-2009 Nokia Corporation
6 *
7 * Contact: Luciano Coelho <luciano.coelho@nokia.com>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21 * 02110-1301 USA
22 *
23 */
24
25#ifndef __RX_H__
26#define __RX_H__
27
28#include <linux/bitops.h>
29
30#define WL1271_RX_MAX_RSSI -30
31#define WL1271_RX_MIN_RSSI -95
32
33#define WL1271_RX_ALIGN_TO 4
34#define WL1271_RX_ALIGN(len) (((len) + WL1271_RX_ALIGN_TO - 1) & \
35 ~(WL1271_RX_ALIGN_TO - 1))
36
37#define SHORT_PREAMBLE_BIT BIT(0)
38#define OFDM_RATE_BIT BIT(6)
39#define PBCC_RATE_BIT BIT(7)
40
41#define PLCP_HEADER_LENGTH 8
42#define RX_DESC_PACKETID_SHIFT 11
43#define RX_MAX_PACKET_ID 3
44
45#define NUM_RX_PKT_DESC_MOD_MASK 7
46
47#define RX_DESC_VALID_FCS 0x0001
48#define RX_DESC_MATCH_RXADDR1 0x0002
49#define RX_DESC_MCAST 0x0004
50#define RX_DESC_STAINTIM 0x0008
51#define RX_DESC_VIRTUAL_BM 0x0010
52#define RX_DESC_BCAST 0x0020
53#define RX_DESC_MATCH_SSID 0x0040
54#define RX_DESC_MATCH_BSSID 0x0080
55#define RX_DESC_ENCRYPTION_MASK 0x0300
56#define RX_DESC_MEASURMENT 0x0400
57#define RX_DESC_SEQNUM_MASK 0x1800
58#define RX_DESC_MIC_FAIL 0x2000
59#define RX_DESC_DECRYPT_FAIL 0x4000
60
61/*
62 * RX Descriptor flags:
63 *
64 * Bits 0-1 - band
65 * Bit 2 - STBC
66 * Bit 3 - A-MPDU
67 * Bit 4 - HT
68 * Bits 5-7 - encryption
69 */
70#define WL1271_RX_DESC_BAND_MASK 0x03
71#define WL1271_RX_DESC_ENCRYPT_MASK 0xE0
72
73#define WL1271_RX_DESC_BAND_BG 0x00
74#define WL1271_RX_DESC_BAND_J 0x01
75#define WL1271_RX_DESC_BAND_A 0x02
76
77#define WL1271_RX_DESC_STBC BIT(2)
78#define WL1271_RX_DESC_A_MPDU BIT(3)
79#define WL1271_RX_DESC_HT BIT(4)
80
81#define WL1271_RX_DESC_ENCRYPT_WEP 0x20
82#define WL1271_RX_DESC_ENCRYPT_TKIP 0x40
83#define WL1271_RX_DESC_ENCRYPT_AES 0x60
84#define WL1271_RX_DESC_ENCRYPT_GEM 0x80
85
86/*
87 * RX Descriptor status
88 *
89 * Bits 0-2 - status
90 * Bits 3-7 - reserved
91 */
92#define WL1271_RX_DESC_STATUS_MASK 0x07
93
94#define WL1271_RX_DESC_SUCCESS 0x00
95#define WL1271_RX_DESC_DECRYPT_FAIL 0x01
96#define WL1271_RX_DESC_MIC_FAIL 0x02
97#define WL1271_RX_DESC_DRIVER_RX_Q_FAIL 0x03
98
99#define RX_MEM_BLOCK_MASK 0xFF
100#define RX_BUF_SIZE_MASK 0xFFF00
101#define RX_BUF_SIZE_SHIFT_DIV 6
102
103struct wl1271_rx_descriptor {
104 __le16 length;
105 u8 status;
106 u8 flags;
107 u8 rate;
108 u8 channel;
109 s8 rssi;
110 u8 snr;
111 __le32 timestamp;
112 u8 packet_class;
113 u8 process_id;
114 u8 pad_len;
115 u8 reserved;
116} __packed;
117
118void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status);
119u8 wl1271_rate_to_idx(int rate, enum ieee80211_band band);
120
121#endif