- }
-
- outputf("3c90x: waiting for TXCOMPLETE");
- oneshot_start_ms(10); /* Give it 10 ms */
- while (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_TXCOMPLETE) && oneshot_running())
- ;
-
- if (!(inw(INF_3C90X.IOAddr + regCommandIntStatus_w) & INT_TXCOMPLETE))
- {
- outputf("3c90x: tx timeout? stat %02x", inb(INF_3C90X.IOAddr + regTxStatus_b));
- _issue_command(INF_3C90X.IOAddr, cmdTxReset, 0);
- if (! INF_3C90X.isBrev)
- _outb(0x01, INF_3C90X.IOAddr + regTxFreeThresh_b);
- _issue_command(INF_3C90X.IOAddr, cmdTxEnable, 0);
- _issue_command(INF_3C90X.IOAddr, cmdSetInterruptEnable, 0);
- _issue_command(INF_3C90X.IOAddr, cmdSetIndicationEnable, 0x0014);
- _issue_command(INF_3C90X.IOAddr, cmdAcknowledgeInterrupt, 0x661);