Lines Matching refs:card
59 static inline int sca_intr_status(card_t *card) in sca_intr_status() argument
62 u8 isr0 = sca_in(ISR0, card); in sca_intr_status()
63 u8 isr1 = sca_in(ISR1, card); in sca_intr_status()
73 if (sca_in(DSR_TX(0), card) & DSR_EOM) in sca_intr_status()
76 if (sca_in(DSR_TX(1), card) & DSR_EOM) in sca_intr_status()
152 card_t *card = port_to_card(port); in sca_init_port() local
160 openwin(card, 0); in sca_init_port()
165 u16 buffs = transmit ? card->tx_ring_buffers in sca_init_port()
166 : card->rx_ring_buffers; in sca_init_port()
181 DSR_RX(phy_node(port)), card); in sca_init_port()
184 DCR_RX(phy_node(port)), card); in sca_init_port()
187 sca_out(0, dmac + CPB, card); /* pointer base */ in sca_init_port()
188 sca_outw(desc_offset(port, 0, transmit), dmac + CDAL, card); in sca_init_port()
191 dmac + EDAL, card); in sca_init_port()
194 card); in sca_init_port()
198 DCR_RX(phy_node(port)), card); in sca_init_port()
202 sca_outw(HDLC_MAX_MRU, dmac + BFLL, card); in sca_init_port()
204 sca_out(0x14, DMR_RX(phy_node(port)), card); in sca_init_port()
206 card); in sca_init_port()
208 sca_out(DSR_DE, DSR_RX(phy_node(port)), card); in sca_init_port()
211 sca_out(0x14, DMR_TX(phy_node(port)), card); in sca_init_port()
213 sca_out(DIR_BOFE, DIR_TX(phy_node(port)), card); in sca_init_port()
225 card_t* card = port_to_card(port); in sca_msci_intr() local
226 u8 stat = sca_in(msci + ST1, card); /* read MSCI ST1 status */ in sca_msci_intr()
229 sca_out(stat & (ST1_UDRN | ST1_CDCD), msci + ST1, card); in sca_msci_intr()
243 static inline void sca_rx(card_t *card, port_t *port, pkt_desc __iomem *desc, in sca_rx() argument
261 page = buff / winsize(card); in sca_rx()
262 buff = buff % winsize(card); in sca_rx()
263 maxlen = winsize(card) - buff; in sca_rx()
265 openwin(card, page); in sca_rx()
268 memcpy_fromio(skb->data, winbase(card) + buff, maxlen); in sca_rx()
269 openwin(card, page + 1); in sca_rx()
270 memcpy_fromio(skb->data + maxlen, winbase(card), len - maxlen); in sca_rx()
272 memcpy_fromio(skb->data, winbase(card) + buff, len); in sca_rx()
275 openwin(card, 0); /* select pkt_desc table page back */ in sca_rx()
294 card_t *card = port_to_card(port); in sca_rx_intr() local
295 u8 stat = sca_in(DSR_RX(phy_node(port)), card); /* read DMA Status */ in sca_rx_intr()
299 DSR_RX(phy_node(port)), card); in sca_rx_intr()
308 u32 cda = sca_inw(dmac + CDAL, card); in sca_rx_intr()
329 sca_rx(card, port, desc, port->rxin); in sca_rx_intr()
332 sca_outw(desc_off, dmac + EDAL, card); in sca_rx_intr()
337 sca_out(DSR_DE, DSR_RX(phy_node(port)), card); in sca_rx_intr()
346 card_t* card = port_to_card(port); in sca_tx_intr() local
351 stat = sca_in(DSR_TX(phy_node(port)), card); /* read DMA Status */ in sca_tx_intr()
355 DSR_TX(phy_node(port)), card); in sca_tx_intr()
361 u32 cda = sca_inw(dmac + CDAL, card); in sca_tx_intr()
379 card_t *card = dev_id; in sca_intr() local
383 u8 page = sca_get_page(card); in sca_intr()
385 while((stat = sca_intr_status(card)) != 0) { in sca_intr()
388 port_t *port = get_port(card, i); in sca_intr()
402 openwin(card, page); /* Restore original page */ in sca_intr()
409 card_t* card = port_to_card(port); in sca_set_port() local
411 u8 md2 = sca_in(msci + MD2, card); in sca_set_port()
444 sca_out(port->tmc, msci + TMC, card); in sca_set_port()
447 sca_out(port->rxs, msci + RXS, card); in sca_set_port()
448 sca_out(port->txs, msci + TXS, card); in sca_set_port()
455 sca_out(md2, msci + MD2, card); in sca_set_port()
463 card_t* card = port_to_card(port); in sca_open() local
486 sca_out(CMD_RESET, msci + CMD, card); in sca_open()
487 sca_out(md0, msci + MD0, card); in sca_open()
488 sca_out(0x00, msci + MD1, card); /* no address field check */ in sca_open()
489 sca_out(md2, msci + MD2, card); in sca_open()
490 sca_out(0x7E, msci + IDL, card); /* flag character 0x7E */ in sca_open()
491 sca_out(CTL_IDLE, msci + CTL, card); in sca_open()
495 sca_out(0x07, msci + RRC, card); /* +1=RXRDY/DMA activation condition*/ in sca_open()
496 sca_out(0x10, msci + TRC0, card); /* = TXRDY/DMA activation condition*/ in sca_open()
497 sca_out(0x14, msci + TRC1, card); /* +1=TXRDY/DMA deactiv condition */ in sca_open()
506 sca_out(IE0_TXINT | IE0_RXINTA, msci + IE0, card); in sca_open()
507 sca_out(IE1_UDRN | IE1_CDCD, msci + IE1, card); in sca_open()
508 sca_out(sca_in(IER0, card) | (phy_node(port) ? 0xC0 : 0x0C), in sca_open()
509 IER0, card); /* TXINT and RXINT */ in sca_open()
511 sca_out(sca_in(IER1, card) | (phy_node(port) ? 0xF0 : 0x0F), in sca_open()
512 IER1, card); in sca_open()
514 sca_out(port->tmc, msci + TMC, card); /* Restore registers */ in sca_open()
515 sca_out(port->rxs, msci + RXS, card); in sca_open()
516 sca_out(port->txs, msci + TXS, card); in sca_open()
517 sca_out(CMD_TX_ENABLE, msci + CMD, card); in sca_open()
518 sca_out(CMD_RX_ENABLE, msci + CMD, card); in sca_open()
527 card_t* card = port_to_card(port); in sca_close() local
532 sca_out(sca_in(IER0, card) & (phy_node(port) ? 0x0F : 0xF0), in sca_close()
533 IER0, card); in sca_close()
535 sca_out(sca_in(IER1, card) & (phy_node(port) ? 0x0F : 0xF0), in sca_close()
536 IER1, card); in sca_close()
569 card_t *card = port_to_card(port); in sca_dump_rings() local
572 u8 page = sca_get_page(card); in sca_dump_rings()
574 openwin(card, 0); in sca_dump_rings()
578 sca_inw(get_dmac_rx(port) + CDAL, card), in sca_dump_rings()
579 sca_inw(get_dmac_rx(port) + EDAL, card), in sca_dump_rings()
580 sca_in(DSR_RX(phy_node(port)), card), port->rxin, in sca_dump_rings()
581 sca_in(DSR_RX(phy_node(port)), card) & DSR_DE ? "" : "in"); in sca_dump_rings()
588 sca_inw(get_dmac_tx(port) + CDAL, card), in sca_dump_rings()
589 sca_inw(get_dmac_tx(port) + EDAL, card), in sca_dump_rings()
590 sca_in(DSR_TX(phy_node(port)), card), port->txin, port->txlast, in sca_dump_rings()
591 sca_in(DSR_TX(phy_node(port)), card) & DSR_DE ? "" : "in"); in sca_dump_rings()
599 sca_in(get_msci(port) + MD0, card), in sca_dump_rings()
600 sca_in(get_msci(port) + MD1, card), in sca_dump_rings()
601 sca_in(get_msci(port) + MD2, card), in sca_dump_rings()
602 sca_in(get_msci(port) + ST0, card), in sca_dump_rings()
603 sca_in(get_msci(port) + ST1, card), in sca_dump_rings()
604 sca_in(get_msci(port) + ST2, card), in sca_dump_rings()
605 sca_in(get_msci(port) + ST3, card), in sca_dump_rings()
606 sca_in(get_msci(port) + FST, card), in sca_dump_rings()
607 sca_in(get_msci(port) + CST0, card), in sca_dump_rings()
608 sca_in(get_msci(port) + CST1, card)); in sca_dump_rings()
610 printk(KERN_DEBUG "ISR: %02x %02x %02x\n", sca_in(ISR0, card), in sca_dump_rings()
611 sca_in(ISR1, card), sca_in(ISR2, card)); in sca_dump_rings()
614 openwin(card, page); /* Restore original page */ in sca_dump_rings()
623 card_t *card = port_to_card(port); in sca_xmit() local
642 page = buff / winsize(card); in sca_xmit()
643 buff = buff % winsize(card); in sca_xmit()
644 maxlen = winsize(card) - buff; in sca_xmit()
646 openwin(card, page); in sca_xmit()
648 memcpy_toio(winbase(card) + buff, skb->data, maxlen); in sca_xmit()
649 openwin(card, page + 1); in sca_xmit()
650 memcpy_toio(winbase(card), skb->data + maxlen, len - maxlen); in sca_xmit()
652 memcpy_toio(winbase(card) + buff, skb->data, len); in sca_xmit()
655 openwin(card, 0); /* select pkt_desc table page back */ in sca_xmit()
662 get_dmac_tx(port) + EDAL, card); in sca_xmit()
664 sca_out(DSR_DE, DSR_TX(phy_node(port)), card); /* Enable TX DMA */ in sca_xmit()
678 static u32 sca_detect_ram(card_t *card, u8 __iomem *rambase, u32 ramsize) in sca_detect_ram() argument
682 u32 size = winsize(card); in sca_detect_ram()
684 openwin(card, (i - 4) / size); /* select last window */ in sca_detect_ram()
689 openwin(card, i / size); in sca_detect_ram()
695 openwin(card, i / size); in sca_detect_ram()
706 static void sca_init(card_t *card, int wait_states) in sca_init() argument
708 sca_out(wait_states, WCRL, card); /* Wait Control */ in sca_init()
709 sca_out(wait_states, WCRM, card); in sca_init()
710 sca_out(wait_states, WCRH, card); in sca_init()
712 sca_out(0, DMER, card); /* DMA Master disable */ in sca_init()
713 sca_out(0x03, PCR, card); /* DMA priority */ in sca_init()
714 sca_out(0, DSR_RX(0), card); /* DMA disable - to halt state */ in sca_init()
715 sca_out(0, DSR_TX(0), card); in sca_init()
716 sca_out(0, DSR_RX(1), card); in sca_init()
717 sca_out(0, DSR_TX(1), card); in sca_init()
718 sca_out(DMER_DME, DMER, card); /* DMA Master enable */ in sca_init()