diff options
author | Kalle Valo <kvalo@codeaurora.org> | 2015-11-17 12:49:19 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-11-18 04:18:34 -0500 |
commit | 30db0ca8bc78e9ba98c6c71edcd46ff6dd21cbf6 (patch) | |
tree | b3f75ca6eeb8b9b5191a9fb1df9143baf61df322 /drivers/net/wireless/airo_cs.c | |
parent | d4a173040a1023e9e0443ea572f4685df406cde9 (diff) |
airo: move under cisco vendor directory
Part of reorganising wireless drivers directory and Kconfig.
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/airo_cs.c')
-rw-r--r-- | drivers/net/wireless/airo_cs.c | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c deleted file mode 100644 index d9ed22b4cc6b..000000000000 --- a/drivers/net/wireless/airo_cs.c +++ /dev/null | |||
@@ -1,222 +0,0 @@ | |||
1 | /*====================================================================== | ||
2 | |||
3 | Aironet driver for 4500 and 4800 series cards | ||
4 | |||
5 | This code is released under both the GPL version 2 and BSD licenses. | ||
6 | Either license may be used. The respective licenses are found at | ||
7 | the end of this file. | ||
8 | |||
9 | This code was developed by Benjamin Reed <breed@users.sourceforge.net> | ||
10 | including portions of which come from the Aironet PC4500 | ||
11 | Developer's Reference Manual and used with permission. Copyright | ||
12 | (C) 1999 Benjamin Reed. All Rights Reserved. Permission to use | ||
13 | code in the Developer's manual was granted for this driver by | ||
14 | Aironet. | ||
15 | |||
16 | In addition this module was derived from dummy_cs. | ||
17 | The initial developer of dummy_cs is David A. Hinds | ||
18 | <dahinds@users.sourceforge.net>. Portions created by David A. Hinds | ||
19 | are Copyright (C) 1999 David A. Hinds. All Rights Reserved. | ||
20 | |||
21 | ======================================================================*/ | ||
22 | |||
23 | #ifdef __IN_PCMCIA_PACKAGE__ | ||
24 | #include <pcmcia/k_compat.h> | ||
25 | #endif | ||
26 | #include <linux/kernel.h> | ||
27 | #include <linux/module.h> | ||
28 | #include <linux/ptrace.h> | ||
29 | #include <linux/slab.h> | ||
30 | #include <linux/string.h> | ||
31 | #include <linux/timer.h> | ||
32 | #include <linux/netdevice.h> | ||
33 | |||
34 | #include <pcmcia/cistpl.h> | ||
35 | #include <pcmcia/cisreg.h> | ||
36 | #include <pcmcia/ds.h> | ||
37 | |||
38 | #include <linux/io.h> | ||
39 | |||
40 | #include "airo.h" | ||
41 | |||
42 | |||
43 | /*====================================================================*/ | ||
44 | |||
45 | MODULE_AUTHOR("Benjamin Reed"); | ||
46 | MODULE_DESCRIPTION("Support for Cisco/Aironet 802.11 wireless ethernet " | ||
47 | "cards. This is the module that links the PCMCIA card " | ||
48 | "with the airo module."); | ||
49 | MODULE_LICENSE("Dual BSD/GPL"); | ||
50 | MODULE_SUPPORTED_DEVICE("Aironet 4500, 4800 and Cisco 340 PCMCIA cards"); | ||
51 | |||
52 | /*====================================================================*/ | ||
53 | |||
54 | static int airo_config(struct pcmcia_device *link); | ||
55 | static void airo_release(struct pcmcia_device *link); | ||
56 | |||
57 | static void airo_detach(struct pcmcia_device *p_dev); | ||
58 | |||
59 | struct local_info { | ||
60 | struct net_device *eth_dev; | ||
61 | }; | ||
62 | |||
63 | static int airo_probe(struct pcmcia_device *p_dev) | ||
64 | { | ||
65 | struct local_info *local; | ||
66 | |||
67 | dev_dbg(&p_dev->dev, "airo_attach()\n"); | ||
68 | |||
69 | /* Allocate space for private device-specific data */ | ||
70 | local = kzalloc(sizeof(*local), GFP_KERNEL); | ||
71 | if (!local) | ||
72 | return -ENOMEM; | ||
73 | |||
74 | p_dev->priv = local; | ||
75 | |||
76 | return airo_config(p_dev); | ||
77 | } /* airo_attach */ | ||
78 | |||
79 | static void airo_detach(struct pcmcia_device *link) | ||
80 | { | ||
81 | dev_dbg(&link->dev, "airo_detach\n"); | ||
82 | |||
83 | airo_release(link); | ||
84 | |||
85 | if (((struct local_info *)link->priv)->eth_dev) { | ||
86 | stop_airo_card(((struct local_info *)link->priv)->eth_dev, | ||
87 | 0); | ||
88 | } | ||
89 | ((struct local_info *)link->priv)->eth_dev = NULL; | ||
90 | |||
91 | kfree(link->priv); | ||
92 | } /* airo_detach */ | ||
93 | |||
94 | static int airo_cs_config_check(struct pcmcia_device *p_dev, void *priv_data) | ||
95 | { | ||
96 | if (p_dev->config_index == 0) | ||
97 | return -EINVAL; | ||
98 | |||
99 | return pcmcia_request_io(p_dev); | ||
100 | } | ||
101 | |||
102 | |||
103 | static int airo_config(struct pcmcia_device *link) | ||
104 | { | ||
105 | struct local_info *dev; | ||
106 | int ret; | ||
107 | |||
108 | dev = link->priv; | ||
109 | |||
110 | dev_dbg(&link->dev, "airo_config\n"); | ||
111 | |||
112 | link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_VPP | | ||
113 | CONF_AUTO_AUDIO | CONF_AUTO_SET_IO; | ||
114 | |||
115 | ret = pcmcia_loop_config(link, airo_cs_config_check, NULL); | ||
116 | if (ret) | ||
117 | goto failed; | ||
118 | |||
119 | if (!link->irq) | ||
120 | goto failed; | ||
121 | |||
122 | ret = pcmcia_enable_device(link); | ||
123 | if (ret) | ||
124 | goto failed; | ||
125 | ((struct local_info *)link->priv)->eth_dev = | ||
126 | init_airo_card(link->irq, | ||
127 | link->resource[0]->start, 1, &link->dev); | ||
128 | if (!((struct local_info *)link->priv)->eth_dev) | ||
129 | goto failed; | ||
130 | |||
131 | return 0; | ||
132 | |||
133 | failed: | ||
134 | airo_release(link); | ||
135 | return -ENODEV; | ||
136 | } /* airo_config */ | ||
137 | |||
138 | static void airo_release(struct pcmcia_device *link) | ||
139 | { | ||
140 | dev_dbg(&link->dev, "airo_release\n"); | ||
141 | pcmcia_disable_device(link); | ||
142 | } | ||
143 | |||
144 | static int airo_suspend(struct pcmcia_device *link) | ||
145 | { | ||
146 | struct local_info *local = link->priv; | ||
147 | |||
148 | netif_device_detach(local->eth_dev); | ||
149 | |||
150 | return 0; | ||
151 | } | ||
152 | |||
153 | static int airo_resume(struct pcmcia_device *link) | ||
154 | { | ||
155 | struct local_info *local = link->priv; | ||
156 | |||
157 | if (link->open) { | ||
158 | reset_airo_card(local->eth_dev); | ||
159 | netif_device_attach(local->eth_dev); | ||
160 | } | ||
161 | |||
162 | return 0; | ||
163 | } | ||
164 | |||
165 | static const struct pcmcia_device_id airo_ids[] = { | ||
166 | PCMCIA_DEVICE_MANF_CARD(0x015f, 0x000a), | ||
167 | PCMCIA_DEVICE_MANF_CARD(0x015f, 0x0005), | ||
168 | PCMCIA_DEVICE_MANF_CARD(0x015f, 0x0007), | ||
169 | PCMCIA_DEVICE_MANF_CARD(0x0105, 0x0007), | ||
170 | PCMCIA_DEVICE_NULL, | ||
171 | }; | ||
172 | MODULE_DEVICE_TABLE(pcmcia, airo_ids); | ||
173 | |||
174 | static struct pcmcia_driver airo_driver = { | ||
175 | .owner = THIS_MODULE, | ||
176 | .name = "airo_cs", | ||
177 | .probe = airo_probe, | ||
178 | .remove = airo_detach, | ||
179 | .id_table = airo_ids, | ||
180 | .suspend = airo_suspend, | ||
181 | .resume = airo_resume, | ||
182 | }; | ||
183 | module_pcmcia_driver(airo_driver); | ||
184 | |||
185 | /* | ||
186 | This program is free software; you can redistribute it and/or | ||
187 | modify it under the terms of the GNU General Public License | ||
188 | as published by the Free Software Foundation; either version 2 | ||
189 | of the License, or (at your option) any later version. | ||
190 | |||
191 | This program is distributed in the hope that it will be useful, | ||
192 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
193 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
194 | GNU General Public License for more details. | ||
195 | |||
196 | In addition: | ||
197 | |||
198 | Redistribution and use in source and binary forms, with or without | ||
199 | modification, are permitted provided that the following conditions | ||
200 | are met: | ||
201 | |||
202 | 1. Redistributions of source code must retain the above copyright | ||
203 | notice, this list of conditions and the following disclaimer. | ||
204 | 2. Redistributions in binary form must reproduce the above copyright | ||
205 | notice, this list of conditions and the following disclaimer in the | ||
206 | documentation and/or other materials provided with the distribution. | ||
207 | 3. The name of the author may not be used to endorse or promote | ||
208 | products derived from this software without specific prior written | ||
209 | permission. | ||
210 | |||
211 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
212 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
213 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
214 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, | ||
215 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
216 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||
217 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
218 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
219 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | ||
220 | IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
221 | POSSIBILITY OF SUCH DAMAGE. | ||
222 | */ | ||