-#ifdef XILINX_EMACLITE_TX_PING_PONG
- /* Switch to second buffer */
- BaseAddress ^= XEL_BUFFER_OFFSET;
- /* Determine if the expected buffer address is empty */
- Register = in_be32 (BaseAddress + XEL_TSR_OFFSET);
- if (((Register & XEL_TSR_XMIT_BUSY_MASK) == 0)
- && ((in_be32 ((BaseAddress) + XEL_TSR_OFFSET)
- & XEL_TSR_XMIT_ACTIVE_MASK) == 0)) {
-#ifdef DEBUG
- printf ("Send packet from 0x%x\n", BaseAddress);
-#endif
- /* Write the frame to the buffer */
- XEmacLite_AlignedWrite (ptr, (u32 *) BaseAddress, len);
- out_be32 (BaseAddress + XEL_TPLR_OFFSET,(len &
- (XEL_TPLR_LENGTH_MASK_HI | XEL_TPLR_LENGTH_MASK_LO)));
- Register = in_be32 (BaseAddress + XEL_TSR_OFFSET);
- Register |= XEL_TSR_XMIT_BUSY_MASK;
- if ((Register & XEL_TSR_XMIT_IE_MASK) != 0) {
- Register |= XEL_TSR_XMIT_ACTIVE_MASK;
+
+ if (emaclite->txpp) {
+ /* Switch to second buffer */
+ baseaddress ^= XEL_BUFFER_OFFSET;
+ /* Determine if the expected buffer address is empty */
+ reg = in_be32 (baseaddress + XEL_TSR_OFFSET);
+ if (((reg & XEL_TSR_XMIT_BUSY_MASK) == 0)
+ && ((in_be32 ((baseaddress) + XEL_TSR_OFFSET)
+ & XEL_TSR_XMIT_ACTIVE_MASK) == 0)) {
+ debug("Send packet from 0x%x\n", baseaddress);
+ /* Write the frame to the buffer */
+ xemaclite_alignedwrite((void *) ptr, baseaddress, len);
+ out_be32 (baseaddress + XEL_TPLR_OFFSET, (len &
+ (XEL_TPLR_LENGTH_MASK_HI |
+ XEL_TPLR_LENGTH_MASK_LO)));
+ reg = in_be32 (baseaddress + XEL_TSR_OFFSET);
+ reg |= XEL_TSR_XMIT_BUSY_MASK;
+ if ((reg & XEL_TSR_XMIT_IE_MASK) != 0)
+ reg |= XEL_TSR_XMIT_ACTIVE_MASK;
+ out_be32 (baseaddress + XEL_TSR_OFFSET, reg);
+ return 0;