Lines Matching full:card

55 static inline int sca_intr_status(card_t *card)  in sca_intr_status()  argument
58 u8 isr0 = sca_in(ISR0, card); in sca_intr_status()
59 u8 isr1 = sca_in(ISR1, card); in sca_intr_status()
75 if (sca_in(DSR_TX(0), card) & DSR_EOM) in sca_intr_status()
78 if (sca_in(DSR_TX(1), card) & DSR_EOM) in sca_intr_status()
148 card_t *card = port_to_card(port); in sca_init_port() local
156 openwin(card, 0); in sca_init_port()
161 u16 buffs = transmit ? card->tx_ring_buffers in sca_init_port()
162 : card->rx_ring_buffers; in sca_init_port()
177 DSR_RX(phy_node(port)), card); in sca_init_port()
180 DCR_RX(phy_node(port)), card); in sca_init_port()
183 sca_out(0, dmac + CPB, card); /* pointer base */ in sca_init_port()
184 sca_outw(desc_offset(port, 0, transmit), dmac + CDAL, card); in sca_init_port()
187 dmac + EDAL, card); in sca_init_port()
190 card); in sca_init_port()
194 DCR_RX(phy_node(port)), card); in sca_init_port()
198 sca_outw(HDLC_MAX_MRU, dmac + BFLL, card); in sca_init_port()
200 sca_out(0x14, DMR_RX(phy_node(port)), card); in sca_init_port()
202 card); in sca_init_port()
204 sca_out(DSR_DE, DSR_RX(phy_node(port)), card); in sca_init_port()
207 sca_out(0x14, DMR_TX(phy_node(port)), card); in sca_init_port()
209 sca_out(DIR_BOFE, DIR_TX(phy_node(port)), card); in sca_init_port()
220 card_t *card = port_to_card(port); in sca_msci_intr() local
221 u8 stat = sca_in(msci + ST1, card); /* read MSCI ST1 status */ in sca_msci_intr()
224 sca_out(stat & (ST1_UDRN | ST1_CDCD), msci + ST1, card); in sca_msci_intr()
237 static inline void sca_rx(card_t *card, port_t *port, pkt_desc __iomem *desc, in sca_rx() argument
255 page = buff / winsize(card); in sca_rx()
256 buff = buff % winsize(card); in sca_rx()
257 maxlen = winsize(card) - buff; in sca_rx()
259 openwin(card, page); in sca_rx()
262 memcpy_fromio(skb->data, winbase(card) + buff, maxlen); in sca_rx()
263 openwin(card, page + 1); in sca_rx()
264 memcpy_fromio(skb->data + maxlen, winbase(card), len - maxlen); in sca_rx()
266 memcpy_fromio(skb->data, winbase(card) + buff, len); in sca_rx()
270 openwin(card, 0); /* select pkt_desc table page back */ in sca_rx()
288 card_t *card = port_to_card(port); in sca_rx_intr() local
289 u8 stat = sca_in(DSR_RX(phy_node(port)), card); /* read DMA Status */ in sca_rx_intr()
293 DSR_RX(phy_node(port)), card); in sca_rx_intr()
302 u32 cda = sca_inw(dmac + CDAL, card); in sca_rx_intr()
323 sca_rx(card, port, desc, port->rxin); in sca_rx_intr()
327 sca_outw(desc_off, dmac + EDAL, card); in sca_rx_intr()
332 sca_out(DSR_DE, DSR_RX(phy_node(port)), card); in sca_rx_intr()
340 card_t *card = port_to_card(port); in sca_tx_intr() local
345 stat = sca_in(DSR_TX(phy_node(port)), card); /* read DMA Status */ in sca_tx_intr()
349 DSR_TX(phy_node(port)), card); in sca_tx_intr()
355 u32 cda = sca_inw(dmac + CDAL, card); in sca_tx_intr()
373 card_t *card = dev_id; in sca_intr() local
377 u8 page = sca_get_page(card); in sca_intr()
379 while ((stat = sca_intr_status(card)) != 0) { in sca_intr()
382 port_t *port = get_port(card, i); in sca_intr()
397 openwin(card, page); /* Restore original page */ in sca_intr()
403 card_t *card = port_to_card(port); in sca_set_port() local
405 u8 md2 = sca_in(msci + MD2, card); in sca_set_port()
438 sca_out(port->tmc, msci + TMC, card); in sca_set_port()
441 sca_out(port->rxs, msci + RXS, card); in sca_set_port()
442 sca_out(port->txs, msci + TXS, card); in sca_set_port()
449 sca_out(md2, msci + MD2, card); in sca_set_port()
455 card_t *card = port_to_card(port); in sca_open() local
496 sca_out(CMD_RESET, msci + CMD, card); in sca_open()
497 sca_out(md0, msci + MD0, card); in sca_open()
498 sca_out(0x00, msci + MD1, card); /* no address field check */ in sca_open()
499 sca_out(md2, msci + MD2, card); in sca_open()
500 sca_out(0x7E, msci + IDL, card); /* flag character 0x7E */ in sca_open()
501 sca_out(CTL_IDLE, msci + CTL, card); in sca_open()
505 sca_out(0x07, msci + RRC, card); /* +1=RXRDY/DMA activation condition*/ in sca_open()
506 sca_out(0x10, msci + TRC0, card); /* = TXRDY/DMA activation condition*/ in sca_open()
507 sca_out(0x14, msci + TRC1, card); /* +1=TXRDY/DMA deactiv condition */ in sca_open()
516 sca_out(IE0_TXINT | IE0_RXINTA, msci + IE0, card); in sca_open()
517 sca_out(IE1_UDRN | IE1_CDCD, msci + IE1, card); in sca_open()
518 sca_out(sca_in(IER0, card) | (phy_node(port) ? 0xC0 : 0x0C), in sca_open()
519 IER0, card); /* TXINT and RXINT */ in sca_open()
521 sca_out(sca_in(IER1, card) | (phy_node(port) ? 0xF0 : 0x0F), in sca_open()
522 IER1, card); in sca_open()
524 sca_out(port->tmc, msci + TMC, card); /* Restore registers */ in sca_open()
525 sca_out(port->rxs, msci + RXS, card); in sca_open()
526 sca_out(port->txs, msci + TXS, card); in sca_open()
527 sca_out(CMD_TX_ENABLE, msci + CMD, card); in sca_open()
528 sca_out(CMD_RX_ENABLE, msci + CMD, card); in sca_open()
536 card_t *card = port_to_card(port); in sca_close() local
541 sca_out(sca_in(IER0, card) & (phy_node(port) ? 0x0F : 0xF0), in sca_close()
542 IER0, card); in sca_close()
544 sca_out(sca_in(IER1, card) & (phy_node(port) ? 0x0F : 0xF0), in sca_close()
545 IER1, card); in sca_close()
576 card_t *card = port_to_card(port); in sca_dump_rings() local
579 u8 page = sca_get_page(card); in sca_dump_rings()
581 openwin(card, 0); in sca_dump_rings()
585 sca_inw(get_dmac_rx(port) + CDAL, card), in sca_dump_rings()
586 sca_inw(get_dmac_rx(port) + EDAL, card), in sca_dump_rings()
587 sca_in(DSR_RX(phy_node(port)), card), port->rxin, in sca_dump_rings()
588 sca_in(DSR_RX(phy_node(port)), card) & DSR_DE ? "" : "in"); in sca_dump_rings()
595 sca_inw(get_dmac_tx(port) + CDAL, card), in sca_dump_rings()
596 sca_inw(get_dmac_tx(port) + EDAL, card), in sca_dump_rings()
597 sca_in(DSR_TX(phy_node(port)), card), port->txin, port->txlast, in sca_dump_rings()
598 sca_in(DSR_TX(phy_node(port)), card) & DSR_DE ? "" : "in"); in sca_dump_rings()
606 sca_in(get_msci(port) + MD0, card), in sca_dump_rings()
607 sca_in(get_msci(port) + MD1, card), in sca_dump_rings()
608 sca_in(get_msci(port) + MD2, card), in sca_dump_rings()
609 sca_in(get_msci(port) + ST0, card), in sca_dump_rings()
610 sca_in(get_msci(port) + ST1, card), in sca_dump_rings()
611 sca_in(get_msci(port) + ST2, card), in sca_dump_rings()
612 sca_in(get_msci(port) + ST3, card), in sca_dump_rings()
613 sca_in(get_msci(port) + FST, card), in sca_dump_rings()
614 sca_in(get_msci(port) + CST0, card), in sca_dump_rings()
615 sca_in(get_msci(port) + CST1, card)); in sca_dump_rings()
617 printk(KERN_DEBUG "ISR: %02x %02x %02x\n", sca_in(ISR0, card), in sca_dump_rings()
618 sca_in(ISR1, card), sca_in(ISR2, card)); in sca_dump_rings()
621 openwin(card, page); /* Restore original page */ in sca_dump_rings()
629 card_t *card = port_to_card(port); in sca_xmit() local
648 page = buff / winsize(card); in sca_xmit()
649 buff = buff % winsize(card); in sca_xmit()
650 maxlen = winsize(card) - buff; in sca_xmit()
652 openwin(card, page); in sca_xmit()
654 memcpy_toio(winbase(card) + buff, skb->data, maxlen); in sca_xmit()
655 openwin(card, page + 1); in sca_xmit()
656 memcpy_toio(winbase(card), skb->data + maxlen, len - maxlen); in sca_xmit()
658 memcpy_toio(winbase(card) + buff, skb->data, len); in sca_xmit()
662 openwin(card, 0); /* select pkt_desc table page back */ in sca_xmit()
669 get_dmac_tx(port) + EDAL, card); in sca_xmit()
671 sca_out(DSR_DE, DSR_TX(phy_node(port)), card); /* Enable TX DMA */ in sca_xmit()
684 static u32 sca_detect_ram(card_t *card, u8 __iomem *rambase, u32 ramsize) in sca_detect_ram() argument
688 u32 size = winsize(card); in sca_detect_ram()
690 openwin(card, (i - 4) / size); /* select last window */ in sca_detect_ram()
695 openwin(card, i / size); in sca_detect_ram()
701 openwin(card, i / size); in sca_detect_ram()
711 static void sca_init(card_t *card, int wait_states) in sca_init() argument
713 sca_out(wait_states, WCRL, card); /* Wait Control */ in sca_init()
714 sca_out(wait_states, WCRM, card); in sca_init()
715 sca_out(wait_states, WCRH, card); in sca_init()
717 sca_out(0, DMER, card); /* DMA Master disable */ in sca_init()
718 sca_out(0x03, PCR, card); /* DMA priority */ in sca_init()
719 sca_out(0, DSR_RX(0), card); /* DMA disable - to halt state */ in sca_init()
720 sca_out(0, DSR_TX(0), card); in sca_init()
721 sca_out(0, DSR_RX(1), card); in sca_init()
722 sca_out(0, DSR_TX(1), card); in sca_init()
723 sca_out(DMER_DME, DMER, card); /* DMA Master enable */ in sca_init()