Lines Matching +full:arc +full:- +full:timer

2  * Linux ARCnet driver - COM20020 PCMCIA support
4 * Written 1994-1999 by Avery Pennarun,
6 * Derived from ibmtr_cs.c by Steve Kipisz (pcmcia-cs 3.1.4)
25 * Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 08/08/2000
26 * - reorganize kmallocs in com20020_attach, checking all for failure
41 #include <linux/timer.h>
55 int ioaddr = dev->base_addr; in regdump()
117 int ret = -ENOMEM; in com20020_probe()
119 dev_dbg(&p_dev->dev, "com20020_attach()\n"); in com20020_probe()
131 lp->timeout = timeout; in com20020_probe()
132 lp->backplane = backplane; in com20020_probe()
133 lp->clockp = clockp; in com20020_probe()
134 lp->clockm = clockm & 3; in com20020_probe()
135 lp->hw.owner = THIS_MODULE; in com20020_probe()
140 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_8; in com20020_probe()
141 p_dev->resource[0]->end = 16; in com20020_probe()
142 p_dev->config_flags |= CONF_ENABLE_IRQ; in com20020_probe()
144 info->dev = dev; in com20020_probe()
145 p_dev->priv = info; in com20020_probe()
163 struct com20020_dev *info = link->priv; in com20020_detach()
164 struct net_device *dev = info->dev; in com20020_detach()
166 dev_dbg(&link->dev, "detach...\n"); in com20020_detach()
168 dev_dbg(&link->dev, "com20020_detach\n"); in com20020_detach()
170 dev_dbg(&link->dev, "unregister...\n"); in com20020_detach()
177 if (dev->irq) in com20020_detach()
178 free_irq(dev->irq, dev); in com20020_detach()
183 dev_dbg(&link->dev, "unlinking...\n"); in com20020_detach()
184 if (link->priv) { in com20020_detach()
185 dev = info->dev; in com20020_detach()
187 dev_dbg(&link->dev, "kfree...\n"); in com20020_detach()
190 dev_dbg(&link->dev, "kfree2...\n"); in com20020_detach()
204 info = link->priv; in com20020_config()
205 dev = info->dev; in com20020_config()
207 dev_dbg(&link->dev, "config...\n"); in com20020_config()
209 dev_dbg(&link->dev, "com20020_config\n"); in com20020_config()
211 dev_dbg(&link->dev, "baseport1 is %Xh\n", in com20020_config()
212 (unsigned int)link->resource[0]->start); in com20020_config()
214 i = -ENODEV; in com20020_config()
215 link->io_lines = 16; in com20020_config()
217 if (!link->resource[0]->start) { in com20020_config()
219 link->resource[0]->start = ioaddr; in com20020_config()
229 dev_dbg(&link->dev, "requestIO failed totally!\n"); in com20020_config()
233 ioaddr = dev->base_addr = link->resource[0]->start; in com20020_config()
234 dev_dbg(&link->dev, "got ioaddr %Xh\n", ioaddr); in com20020_config()
236 dev_dbg(&link->dev, "request IRQ %d\n", in com20020_config()
237 link->irq); in com20020_config()
238 if (!link->irq) { in com20020_config()
239 dev_dbg(&link->dev, "requestIRQ failed totally!\n"); in com20020_config()
243 dev->irq = link->irq; in com20020_config()
255 lp->card_name = "PCMCIA COM20020"; in com20020_config()
256 lp->card_flags = ARC_CAN_10MBIT; /* pretend all of them can 10Mbit */ in com20020_config()
258 SET_NETDEV_DEV(dev, &link->dev); in com20020_config()
263 dev_notice(&link->dev, in com20020_config()
269 dev->base_addr, dev->irq); in com20020_config()
273 dev_dbg(&link->dev, "com20020_config failed...\n"); in com20020_config()
275 return -ENODEV; in com20020_config()
280 dev_dbg(&link->dev, "com20020_release\n"); in com20020_release()
286 struct com20020_dev *info = link->priv; in com20020_suspend()
287 struct net_device *dev = info->dev; in com20020_suspend()
289 if (link->open) in com20020_suspend()
297 struct com20020_dev *info = link->priv; in com20020_resume()
298 struct net_device *dev = info->dev; in com20020_resume()
300 if (link->open) { in com20020_resume()
301 int ioaddr = dev->base_addr; in com20020_resume()
304 arcnet_outb(lp->config | 0x80, ioaddr, COM20020_REG_W_CONFIG); in com20020_resume()
306 arcnet_outb(lp->config, ioaddr, COM20020_REG_W_CONFIG); in com20020_resume()
316 "SH ARC PCMCIA", 0xf8991729, 0x69dff0c7),