XL_DMACTL is a 32bit register, so use the 32bit write macro.
>From FreeBSD
Tested with..
xl0 at pci0 dev 13 function 0 "3Com 3c905C 100Base-TX" rev 0x78
OK?
Index: xl.c
===================================================================
RCS file: /home/cvs/src/sys/dev/ic/xl.c,v
retrieving revision 1.104
diff -u -p -r1.104 xl.c
--- xl.c 14 Jul 2011 16:38:27 -0000 1.104
+++ xl.c 15 Sep 2011 01:11:37 -0000
@@ -2071,7 +2058,7 @@ xl_init(void *xsc)
/* Set the RX early threshold */
CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_THRESH|(XL_PACKET_SIZE >>2));
- CSR_WRITE_2(sc, XL_DMACTL, XL_DMACTL_UP_RX_EARLY);
+ CSR_WRITE_4(sc, XL_DMACTL, XL_DMACTL_UP_RX_EARLY);
/* Enable receiver and transmitter. */
CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_TX_ENABLE);
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.