MACB_BIT
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(THALT));
!(status & MACB_BIT(TGO)),
macb_writel(bp, NCR, macb_readl(bp, NCR) & (~MACB_BIT(TE)));
if (ctrl & MACB_BIT(TX_USED)) {
if (!(ctrl & MACB_BIT(TX_BUF_EXHAUSTED))) {
if (ctrl & MACB_BIT(TX_BUF_EXHAUSTED))
desc->ctrl = ctrl | MACB_BIT(TX_USED);
desc->ctrl = MACB_BIT(TX_USED);
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TE));
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
if (!(ctrl & MACB_BIT(TX_USED)))
paddr |= MACB_BIT(RX_WRAP);
desc->addr &= ~MACB_BIT(RX_USED);
desc->addr &= ~MACB_BIT(RX_USED);
rxused = (desc->addr & MACB_BIT(RX_USED)) ? true : false;
if (!(ctrl & MACB_BIT(RX_SOF) && ctrl & MACB_BIT(RX_EOF))) {
desc->addr &= ~MACB_BIT(RX_USED);
desc->addr &= ~MACB_BIT(RX_USED);
desc->addr |= MACB_BIT(RX_WRAP);
if (!(desc->addr & MACB_BIT(RX_USED)))
if (ctrl & MACB_BIT(RX_SOF)) {
if (ctrl & MACB_BIT(RX_EOF)) {
macb_writel(bp, NCR, ctrl & ~MACB_BIT(RE));
macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
return (desc->addr & MACB_BIT(RX_USED)) != 0;
queue_writel(queue, ISR, MACB_BIT(RCOMP));
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
if (macb_tx_desc(queue, queue->tx_tail)->ctrl & MACB_BIT(TX_USED))
queue_writel(queue, IER, MACB_BIT(TCOMP));
queue_writel(queue, IDR, MACB_BIT(TCOMP));
queue_writel(queue, ISR, MACB_BIT(TCOMP));
MACB_BIT(HRESP));
ctrl &= ~(MACB_BIT(RE) | MACB_BIT(TE));
MACB_BIT(HRESP));
ctrl |= MACB_BIT(RE) | MACB_BIT(TE);
if (status & MACB_BIT(WOL)) {
queue_writel(queue, IDR, MACB_BIT(WOL));
queue_writel(queue, ISR, MACB_BIT(WOL));
queue_writel(queue, ISR, MACB_BIT(RCOMP));
if (status & (MACB_BIT(TCOMP) |
MACB_BIT(TXUBR))) {
queue_writel(queue, IDR, MACB_BIT(TCOMP));
queue_writel(queue, ISR, MACB_BIT(TCOMP) |
MACB_BIT(TXUBR));
if (status & MACB_BIT(TXUBR)) {
if (status & MACB_BIT(RXUBR)) {
macb_writel(bp, NCR, ctrl & ~MACB_BIT(RE));
macb_writel(bp, NCR, ctrl | MACB_BIT(RE));
queue_writel(queue, ISR, MACB_BIT(RXUBR));
if (status & MACB_BIT(ISR_ROVR)) {
queue_writel(queue, ISR, MACB_BIT(ISR_ROVR));
if (status & MACB_BIT(HRESP)) {
queue_writel(queue, ISR, MACB_BIT(HRESP));
ctrl = MACB_BIT(TX_USED);
ctrl |= MACB_BIT(TX_LAST);
ctrl |= MACB_BIT(TX_WRAP);
u32 value = MACB_BIT(LLB);
ctrl |= MACB_BIT(TX_NOCRC);
return value == MACB_BIT(LLB);
macb_writel(bp, NCR, macb_readl(bp, NCR) | MACB_BIT(TSTART));
macb_set_addr(bp, desc, MACB_BIT(RX_WRAP) | MACB_BIT(RX_USED));
desc->ctrl = MACB_BIT(TX_USED);
desc->ctrl |= MACB_BIT(TX_WRAP);
desc->ctrl = MACB_BIT(TX_USED);
desc->ctrl |= MACB_BIT(TX_WRAP);
ctrl &= ~(MACB_BIT(RE) | MACB_BIT(TE));
ctrl |= MACB_BIT(CLRSTAT);
config |= MACB_BIT(DRFCS); /* Discard Rx FCS */
config |= MACB_BIT(JFRAME); /* Enable jumbo frames */
config |= MACB_BIT(BIG); /* Receive oversized frames */
config |= MACB_BIT(CAF); /* Copy All Frames */
config |= MACB_BIT(NBC); /* No BroadCast */
cfg |= MACB_BIT(CAF);
cfg &= ~MACB_BIT(CAF);
return readx_poll_timeout(MACB_READ_NSR, bp, val, val & MACB_BIT(IDLE),
cfg |= MACB_BIT(NCFGR_MTI);
cfg |= MACB_BIT(NCFGR_MTI);
cfg &= ~MACB_BIT(NCFGR_MTI);
.mii = MACB_BIT(MII),
.rmii = MACB_BIT(RMII),
.refclk = MACB_BIT(CLKEN),
desc->addr |= MACB_BIT(RX_WRAP);
macb_writel(lp, NCR, ctl | MACB_BIT(RE) | MACB_BIT(TE));
macb_writel(lp, IER, MACB_BIT(RCOMP) |
MACB_BIT(RXUBR) |
MACB_BIT(ISR_TUND) |
MACB_BIT(ISR_RLE) |
MACB_BIT(TCOMP) |
MACB_BIT(ISR_ROVR) |
MACB_BIT(HRESP));
macb_writel(lp, IDR, MACB_BIT(RCOMP) |
MACB_BIT(RXUBR) |
MACB_BIT(ISR_TUND) |
MACB_BIT(ISR_RLE) |
MACB_BIT(TCOMP) |
MACB_BIT(ISR_ROVR) |
MACB_BIT(HRESP));
macb_writel(lp, NCR, ctl & ~(MACB_BIT(TE) | MACB_BIT(RE)));
macb_writel(lp, NCR, ctl | MACB_BIT(CLRSTAT));
if (macb_readl(lp, TSR) & MACB_BIT(RM9200_BNQ)) {
while (desc->addr & MACB_BIT(RX_USED)) {
if (desc->ctrl & MACB_BIT(RX_MHASH_MATCH))
desc->addr &= ~MACB_BIT(RX_USED);
if (intstatus & MACB_BIT(RCOMP))
if (intstatus & MACB_BIT(TCOMP)) {
if (intstatus & (MACB_BIT(ISR_TUND) | MACB_BIT(ISR_RLE)))
if (intstatus & MACB_BIT(RXUBR)) {
macb_writel(lp, NCR, ctl & ~MACB_BIT(RE));
macb_writel(lp, NCR, ctl | MACB_BIT(RE));
if (intstatus & MACB_BIT(ISR_ROVR))
macb_writel(bp, NCFGR, MACB_BF(CLK, MACB_CLK_DIV32) | MACB_BIT(BIG));
bp->rx_intr_mask |= MACB_BIT(RXUBR);
macb_writel(bp, NCR, tmp & ~(MACB_BIT(TE) | MACB_BIT(RE)));
queue_writel(queue, RBQP, MACB_BIT(QUEUE_DISABLE));
macb_writel(bp, NCR, tmp | MACB_BIT(RE));
tmp = (bp->wolopts & WAKE_MAGIC) ? MACB_BIT(MAG) : 0;
tmp |= MACB_BIT(ARP);
queue_writel(bp->queues, IER, MACB_BIT(WOL));
queue_writel(bp->queues, IDR, MACB_BIT(WOL));
macb_writel(bp, NCR, MACB_BIT(MPE));
ctrl |= MACB_BIT(RM9200_RMII);
ncr |= MACB_BIT(MIIONRGMII);
#define MACB_RX_INT_FLAGS (MACB_BIT(RCOMP) | MACB_BIT(ISR_ROVR))
#define MACB_TX_ERR_FLAGS (MACB_BIT(ISR_TUND) \
| MACB_BIT(ISR_RLE) \
bp->rx_intr_mask | MACB_TX_INT_FLAGS | MACB_BIT(HRESP));
ctrl = macb_readl(bp, NCR) & ~(MACB_BIT(RE) | MACB_BIT(TE));
| MACB_BIT(TXERR))
#define MACB_TX_INT_FLAGS (MACB_TX_ERR_FLAGS | MACB_BIT(TCOMP) \
| MACB_BIT(TXUBR))
desc_curr->ctrl &= ~MACB_BIT(TX_WRAP);
desc_curr->ctrl |= MACB_BIT(TX_WRAP);
desc_curr->ctrl &= ~MACB_BIT(TX_WRAP);
desc_curr->ctrl |= MACB_BIT(TX_WRAP);
ctrl &= ~(MACB_BIT(SPD) | MACB_BIT(FD));
ctrl |= MACB_BIT(SPD);
ctrl |= MACB_BIT(FD);
ctrl &= ~MACB_BIT(PAE);
ctrl |= MACB_BIT(PAE);
bp->rx_intr_mask | MACB_TX_INT_FLAGS | MACB_BIT(HRESP));
ctrl |= MACB_BIT(PTPUNI);
macb_writel(bp, NCR, ctrl | MACB_BIT(RE) | MACB_BIT(TE));
state->link = (macb_readl(bp, NSR) & MACB_BIT(NSR_LINK)) != 0;
macb_writel(bp, NCR, MACB_BIT(MPE));
macb_writel(bp, NCR, reg_val | MACB_BIT(OSSMODE));
macb_writel(bp, NCR, reg_val & ~MACB_BIT(OSSMODE));
macb_writel(bp, NCR, (regval | MACB_BIT(SRTSM)));