Lines Matching refs:card

82 	struct card_s *card;  member
114 #define get_port(card, port) ((port) < (card)->n_ports ? \ argument
115 (&(card)->ports[port]) : (NULL))
122 card_t *card = port->card; in pc300_set_iface() local
123 u32 __iomem * init_ctrl = &card->plxbase->init_ctrl; in pc300_set_iface()
129 port->card); in pc300_set_iface()
154 sca_out(rxs, msci + RXS, card); in pc300_set_iface()
155 sca_out(txs, msci + TXS, card); in pc300_set_iface()
158 if (port->card->type == PC300_RSV) { in pc300_set_iface()
160 writel(card->init_ctrl_value | in pc300_set_iface()
163 writel(card->init_ctrl_value & in pc300_set_iface()
223 if (port->card->type == PC300_X21 && in pc300_ioctl()
228 else if (port->card->type == PC300_RSV && in pc300_ioctl()
233 else if (port->card->type == PC300_RSV && in pc300_ioctl()
266 card_t *card = pci_get_drvdata(pdev); in pc300_pci_remove_one() local
269 if (card->ports[i].card) in pc300_pci_remove_one()
270 unregister_hdlc_device(card->ports[i].netdev); in pc300_pci_remove_one()
272 if (card->irq) in pc300_pci_remove_one()
273 free_irq(card->irq, card); in pc300_pci_remove_one()
275 if (card->rambase) in pc300_pci_remove_one()
276 iounmap(card->rambase); in pc300_pci_remove_one()
277 if (card->scabase) in pc300_pci_remove_one()
278 iounmap(card->scabase); in pc300_pci_remove_one()
279 if (card->plxbase) in pc300_pci_remove_one()
280 iounmap(card->plxbase); in pc300_pci_remove_one()
284 if (card->ports[0].netdev) in pc300_pci_remove_one()
285 free_netdev(card->ports[0].netdev); in pc300_pci_remove_one()
286 if (card->ports[1].netdev) in pc300_pci_remove_one()
287 free_netdev(card->ports[1].netdev); in pc300_pci_remove_one()
288 kfree(card); in pc300_pci_remove_one()
302 card_t *card; in pc300_pci_init_one() local
320 card = kzalloc(sizeof(card_t), GFP_KERNEL); in pc300_pci_init_one()
321 if (card == NULL) { in pc300_pci_init_one()
326 pci_set_drvdata(pdev, card); in pc300_pci_init_one()
337 card->plxbase = ioremap(plxphys, PC300_PLX_SIZE); in pc300_pci_init_one()
340 card->scabase = ioremap(scaphys, PC300_SCA_SIZE); in pc300_pci_init_one()
343 card->rambase = pci_ioremap_bar(pdev, 3); in pc300_pci_init_one()
345 if (card->plxbase == NULL || in pc300_pci_init_one()
346 card->scabase == NULL || in pc300_pci_init_one()
347 card->rambase == NULL) { in pc300_pci_init_one()
354 card->init_ctrl_value = readl(&((plx9050 __iomem *)card->scabase)->init_ctrl); in pc300_pci_init_one()
359 card->type = PC300_TE; /* not fully supported */ in pc300_pci_init_one()
360 else if (card->init_ctrl_value & PC300_CTYPE_MASK) in pc300_pci_init_one()
361 card->type = PC300_X21; in pc300_pci_init_one()
363 card->type = PC300_RSV; in pc300_pci_init_one()
367 card->n_ports = 1; in pc300_pci_init_one()
369 card->n_ports = 2; in pc300_pci_init_one()
371 for (i = 0; i < card->n_ports; i++) in pc300_pci_init_one()
372 if (!(card->ports[i].netdev = alloc_hdlcdev(&card->ports[i]))) { in pc300_pci_init_one()
379 p = &card->plxbase->init_ctrl; in pc300_pci_init_one()
380 writel(card->init_ctrl_value | 0x40000000, p); in pc300_pci_init_one()
384 writel(card->init_ctrl_value, p); in pc300_pci_init_one()
389 writel(card->init_ctrl_value | 0x20000000, p); in pc300_pci_init_one()
393 writel(card->init_ctrl_value, p); in pc300_pci_init_one()
397 ramsize = sca_detect_ram(card, card->rambase, in pc300_pci_init_one()
401 card->init_ctrl_value &= ~PC300_CLKSEL_MASK; in pc300_pci_init_one()
403 card->init_ctrl_value |= PC300_CLKSEL_MASK; in pc300_pci_init_one()
405 writel(card->init_ctrl_value, &card->plxbase->init_ctrl); in pc300_pci_init_one()
407 i = ramsize / (card->n_ports * (sizeof(pkt_desc) + HDLC_MAX_MRU)); in pc300_pci_init_one()
408 card->tx_ring_buffers = min(i / 2, MAX_TX_BUFFERS); in pc300_pci_init_one()
409 card->rx_ring_buffers = i - card->tx_ring_buffers; in pc300_pci_init_one()
411 card->buff_offset = card->n_ports * sizeof(pkt_desc) * in pc300_pci_init_one()
412 (card->tx_ring_buffers + card->rx_ring_buffers); in pc300_pci_init_one()
415 card->type == PC300_X21 ? "X21" : in pc300_pci_init_one()
416 card->type == PC300_TE ? "TE" : "RSV", in pc300_pci_init_one()
418 card->tx_ring_buffers, card->rx_ring_buffers); in pc300_pci_init_one()
420 if (card->tx_ring_buffers < 1) { in pc300_pci_init_one()
427 writew(0x0041, &card->plxbase->intr_ctrl_stat); in pc300_pci_init_one()
430 if (request_irq(pdev->irq, sca_intr, IRQF_SHARED, "pc300", card)) { in pc300_pci_init_one()
435 card->irq = pdev->irq; in pc300_pci_init_one()
437 sca_init(card, 0); in pc300_pci_init_one()
442 sca_out(0x10, BTCR, card); in pc300_pci_init_one()
444 for (i = 0; i < card->n_ports; i++) { in pc300_pci_init_one()
445 port_t *port = &card->ports[i]; in pc300_pci_init_one()
451 dev->irq = card->irq; in pc300_pci_init_one()
459 port->card = card; in pc300_pci_init_one()
460 if (card->type == PC300_X21) in pc300_pci_init_one()
468 port->card = NULL; in pc300_pci_init_one()