Lines Matching refs:card
99 struct card_s *card; member
135 #define sca_reg(reg, card) (0x8000 | (card)->io | \ argument
137 #define sca_in(reg, card) inb(sca_reg(reg, card)) argument
138 #define sca_out(value, reg, card) outb(value, sca_reg(reg, card)) argument
139 #define sca_inw(reg, card) inw(sca_reg(reg, card)) argument
140 #define sca_outw(value, reg, card) outw(value, sca_reg(reg, card)) argument
142 #define port_to_card(port) ((port)->card)
145 #define winsize(card) (USE_WINDOWSIZE) argument
146 #define winbase(card) ((card)->winbase) argument
147 #define get_port(card, port) ((card)->ports[port].valid ? \ argument
148 &(card)->ports[port] : NULL)
151 static __inline__ u8 sca_get_page(card_t *card) in sca_get_page() argument
153 return inb(card->io + N2_PSR) & PSR_PAGEBITS; in sca_get_page()
157 static __inline__ void openwin(card_t *card, u8 page) in openwin() argument
159 u8 psr = inb(card->io + N2_PSR); in openwin()
160 outb((psr & ~PSR_PAGEBITS) | page, card->io + N2_PSR); in openwin()
169 card_t *card = port->card; in n2_set_iface() local
170 int io = card->io; in n2_set_iface()
204 sca_out(rxs, msci + RXS, card); in n2_set_iface()
205 sca_out(txs, msci + TXS, card); in n2_set_iface()
214 int io = port->card->io; in n2_open()
237 int io = port->card->io; in n2_close()
303 static void n2_destroy_card(card_t *card) in n2_destroy_card() argument
308 if (card->ports[cnt].card) { in n2_destroy_card()
309 struct net_device *dev = port_to_dev(&card->ports[cnt]); in n2_destroy_card()
313 if (card->irq) in n2_destroy_card()
314 free_irq(card->irq, card); in n2_destroy_card()
316 if (card->winbase) { in n2_destroy_card()
317 iounmap(card->winbase); in n2_destroy_card()
318 release_mem_region(card->phy_winbase, USE_WINDOWSIZE); in n2_destroy_card()
321 if (card->io) in n2_destroy_card()
322 release_region(card->io, N2_IOPORTS); in n2_destroy_card()
323 if (card->ports[0].dev) in n2_destroy_card()
324 free_netdev(card->ports[0].dev); in n2_destroy_card()
325 if (card->ports[1].dev) in n2_destroy_card()
326 free_netdev(card->ports[1].dev); in n2_destroy_card()
327 kfree(card); in n2_destroy_card()
341 card_t *card; in n2_run() local
360 card = kzalloc(sizeof(card_t), GFP_KERNEL); in n2_run()
361 if (card == NULL) in n2_run()
364 card->ports[0].dev = alloc_hdlcdev(&card->ports[0]); in n2_run()
365 card->ports[1].dev = alloc_hdlcdev(&card->ports[1]); in n2_run()
366 if (!card->ports[0].dev || !card->ports[1].dev) { in n2_run()
368 n2_destroy_card(card); in n2_run()
374 n2_destroy_card(card); in n2_run()
377 card->io = io; in n2_run()
379 if (request_irq(irq, sca_intr, 0, devname, card)) { in n2_run()
381 n2_destroy_card(card); in n2_run()
384 card->irq = irq; in n2_run()
388 n2_destroy_card(card); in n2_run()
391 card->phy_winbase = winbase; in n2_run()
392 card->winbase = ioremap(winbase, USE_WINDOWSIZE); in n2_run()
393 if (!card->winbase) { in n2_run()
395 n2_destroy_card(card); in n2_run()
417 n2_destroy_card(card); in n2_run()
424 card->ram_size = sca_detect_ram(card, card->winbase, MAX_RAM_SIZE); in n2_run()
427 i = card->ram_size / ((valid0 + valid1) * (sizeof(pkt_desc) + in n2_run()
430 card->tx_ring_buffers = min(i / 2, MAX_TX_BUFFERS); in n2_run()
431 card->rx_ring_buffers = i - card->tx_ring_buffers; in n2_run()
433 card->buff_offset = (valid0 + valid1) * sizeof(pkt_desc) * in n2_run()
434 (card->tx_ring_buffers + card->rx_ring_buffers); in n2_run()
437 card->ram_size / 1024, card->irq, in n2_run()
438 card->tx_ring_buffers, card->rx_ring_buffers); in n2_run()
440 if (card->tx_ring_buffers < 1) { in n2_run()
442 n2_destroy_card(card); in n2_run()
450 sca_init(card, 0); in n2_run()
452 port_t *port = &card->ports[cnt]; in n2_run()
474 port->card = card; in n2_run()
478 port->card = NULL; in n2_run()
479 n2_destroy_card(card); in n2_run()
487 *new_card = card; in n2_run()
488 new_card = &card->next_card; in n2_run()
549 card_t *card = first_card; in n2_cleanup() local
551 while (card) { in n2_cleanup()
552 card_t *ptr = card; in n2_cleanup()
553 card = card->next_card; in n2_cleanup()