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
iwlwifi
iwl-io.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* Copyright(c) 2003 - 2012 Intel Corporation. All rights reserved.
4
*
5
* Portions of this file are derived from the ipw3945 project.
6
*
7
* This program is free software; you can redistribute it and/or modify it
8
* under the terms of version 2 of the GNU General Public License as
9
* published by the Free Software Foundation.
10
*
11
* This program is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14
* more details.
15
*
16
* You should have received a copy of the GNU General Public License along with
17
* this program; if not, write to the Free Software Foundation, Inc.,
18
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19
*
20
* The full GNU General Public License is included in this distribution in the
21
* file called LICENSE.
22
*
23
* Contact Information:
24
* Intel Linux Wireless <
[email protected]
>
25
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
26
*
27
*****************************************************************************/
28
29
#ifndef __iwl_io_h__
30
#define __iwl_io_h__
31
32
#include "
iwl-devtrace.h
"
33
#include "
iwl-trans.h
"
34
35
static
inline
void
iwl_write8(
struct
iwl_trans
*
trans
,
u32
ofs,
u8
val
)
36
{
37
trace_iwlwifi_dev_iowrite8(trans->
dev
, ofs, val);
38
iwl_trans_write8(trans, ofs, val);
39
}
40
41
static
inline
void
iwl_write32(
struct
iwl_trans
*
trans
,
u32
ofs,
u32
val
)
42
{
43
trace_iwlwifi_dev_iowrite32(trans->
dev
, ofs, val);
44
iwl_trans_write32(trans, ofs, val);
45
}
46
47
static
inline
u32
iwl_read32(
struct
iwl_trans
*
trans
,
u32
ofs)
48
{
49
u32
val
= iwl_trans_read32(trans, ofs);
50
trace_iwlwifi_dev_ioread32(trans->
dev
, ofs, val);
51
return
val
;
52
}
53
54
void
iwl_set_bit
(
struct
iwl_trans
*
trans
,
u32
reg
,
u32
mask
);
55
void
iwl_clear_bit
(
struct
iwl_trans
*
trans
,
u32
reg
,
u32
mask
);
56
57
void
iwl_set_bits_mask
(
struct
iwl_trans
*
trans
,
u32
reg
,
u32
mask
,
u32
value
);
58
59
int
iwl_poll_bit
(
struct
iwl_trans
*
trans
,
u32
addr
,
60
u32
bits
,
u32
mask
,
int
timeout);
61
int
iwl_poll_direct_bit
(
struct
iwl_trans
*
trans
,
u32
addr
,
u32
mask
,
62
int
timeout);
63
64
int
iwl_grab_nic_access_silent
(
struct
iwl_trans
*
trans
);
65
bool
iwl_grab_nic_access
(
struct
iwl_trans
*
trans
);
66
void
iwl_release_nic_access
(
struct
iwl_trans
*
trans
);
67
68
u32
iwl_read_direct32
(
struct
iwl_trans
*
trans
,
u32
reg
);
69
void
iwl_write_direct32
(
struct
iwl_trans
*
trans
,
u32
reg
,
u32
value
);
70
71
72
u32
iwl_read_prph
(
struct
iwl_trans
*
trans
,
u32
reg
);
73
void
iwl_write_prph
(
struct
iwl_trans
*
trans
,
u32
addr
,
u32
val
);
74
void
iwl_set_bits_prph
(
struct
iwl_trans
*
trans
,
u32
reg
,
u32
mask
);
75
void
iwl_set_bits_mask_prph
(
struct
iwl_trans
*
trans
,
u32
reg
,
76
u32
bits
,
u32
mask
);
77
void
iwl_clear_bits_prph
(
struct
iwl_trans
*
trans
,
u32
reg
,
u32
mask
);
78
79
void
_iwl_read_targ_mem_dwords
(
struct
iwl_trans
*
trans
,
u32
addr
,
80
void
*
buf
,
int
dwords);
81
82
#define iwl_read_targ_mem_bytes(trans, addr, buf, bufsize) \
83
do { \
84
BUILD_BUG_ON((bufsize) % sizeof(u32)); \
85
_iwl_read_targ_mem_dwords(trans, addr, buf, \
86
(bufsize) / sizeof(u32));\
87
} while (0)
88
89
int
_iwl_write_targ_mem_dwords
(
struct
iwl_trans
*
trans
,
u32
addr
,
90
void
*
buf
,
int
dwords);
91
92
u32
iwl_read_targ_mem
(
struct
iwl_trans
*
trans
,
u32
addr
);
93
int
iwl_write_targ_mem
(
struct
iwl_trans
*
trans
,
u32
addr
,
u32
val
);
94
#endif
Generated on Thu Jan 10 2013 14:11:50 for Linux Kernel by
1.8.2