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
lo.h
Go to the documentation of this file.
1
#ifndef B43_LO_H_
2
#define B43_LO_H_
3
4
/* G-PHY Local Oscillator */
5
6
#include "
phy_g.h
"
7
8
struct
b43_wldev
;
9
10
/* Local Oscillator control value-pair. */
11
struct
b43_loctl
{
12
/* Control values. */
13
s8
i
;
14
s8
q
;
15
};
16
/* Debugging: Poison value for i and q values. */
17
#define B43_LOCTL_POISON 111
18
19
/* This struct holds calibrated LO settings for a set of
20
* Baseband and RF attenuation settings. */
21
struct
b43_lo_calib
{
22
/* The set of attenuation values this set of LO
23
* control values is calibrated for. */
24
struct
b43_bbatt
bbatt
;
25
struct
b43_rfatt
rfatt
;
26
/* The set of control values for the LO. */
27
struct
b43_loctl
ctl
;
28
/* The time when these settings were calibrated (in jiffies) */
29
unsigned
long
calib_time
;
30
/* List. */
31
struct
list_head
list
;
32
};
33
34
/* Size of the DC Lookup Table in 16bit words. */
35
#define B43_DC_LT_SIZE 32
36
37
/* Local Oscillator calibration information */
38
struct
b43_txpower_lo_control
{
39
/* Lists of RF and BB attenuation values for this device.
40
* Used for building hardware power control tables. */
41
struct
b43_rfatt_list
rfatt_list
;
42
struct
b43_bbatt_list
bbatt_list
;
43
44
/* The DC Lookup Table is cached in memory here.
45
* Note that this is only used for Hardware Power Control. */
46
u16
dc_lt
[
B43_DC_LT_SIZE
];
47
48
/* List of calibrated control values (struct b43_lo_calib). */
49
struct
list_head
calib_list
;
50
/* Last time the power vector was read (jiffies). */
51
unsigned
long
pwr_vec_read_time
;
52
/* Last time the txctl values were measured (jiffies). */
53
unsigned
long
txctl_measured_time
;
54
55
/* Current TX Bias value */
56
u8
tx_bias
;
57
/* Current TX Magnification Value (if used by the device) */
58
u8
tx_magn
;
59
60
/* Saved device PowerVector */
61
u64
power_vector
;
62
};
63
64
/* Calibration expire timeouts.
65
* Timeouts must be multiple of 15 seconds. To make sure
66
* the item really expired when the 15 second timer hits, we
67
* subtract two additional seconds from the timeout. */
68
#define B43_LO_CALIB_EXPIRE (HZ * (30 - 2))
69
#define B43_LO_PWRVEC_EXPIRE (HZ * (30 - 2))
70
#define B43_LO_TXCTL_EXPIRE (HZ * (180 - 4))
71
72
73
/* Adjust the Local Oscillator to the saved attenuation
74
* and txctl values.
75
*/
76
void
b43_lo_g_adjust
(
struct
b43_wldev
*
dev
);
77
/* Adjust to specific values. */
78
void
b43_lo_g_adjust_to
(
struct
b43_wldev
*
dev
,
79
u16
rfatt,
u16
bbatt,
u16
tx_control
);
80
81
void
b43_gphy_dc_lt_init
(
struct
b43_wldev
*
dev
,
bool
update_all);
82
83
void
b43_lo_g_maintanance_work
(
struct
b43_wldev
*
dev
);
84
void
b43_lo_g_cleanup
(
struct
b43_wldev
*
dev
);
85
void
b43_lo_g_init
(
struct
b43_wldev
*
dev
);
86
87
#endif
/* B43_LO_H_ */
Generated on Thu Jan 10 2013 14:09:41 for Linux Kernel by
1.8.2