Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
wireless
b43
main.h
Go to the documentation of this file.
1
/*
2
3
Broadcom B43 wireless driver
4
5
Copyright (c) 2005 Martin Langer <
[email protected]
>,
6
Stefano Brivio <
[email protected]
>
7
Michael Buesch <
[email protected]
>
8
Danny van Dyk <
[email protected]
>
9
Andreas Jaggi <
[email protected]
>
10
11
Some parts of the code in this file are derived from the ipw2200
12
driver Copyright(c) 2003 - 2004 Intel Corporation.
13
14
This program is free software; you can redistribute it and/or modify
15
it under the terms of the GNU General Public License as published by
16
the Free Software Foundation; either version 2 of the License, or
17
(at your option) any later version.
18
19
This program is distributed in the hope that it will be useful,
20
but WITHOUT ANY WARRANTY; without even the implied warranty of
21
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
GNU General Public License for more details.
23
24
You should have received a copy of the GNU General Public License
25
along with this program; see the file COPYING. If not, write to
26
the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
27
Boston, MA 02110-1301, USA.
28
29
*/
30
31
#ifndef B43_MAIN_H_
32
#define B43_MAIN_H_
33
34
#include "
b43.h
"
35
36
#define P4D_BYT3S(magic, nr_bytes) u8 __p4dding##magic[nr_bytes]
37
#define P4D_BYTES(line, nr_bytes) P4D_BYT3S(line, nr_bytes)
38
/* Magic helper macro to pad structures. Ignore those above. It's magic. */
39
#define PAD_BYTES(nr_bytes) P4D_BYTES( __LINE__ , (nr_bytes))
40
41
42
extern
int
b43_modparam_verbose
;
43
44
/* Logmessage verbosity levels. Update the b43_modparam_verbose helptext, if
45
* you add or remove levels. */
46
enum
b43_verbosity
{
47
B43_VERBOSITY_ERROR
,
48
B43_VERBOSITY_WARN
,
49
B43_VERBOSITY_INFO
,
50
B43_VERBOSITY_DEBUG
,
51
__B43_VERBOSITY_AFTERLAST
,
/* keep last */
52
53
B43_VERBOSITY_MAX
=
__B43_VERBOSITY_AFTERLAST
- 1,
54
#if B43_DEBUG
55
B43_VERBOSITY_DEFAULT
=
B43_VERBOSITY_DEBUG
,
56
#else
57
B43_VERBOSITY_DEFAULT =
B43_VERBOSITY_INFO
,
58
#endif
59
};
60
61
62
/* Lightweight function to convert a frequency (in Mhz) to a channel number. */
63
static
inline
u8
b43_freq_to_channel_5ghz(
int
freq
)
64
{
65
return
((freq - 5000) / 5);
66
}
67
static
inline
u8
b43_freq_to_channel_2ghz(
int
freq
)
68
{
69
u8
channel
;
70
71
if
(freq == 2484)
72
channel = 14;
73
else
74
channel = (freq - 2407) / 5;
75
76
return
channel
;
77
}
78
79
/* Lightweight function to convert a channel number to a frequency (in Mhz). */
80
static
inline
int
b43_channel_to_freq_5ghz(
u8
channel)
81
{
82
return
(5000 + (5 * channel));
83
}
84
static
inline
int
b43_channel_to_freq_2ghz(
u8
channel)
85
{
86
int
freq
;
87
88
if
(channel == 14)
89
freq = 2484;
90
else
91
freq = 2407 + (5 *
channel
);
92
93
return
freq
;
94
}
95
96
static
inline
int
b43_is_cck_rate(
int
rate
)
97
{
98
return
(rate ==
B43_CCK_RATE_1MB
||
99
rate ==
B43_CCK_RATE_2MB
||
100
rate ==
B43_CCK_RATE_5MB
|| rate ==
B43_CCK_RATE_11MB
);
101
}
102
103
static
inline
int
b43_is_ofdm_rate(
int
rate)
104
{
105
return
!b43_is_cck_rate(rate);
106
}
107
108
u8
b43_ieee80211_antenna_sanitize
(
struct
b43_wldev
*
dev
,
109
u8
antenna_nr);
110
111
void
b43_tsf_read
(
struct
b43_wldev
*
dev
,
u64
*
tsf
);
112
void
b43_tsf_write
(
struct
b43_wldev
*
dev
,
u64
tsf
);
113
114
u32
b43_shm_read32
(
struct
b43_wldev
*
dev
,
u16
routing,
u16
offset
);
115
u16
b43_shm_read16
(
struct
b43_wldev
*
dev
,
u16
routing,
u16
offset
);
116
void
b43_shm_write32
(
struct
b43_wldev
*
dev
,
u16
routing,
u16
offset
,
u32
value
);
117
void
b43_shm_write16
(
struct
b43_wldev
*
dev
,
u16
routing,
u16
offset
,
u16
value
);
118
119
u64
b43_hf_read
(
struct
b43_wldev
*
dev
);
120
void
b43_hf_write
(
struct
b43_wldev
*
dev
,
u64
value
);
121
122
void
b43_dummy_transmission
(
struct
b43_wldev
*
dev
,
bool
ofdm
,
bool
pa_on);
123
124
void
b43_wireless_core_reset
(
struct
b43_wldev
*
dev
,
bool
gmode);
125
126
void
b43_controller_restart
(
struct
b43_wldev
*
dev
,
const
char
*
reason
);
127
128
#define B43_PS_ENABLED (1 << 0)
/* Force enable hardware power saving */
129
#define B43_PS_DISABLED (1 << 1)
/* Force disable hardware power saving */
130
#define B43_PS_AWAKE (1 << 2)
/* Force device awake */
131
#define B43_PS_ASLEEP (1 << 3)
/* Force device asleep */
132
void
b43_power_saving_ctl_bits
(
struct
b43_wldev
*
dev
,
unsigned
int
ps_flags);
133
134
void
b43_mac_suspend
(
struct
b43_wldev
*
dev
);
135
void
b43_mac_enable
(
struct
b43_wldev
*
dev
);
136
void
b43_mac_phy_clock_set
(
struct
b43_wldev
*
dev
,
bool
on);
137
138
139
struct
b43_request_fw_context
;
140
int
b43_do_request_fw
(
struct
b43_request_fw_context
*
ctx
,
141
const
char
*
name
,
142
struct
b43_firmware_file
*
fw
);
143
void
b43_do_release_fw
(
struct
b43_firmware_file
*
fw
);
144
145
#endif
/* B43_MAIN_H_ */
Generated on Thu Jan 10 2013 14:09:41 for Linux Kernel by
1.8.2