qep 85 drivers/net/ethernet/sun/sunqe.c static inline int qe_stop(struct sunqe *qep) qep 87 drivers/net/ethernet/sun/sunqe.c void __iomem *cregs = qep->qcregs; qep 88 drivers/net/ethernet/sun/sunqe.c void __iomem *mregs = qep->mregs; qep 124 drivers/net/ethernet/sun/sunqe.c static void qe_init_rings(struct sunqe *qep) qep 126 drivers/net/ethernet/sun/sunqe.c struct qe_init_block *qb = qep->qe_block; qep 127 drivers/net/ethernet/sun/sunqe.c struct sunqe_buffers *qbufs = qep->buffers; qep 128 drivers/net/ethernet/sun/sunqe.c __u32 qbufs_dvma = (__u32)qep->buffers_dvma; qep 131 drivers/net/ethernet/sun/sunqe.c qep->rx_new = qep->rx_old = qep->tx_new = qep->tx_old = 0; qep 141 drivers/net/ethernet/sun/sunqe.c static int qe_init(struct sunqe *qep, int from_irq) qep 143 drivers/net/ethernet/sun/sunqe.c struct sunqec *qecp = qep->parent; qep 144 drivers/net/ethernet/sun/sunqe.c void __iomem *cregs = qep->qcregs; qep 145 drivers/net/ethernet/sun/sunqe.c void __iomem *mregs = qep->mregs; qep 147 drivers/net/ethernet/sun/sunqe.c unsigned char *e = &qep->dev->dev_addr[0]; qep 148 drivers/net/ethernet/sun/sunqe.c __u32 qblk_dvma = (__u32)qep->qblock_dvma; qep 153 drivers/net/ethernet/sun/sunqe.c if (qe_stop(qep)) qep 168 drivers/net/ethernet/sun/sunqe.c tmp = qep->channel * sbus_readl(gregs + GLOB_MSIZE); qep 224 drivers/net/ethernet/sun/sunqe.c qe_init_rings(qep); qep 241 drivers/net/ethernet/sun/sunqe.c printk(KERN_NOTICE "%s: Warning, link state is down.\n", qep->dev->name); qep 250 drivers/net/ethernet/sun/sunqe.c qe_set_multicast(qep->dev); qep 259 drivers/net/ethernet/sun/sunqe.c static int qe_is_bolixed(struct sunqe *qep, u32 qe_status) qep 261 drivers/net/ethernet/sun/sunqe.c struct net_device *dev = qep->dev; qep 405 drivers/net/ethernet/sun/sunqe.c qe_init(qep, 1); qep 412 drivers/net/ethernet/sun/sunqe.c static void qe_rx(struct sunqe *qep) qep 414 drivers/net/ethernet/sun/sunqe.c struct qe_rxd *rxbase = &qep->qe_block->qe_rxd[0]; qep 415 drivers/net/ethernet/sun/sunqe.c struct net_device *dev = qep->dev; qep 417 drivers/net/ethernet/sun/sunqe.c struct sunqe_buffers *qbufs = qep->buffers; qep 418 drivers/net/ethernet/sun/sunqe.c __u32 qbufs_dvma = (__u32)qep->buffers_dvma; qep 419 drivers/net/ethernet/sun/sunqe.c int elem = qep->rx_new; qep 447 drivers/net/ethernet/sun/sunqe.c skb->protocol = eth_type_trans(skb, qep->dev); qep 459 drivers/net/ethernet/sun/sunqe.c qep->rx_new = elem; qep 462 drivers/net/ethernet/sun/sunqe.c static void qe_tx_reclaim(struct sunqe *qep); qep 478 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = qecp->qes[channel]; qep 481 drivers/net/ethernet/sun/sunqe.c qe_status = sbus_readl(qep->qcregs + CREG_STAT); qep 483 drivers/net/ethernet/sun/sunqe.c if (qe_is_bolixed(qep, qe_status)) qep 487 drivers/net/ethernet/sun/sunqe.c qe_rx(qep); qep 488 drivers/net/ethernet/sun/sunqe.c if (netif_queue_stopped(qep->dev) && qep 490 drivers/net/ethernet/sun/sunqe.c spin_lock(&qep->lock); qep 491 drivers/net/ethernet/sun/sunqe.c qe_tx_reclaim(qep); qep 492 drivers/net/ethernet/sun/sunqe.c if (TX_BUFFS_AVAIL(qep) > 0) { qep 496 drivers/net/ethernet/sun/sunqe.c netif_wake_queue(qep->dev); qep 497 drivers/net/ethernet/sun/sunqe.c sbus_writel(1, qep->qcregs + CREG_TIMASK); qep 499 drivers/net/ethernet/sun/sunqe.c spin_unlock(&qep->lock); qep 513 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 515 drivers/net/ethernet/sun/sunqe.c qep->mconfig = (MREGS_MCONFIG_TXENAB | qep 518 drivers/net/ethernet/sun/sunqe.c return qe_init(qep, 0); qep 523 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 525 drivers/net/ethernet/sun/sunqe.c qe_stop(qep); qep 532 drivers/net/ethernet/sun/sunqe.c static void qe_tx_reclaim(struct sunqe *qep) qep 534 drivers/net/ethernet/sun/sunqe.c struct qe_txd *txbase = &qep->qe_block->qe_txd[0]; qep 535 drivers/net/ethernet/sun/sunqe.c int elem = qep->tx_old; qep 537 drivers/net/ethernet/sun/sunqe.c while (elem != qep->tx_new) { qep 544 drivers/net/ethernet/sun/sunqe.c qep->tx_old = elem; qep 549 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 552 drivers/net/ethernet/sun/sunqe.c spin_lock_irq(&qep->lock); qep 557 drivers/net/ethernet/sun/sunqe.c qe_tx_reclaim(qep); qep 558 drivers/net/ethernet/sun/sunqe.c tx_full = TX_BUFFS_AVAIL(qep) <= 0; qep 560 drivers/net/ethernet/sun/sunqe.c spin_unlock_irq(&qep->lock); qep 566 drivers/net/ethernet/sun/sunqe.c qe_init(qep, 1); qep 575 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 576 drivers/net/ethernet/sun/sunqe.c struct sunqe_buffers *qbufs = qep->buffers; qep 577 drivers/net/ethernet/sun/sunqe.c __u32 txbuf_dvma, qbufs_dvma = (__u32)qep->buffers_dvma; qep 581 drivers/net/ethernet/sun/sunqe.c spin_lock_irq(&qep->lock); qep 583 drivers/net/ethernet/sun/sunqe.c qe_tx_reclaim(qep); qep 586 drivers/net/ethernet/sun/sunqe.c entry = qep->tx_new; qep 593 drivers/net/ethernet/sun/sunqe.c qep->qe_block->qe_txd[entry].tx_flags = TXD_UPDATE; qep 597 drivers/net/ethernet/sun/sunqe.c qep->qe_block->qe_txd[entry].tx_addr = txbuf_dvma; qep 598 drivers/net/ethernet/sun/sunqe.c qep->qe_block->qe_txd[entry].tx_flags = qep 600 drivers/net/ethernet/sun/sunqe.c qep->tx_new = NEXT_TX(entry); qep 603 drivers/net/ethernet/sun/sunqe.c sbus_writel(CREG_CTRL_TWAKEUP, qep->qcregs + CREG_CTRL); qep 608 drivers/net/ethernet/sun/sunqe.c if (TX_BUFFS_AVAIL(qep) <= 0) { qep 615 drivers/net/ethernet/sun/sunqe.c sbus_writel(0, qep->qcregs + CREG_TIMASK); qep 617 drivers/net/ethernet/sun/sunqe.c spin_unlock_irq(&qep->lock); qep 626 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 628 drivers/net/ethernet/sun/sunqe.c u8 new_mconfig = qep->mconfig; qep 637 drivers/net/ethernet/sun/sunqe.c qep->mregs + MREGS_IACONFIG); qep 638 drivers/net/ethernet/sun/sunqe.c while ((sbus_readb(qep->mregs + MREGS_IACONFIG) & MREGS_IACONFIG_ACHNGE) != 0) qep 641 drivers/net/ethernet/sun/sunqe.c sbus_writeb(0xff, qep->mregs + MREGS_FILTER); qep 642 drivers/net/ethernet/sun/sunqe.c sbus_writeb(0, qep->mregs + MREGS_IACONFIG); qep 657 drivers/net/ethernet/sun/sunqe.c qep->mregs + MREGS_IACONFIG); qep 658 drivers/net/ethernet/sun/sunqe.c while ((sbus_readb(qep->mregs + MREGS_IACONFIG) & MREGS_IACONFIG_ACHNGE) != 0) qep 662 drivers/net/ethernet/sun/sunqe.c sbus_writeb(tmp, qep->mregs + MREGS_FILTER); qep 664 drivers/net/ethernet/sun/sunqe.c sbus_writeb(0, qep->mregs + MREGS_IACONFIG); qep 673 drivers/net/ethernet/sun/sunqe.c qep->mconfig = new_mconfig; qep 674 drivers/net/ethernet/sun/sunqe.c sbus_writeb(qep->mconfig, qep->mregs + MREGS_MCONFIG); qep 684 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 690 drivers/net/ethernet/sun/sunqe.c op = qep->op; qep 700 drivers/net/ethernet/sun/sunqe.c struct sunqe *qep = netdev_priv(dev); qep 701 drivers/net/ethernet/sun/sunqe.c void __iomem *mregs = qep->mregs; qep 704 drivers/net/ethernet/sun/sunqe.c spin_lock_irq(&qep->lock); qep 706 drivers/net/ethernet/sun/sunqe.c spin_unlock_irq(&qep->lock);