1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#ifndef RT2X00PCI_H
27#define RT2X00PCI_H
28
29#include <linux/io.h>
30#include <linux/pci.h>
31
32
33
34
35
36#define PCI_DEVICE_DATA(__ops) .driver_data = (kernel_ulong_t)(__ops)
37
38
39
40
41static inline void rt2x00pci_register_read(struct rt2x00_dev *rt2x00dev,
42 const unsigned int offset,
43 u32 *value)
44{
45 *value = readl(rt2x00dev->csr.base + offset);
46}
47
48static inline void rt2x00pci_register_multiread(struct rt2x00_dev *rt2x00dev,
49 const unsigned int offset,
50 void *value, const u32 length)
51{
52 memcpy_fromio(value, rt2x00dev->csr.base + offset, length);
53}
54
55static inline void rt2x00pci_register_write(struct rt2x00_dev *rt2x00dev,
56 const unsigned int offset,
57 u32 value)
58{
59 writel(value, rt2x00dev->csr.base + offset);
60}
61
62static inline void rt2x00pci_register_multiwrite(struct rt2x00_dev *rt2x00dev,
63 const unsigned int offset,
64 const void *value,
65 const u32 length)
66{
67 __iowrite32_copy(rt2x00dev->csr.base + offset, value, length >> 2);
68}
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83int rt2x00pci_regbusy_read(struct rt2x00_dev *rt2x00dev,
84 const unsigned int offset,
85 const struct rt2x00_field32 field,
86 u32 *reg);
87
88
89
90
91
92
93
94
95
96struct queue_entry_priv_pci {
97 __le32 *desc;
98 dma_addr_t desc_dma;
99};
100
101
102
103
104
105void rt2x00pci_rxdone(struct rt2x00_dev *rt2x00dev);
106
107
108
109
110int rt2x00pci_initialize(struct rt2x00_dev *rt2x00dev);
111void rt2x00pci_uninitialize(struct rt2x00_dev *rt2x00dev);
112
113
114
115
116int rt2x00pci_probe(struct pci_dev *pci_dev, const struct pci_device_id *id);
117void rt2x00pci_remove(struct pci_dev *pci_dev);
118#ifdef CONFIG_PM
119int rt2x00pci_suspend(struct pci_dev *pci_dev, pm_message_t state);
120int rt2x00pci_resume(struct pci_dev *pci_dev);
121#else
122#define rt2x00pci_suspend NULL
123#define rt2x00pci_resume NULL
124#endif
125
126#endif
127