23 #ifdef __IN_PCMCIA_PACKAGE__
24 #include <pcmcia/k_compat.h>
27 #include <linux/kernel.h>
28 #include <linux/module.h>
29 #include <linux/ptrace.h>
30 #include <linux/slab.h>
31 #include <linux/string.h>
33 #include <linux/netdevice.h>
48 "cards. This is the module that links the PCMCIA card "
49 "with the airo module.");
55 static int airo_config(
struct pcmcia_device *
link);
56 static void airo_release(
struct pcmcia_device *
link);
58 static void airo_detach(
struct pcmcia_device *p_dev);
64 static int airo_probe(
struct pcmcia_device *p_dev)
68 dev_dbg(&p_dev->dev,
"airo_attach()\n");
78 return airo_config(p_dev);
81 static void airo_detach(
struct pcmcia_device *
link)
83 dev_dbg(&link->dev,
"airo_detach\n");
95 static int airo_cs_config_check(
struct pcmcia_device *p_dev,
void *priv_data)
97 if (p_dev->config_index == 0)
104 static int airo_config(
struct pcmcia_device *link)
111 dev_dbg(&link->dev,
"airo_config\n");
113 link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_VPP |
114 CONF_AUTO_AUDIO | CONF_AUTO_SET_IO;
116 ret = pcmcia_loop_config(link, airo_cs_config_check,
NULL);
128 link->resource[0]->start, 1, &link->dev);
139 static void airo_release(
struct pcmcia_device *link)
141 dev_dbg(&link->dev,
"airo_release\n");
145 static int airo_suspend(
struct pcmcia_device *link)
154 static int airo_resume(
struct pcmcia_device *link)
167 PCMCIA_DEVICE_MANF_CARD(0x015f, 0x000a),
168 PCMCIA_DEVICE_MANF_CARD(0x015f, 0x0005),
169 PCMCIA_DEVICE_MANF_CARD(0x015f, 0x0007),
170 PCMCIA_DEVICE_MANF_CARD(0x0105, 0x0007),
175 static struct pcmcia_driver airo_driver = {
179 .remove = airo_detach,
180 .id_table = airo_ids,
181 .suspend = airo_suspend,
182 .resume = airo_resume,
185 static int __init airo_cs_init(
void)
190 static void __exit airo_cs_cleanup(
void)